Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
This module provides some missing classes from profunctors
BEWARE: That part of Kernmantle API is experimental and is likely to change in the future.
Synopsis
- type EffFunctor = BifunctorFunctor
- effmap :: EffFunctor f => (eff :-> eff') -> f eff :-> f eff'
- effrmap :: EffFunctor f => (eff :-> eff') -> f eff :-> f eff'
- effsecond :: EffFunctor f => (eff :-> eff') -> f eff :-> f eff'
- class EffFunctor f => EffPointedFunctor f where
- class (forall a. Arrow a => EffFunctor (p a)) => EffBifunctor p where
- class (forall a. EffFunctor (p a)) => EffProfunctor p where
Documentation
type EffFunctor = BifunctorFunctor Source #
Functors over binary effects
effmap :: EffFunctor f => (eff :-> eff') -> f eff :-> f eff' Source #
Maps the effect inside an EffFunctor
. Various names to follow the
bifunctors
/profunctors
conventions.
effrmap :: EffFunctor f => (eff :-> eff') -> f eff :-> f eff' Source #
Maps the effect inside an EffFunctor
. Various names to follow the
bifunctors
/profunctors
conventions.
effsecond :: EffFunctor f => (eff :-> eff') -> f eff :-> f eff' Source #
Maps the effect inside an EffFunctor
. Various names to follow the
bifunctors
/profunctors
conventions.
class EffFunctor f => EffPointedFunctor f where Source #
Pointed Functors (= functors equipped with pure
) over binary
effects. Doesn't have an equivalent afaik in bifunctors
.
Instances
EffPointedFunctor (RopeRunner record mantle interp) Source # | |
Defined in Control.Kernmantle.Rope.Internal | |
Applicative f => EffPointedFunctor (Tannen f :: (Type -> Type -> Type) -> Type -> Type -> Type) Source # | |
class (forall a. Arrow a => EffFunctor (p a)) => EffBifunctor p where Source #
Would be a "BifunctorBifunctor
", but that class doesn't exist
Nothing
class (forall a. EffFunctor (p a)) => EffProfunctor p where Source #
Would be a "ProfunctorBifunctor
", but that class doesn't exist.
Nothing
Instances
RMap m => EffProfunctor (RopeRunner (Rec :: (Strand -> Type) -> [Strand] -> Type) m) Source # | |
Defined in Control.Kernmantle.Rope.Internal effdimap :: forall (a' :: Type -> Type -> Type) (a :: Type -> Type -> Type) (b :: Type -> Type -> Type) (b' :: Type -> Type -> Type). (a' :-> a) -> (b :-> b') -> RopeRunner Rec m a b :-> RopeRunner Rec m a' b' Source # efflmap :: forall (a' :: Type -> Type -> Type) (a :: Type -> Type -> Type) (b :: Type -> Type -> Type). (a' :-> a) -> RopeRunner Rec m a b :-> RopeRunner Rec m a' b Source # |