| Portability | non-portable (GHC Extensions) |
|---|---|
| Stability | experimental |
| Maintainer | Patrick Bahr <paba@diku.dk> |
Data.Comp.Multi.Ops
Description
This module provides operators on higher-order functors. All definitions are generalised versions of those in Data.Comp.Ops.
Documentation
Data type defining coproducts.
Instances
| 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) | |
| (HEqF f, HEqF g) => HEqF (:+: f g) |
|
| (HShowF f, HShowF g) => HShowF (:+: f g) | |
| (HasVars f v, HasVars g v) => HasVars (:+: f g) v | |
| DistProd s p s' => DistProd (:+: f s) p (:+: (:&: f p) s') | |
| RemoveP s s' => RemoveP (:+: (:&: 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 productHTermHom.
Constructors
| (f g e) :&: a |
Instances
| DistProd f p (:&: f p) | |
| HFunctor f => HFunctor (:&: f a) | |
| HFoldable f => HFoldable (:&: f a) | |
| HTraversable f => HTraversable (:&: f a) | |
| (HShowF f, Show p) => HShowF (:&: f p) | |
| RemoveP (:&: f p) f | |
| DistProd s p s' => DistProd (:+: f s) p (:+: (:&: f p) s') | |
| RemoveP s s' => RemoveP (:+: (:&: f p) s) (:+: f s') |