Safe Haskell | None |
---|---|
Language | Haskell2010 |
FMonad.Adjoint
Documentation
type Adjoint (ff :: k -> k2 -> Type) (uu :: (k2 -> Type) -> k1 -> Type) = AdjointT ff uu (IdentityT :: (k2 -> Type) -> k2 -> Type) Source #
adjoint :: forall (ff :: FF) (uu :: FF) (x :: Type -> Type). (FFunctor ff, FFunctor uu, Functor x) => uu (ff x) ~> Adjoint ff uu x Source #
runAdjoint :: forall (ff :: FF) (uu :: FF) (x :: Type -> Type). (FFunctor ff, FFunctor uu, Functor x) => Adjoint ff uu x ~> uu (ff x) Source #
newtype AdjointT (ff :: k -> k1) (uu :: k2 -> k3 -> Type) (mm :: k1 -> k2) (g :: k) (x :: k3) Source #
Constructors
AdjointT | |
Fields
|
Instances
(FFunctor ff, FFunctor mm, FFunctor uu) => FFunctor (AdjointT ff uu mm) Source # | |
(Adjunction ff uu, FMonad mm) => FMonad (AdjointT ff uu mm) Source # | |
(FStrong ff, FStrong mm, FStrong uu) => FStrong (AdjointT ff uu mm) Source # | |
Defined in FMonad.Adjoint Methods fstrength :: forall (g :: Type -> Type) (h :: Type -> Type). Functor g => Day (AdjointT ff uu mm g) h ~> AdjointT ff uu mm (Day g h) Source # mapCurried :: forall (g :: Type -> Type) (h :: Type -> Type). (Functor g, Functor h) => Curried g h ~> Curried (AdjointT ff uu mm g) (AdjointT ff uu mm h) Source # | |
(FFunctor ff, FFunctor mm, FFunctor uu, Functor g) => Functor (AdjointT ff uu mm g) Source # | |