continuations-0.0.0.0: Continuations, CPS, co-functions, and combinators for working with them
Safe HaskellNone
LanguageHaskell2010

Data.Profunctor.Fun

Synopsis

CPS functions

newtype Fun r a b Source #

Constructors

Fun 

Fields

  • (#) :: (r ! b) -> r ! a
     

Instances

Instances details
Arrow (Fun r) Source # 
Instance details

Defined in Data.Profunctor.Fun.Internal

Methods

arr :: (b -> c) -> Fun r b c #

first :: Fun r b c -> Fun r (b, d) (c, d) #

second :: Fun r b c -> Fun r (d, b) (d, c) #

(***) :: Fun r b c -> Fun r b' c' -> Fun r (b, b') (c, c') #

(&&&) :: Fun r b c -> Fun r b c' -> Fun r b (c, c') #

ArrowChoice (Fun r) Source # 
Instance details

Defined in Data.Profunctor.Fun.Internal

Methods

left :: Fun r b c -> Fun r (Either b d) (Either c d) #

right :: Fun r b c -> Fun r (Either d b) (Either d c) #

(+++) :: Fun r b c -> Fun r b' c' -> Fun r (Either b b') (Either c c') #

(|||) :: Fun r b d -> Fun r c d -> Fun r (Either b c) d #

ArrowApply (Fun r) Source # 
Instance details

Defined in Data.Profunctor.Fun.Internal

Methods

app :: Fun r (Fun r b c, b) c #

Profunctor (Fun r) Source # 
Instance details

Defined in Data.Profunctor.Fun.Internal

Methods

dimap :: (a -> b) -> (c -> d) -> Fun r b c -> Fun r a d

lmap :: (a -> b) -> Fun r b c -> Fun r a c

rmap :: (b -> c) -> Fun r a b -> Fun r a c

(#.) :: forall a b c q. Coercible c b => q b c -> Fun r a b -> Fun r a c

(.#) :: forall a b c q. Coercible b a => Fun r b c -> q a b -> Fun r a c

Choice (Fun r) Source # 
Instance details

Defined in Data.Profunctor.Fun.Internal

Methods

left' :: Fun r a b -> Fun r (Either a c) (Either b c)

right' :: Fun r a b -> Fun r (Either c a) (Either c b)

Cochoice (Fun r) Source # 
Instance details

Defined in Data.Profunctor.Fun.Internal

Methods

unleft :: Fun r (Either a d) (Either b d) -> Fun r a b

unright :: Fun r (Either d a) (Either d b) -> Fun r a b

Strong (Fun r) Source # 
Instance details

Defined in Data.Profunctor.Fun.Internal

Methods

first' :: Fun r a b -> Fun r (a, c) (b, c)

second' :: Fun r a b -> Fun r (c, a) (c, b)

Traversing (Fun r) Source # 
Instance details

Defined in Data.Profunctor.Fun.Internal

Methods

traverse' :: Traversable f => Fun r a b -> Fun r (f a) (f b)

wander :: (forall (f :: Type -> Type). Applicative f => (a -> f b) -> s -> f t) -> Fun r a b -> Fun r s t

Category (Fun r :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Profunctor.Fun.Internal

Methods

id :: forall (a :: k). Fun r a a #

(.) :: forall (b :: k) (c :: k) (a :: k). Fun r b c -> Fun r a b -> Fun r a c #

Monad (Fun r a) Source # 
Instance details

Defined in Data.Profunctor.Fun.Internal

Methods

(>>=) :: Fun r a a0 -> (a0 -> Fun r a b) -> Fun r a b #

(>>) :: Fun r a a0 -> Fun r a b -> Fun r a b #

return :: a0 -> Fun r a a0 #

Functor (Fun r a) Source # 
Instance details

Defined in Data.Profunctor.Fun.Internal

Methods

fmap :: (a0 -> b) -> Fun r a a0 -> Fun r a b #

(<$) :: a0 -> Fun r a b -> Fun r a a0 #

Applicative (Fun r x) Source # 
Instance details

Defined in Data.Profunctor.Fun.Internal

Methods

pure :: a -> Fun r x a #

(<*>) :: Fun r x (a -> b) -> Fun r x a -> Fun r x b #

liftA2 :: (a -> b -> c) -> Fun r x a -> Fun r x b -> Fun r x c #

(*>) :: Fun r x a -> Fun r x b -> Fun r x b #

(<*) :: Fun r x a -> Fun r x b -> Fun r x a #

Mixfix syntax

type (~~) a r = Fun r a infixr 1 Source #

type (~>) r b = r b infixr 0 Source #

Construction

fun :: ((r ! b) -> a -> r) -> (a ~~ r) ~> b Source #

Elimination

elimFun :: ((b >- r) -~ a) -> r ! ((a ~~ r) ~> b) Source #