Portability | non-portable (GHC Extensions) |
---|---|
Stability | experimental |
Maintainer | Patrick Bahr <paba@diku.dk> |
This module provides operators on functors.
Documentation
Formal sum of signatures (functors).
f :<: g => f :<: (:+: h g) | |
f :<: (:+: f g) | |
(Functor f, Functor g) => Functor (:+: f g) | |
(Foldable f, Foldable g) => Foldable (:+: f g) | |
(Traversable f, Traversable g) => Traversable (:+: f g) | |
(ShowF f, ShowF g) => ShowF (:+: f g) | |
(EqF f, EqF g) => EqF (:+: f g) |
|
(OrdF f, OrdF g) => OrdF (:+: f g) |
|
(ArbitraryF f, ArbitraryF g) => ArbitraryF (:+: f g) | Instances of |
(NFDataF f, NFDataF g) => NFDataF (:+: f g) | |
(HasVars f v0, HasVars g v0) => HasVars (:+: f g) v0 | |
(Desugar f g0, Desugar g g0) => Desugar (:+: f g) g0 | |
DistAnn s p s' => DistAnn (:+: f s) p (:+: (:&: f p) s') | |
RemA s s' => RemA (:+: (:&: f p) s) (:+: f s') | |
(Eq (f a), Eq (g a)) => Eq (:+: f g a) | |
(Ord (f a), Ord (g a)) => Ord (:+: f g a) | |
(Show (f a), Show (g a)) => Show (:+: f g a) |
Signature containment relation for automatic injections. The left-hand must
be an atomic signature, where as the right-hand side must have a list-like
structure. Examples include f :<: f :+: g
and g :<: f :+: (g :+: h)
,
non-examples include f :+: g :<: f :+: (g :+: h)
and
f :<: (f :+: g) :+: h
.
This data type adds a constant product (annotation) to a signature.
(f e) :&: a |
DistAnn f p (:&: f p) | |
Functor f => Functor (:&: f a) | |
Foldable f => Foldable (:&: f a) | |
Traversable f => Traversable (:&: f a) | |
(ShowF f, Show p) => ShowF (:&: f p) | |
(ArbitraryF f, Arbitrary p) => ArbitraryF (:&: f p) | |
RemA (:&: f p) f | |
DistAnn s p s' => DistAnn (:+: f s) p (:+: (:&: f p) s') | |
RemA s s' => RemA (:+: (:&: f p) s) (:+: f s') |