Portability | non-portable (GHC Extensions) |
---|---|
Stability | experimental |
Maintainer | Patrick Bahr <paba@diku.dk> |
Safe Haskell | Safe-Inferred |
This module provides operators on higher-order functors. All definitions are generalised versions of those in Data.Comp.Ops.
Documentation
Data type defining coproducts.
:<: f g => f :<: (:+: h g) | |
f :<: (:+: f g) | |
(HFunctor f, HFunctor g) => HFunctor (:+: f g) | |
(HFoldable f, HFoldable g) => HFoldable (:+: f g) | |
(HTraversable f, HTraversable g) => HTraversable (:+: f g) | |
(ShowHF f, ShowHF g) => ShowHF (:+: f g) | |
(EqHF f, EqHF g) => EqHF (:+: f g) |
|
(OrdHF f, OrdHF g) => OrdHF (:+: f g) |
|
(HasVars f v0, HasVars g v0) => HasVars (:+: f g) v0 | |
(Desugar f g0, Desugar g0 g0) => Desugar (:+: f g0) g0 | |
DistAnn s p s' => DistAnn (:+: f s) p (:+: (:&: f p) s') | |
RemA s s' => RemA (:+: (:&: f p) s) (:+: f s') |
The subsumption relation.
This data type adds a constant product to a signature. Alternatively, this could have also been defined as
data (f :&: a) (g :: * -> *) e = f g e :&: a e
This is too general, however, for example for productHHom
.
(f g e) :&: a |