category-extras-0.53.6: Various modules and constructs inspired by category theoryContentsIndex
Control.Functor.Combinators.Lift
Portabilitynon-portable (functional-dependencies)
Stabilityexperimental
MaintainerEdward Kmett <ekmett@gmail.com>
Description
transform a pair of functors with a bifunctor deriving a new functor. this subsumes functor product and functor coproduct
Documentation
newtype Lift p f g a
Constructors
Lift
runLift :: p (f a) (g a)
show/hide Instances
MonadIdeal m => Monad (Ideal m)
Functor f => Pointed (Ideal f)
Functor f => Copointed (Coideal f)
ComonadCoideal w => Comonad (Coideal w)
Bifunctor p Hask Hask Hask => HFunctor (Ap p)
(Faithful f, Faithful g) => Faithful (f :*: g)
(Pointed f, Pointed g) => Pointed (f :*: g)
(Copointed f, Copointed g) => Copointed (f :+: g)
(Applicative f, Applicative g) => Applicative (f :*: g)
(Bifunctor p Hask Hask Hask, Functor f, Functor g) => Functor (Lift p f g)
(Bifunctor p Hask Hask Hask, ContraFunctor f, ContraFunctor g) => ContraFunctor (Lift p f g)
(Bifunctor p Hask Hask Hask, ExpFunctor f, ExpFunctor g) => ExpFunctor (Lift p f g)
type :*: f g = Lift (,) f g
runProductF :: (f :*: g) a -> (f a, g a)
type :+: f g = Lift Either f g
runCoproductF :: (f :+: g) a -> Either (f a) (g a)
type Ap p = Lift p Identity
runAp :: Bifunctor p Hask Hask Hask => Ap p f a -> p a (f a)
mkAp :: Bifunctor p Hask Hask Hask => p a (f a) -> Ap p f a
Produced by Haddock version 2.1.0