SimpleH-0.9.1: A light, clean and powerful Haskell utility library

Safe HaskellNone

SimpleH.Arrow

Documentation

class (Split k, Choice k) => Arrow k whereSource

Methods

arr :: (a -> b) -> k a bSource

Instances

Arrow (->) 
Monad m => Arrow (Kleisli m) 
Arrow k => Arrow (ListA k) 

(>>^) :: Functor f => f a -> (a -> b) -> f bSource

(^>>) :: Cofunctor (Flip f c) => (a -> b) -> f b c -> f a cSource

class Arrow k => Apply k whereSource

Methods

apply :: k (k a b, a) bSource

Instances

Apply (->) 
Monad m => Apply (Kleisli m) 

comapA :: Arrow f => (b -> b1) -> Flip f a b1 -> Flip f a bSource

app :: Apply k => k a c -> k a cSource

dup :: Arrow k => k t (t, t)Source

newtype Kleisli m a b Source

Constructors

Kleisli 

Fields

runKleisli :: a -> m b
 

Instances

Monad m => Split (Kleisli m) 
Monad m => Choice (Kleisli m) 
Monad m => Category (Kleisli m) 
Monad m => Apply (Kleisli m) 
Monad m => Arrow (Kleisli m) 
Isomorphic (a -> m b) (a -> m c) (Kleisli m a b) (Kleisli m a c) 

newtype ListA k a b Source

Constructors

ListA 

Fields

runListA :: k [a] [b]
 

Instances

Arrow k => Split (ListA k) 
Arrow k => Choice (ListA k) 
Category k => Category (ListA k) 
Arrow k => Arrow (ListA k)