Module

Data.Profunctor.Split

#Split

newtype Split :: (Type -> Type) -> Type -> Type -> Typenewtype Split f a b

Instances

#split

split :: forall f a b x. (a -> x) -> (x -> b) -> f x -> Split f a b

#unSplit

unSplit :: forall f a b r. (forall x. (a -> x) -> (x -> b) -> f x -> r) -> Split f a b -> r

#liftSplit

liftSplit :: forall f a. f a -> Split f a a

#lowerSplit

lowerSplit :: forall f a. Invariant f => Split f a a -> f a

#hoistSplit

hoistSplit :: forall f g a b. (f ~> g) -> Split f a b -> Split g a b

Modules