{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE DefaultSignatures #-}
module OAlg.Hom.Algebraic
(
HomAlgebraic
)
where
import OAlg.Prelude
import OAlg.Category.Path
import OAlg.Structure.Distributive.Definition
import OAlg.Structure.Algebraic.Definition
import OAlg.Hom.Definition
import OAlg.Hom.Multiplicative
import OAlg.Hom.FibredOriented
import OAlg.Hom.Distributive
import OAlg.Hom.Vectorial
class (HomDistributive h, HomVectorial k h, Transformable (ObjectClass h) (Alg k))
=> HomAlgebraic k h
instance HomAlgebraic k h => HomAlgebraic k (Path h)
class ( HomDistributiveDisjunctive h, HomVectorial k h, Transformable (ObjectClass h) (Alg k)
) => HomAlgebraicDisjunctive k h
instance ( HomAlgebraic k h
, DualisableFibredOriented s o, DualisableMultiplicative s o
, DualisableVectorial k s o
, Transformable s Dst, Transformable s (Alg k)
)
=> HomAlgebraicDisjunctive k (HomDisj s o h)