Clean-0.6: A light, clean and powerful utility library

Safe HaskellNone

Clean.Arrow

Documentation

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

Methods

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

Instances

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

(>>>) :: Category k => k a b -> k b c -> k a cSource

(<<<) :: Category k => k b c -> k a b -> k a cSource

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

(^>>) :: Cofunctor (Flip f a) => (b -> b1) -> f b1 a -> f b aSource

(|||) :: (Choice k, Functor (k a), Functor (k b)) => k a a1 -> k b b1 -> k (:+: a b) (Either a1 b1)Source

class Arrow k => Apply k whereSource

Methods

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

Instances

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

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

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) 
Unit m => Unit (Kleisli m a) 
Monad m => Monad (Kleisli m a) 
Monad m => Applicative (Kleisli m a) 
Functor f => Functor (Kleisli f a)