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

Safe HaskellNone

Clean.Functor

Description

A module for functors

Synopsis

Documentation

class Functor f whereSource

Methods

map :: (a -> b) -> f a -> f bSource

class Cofunctor f whereSource

Methods

comap :: (a -> b) -> f b -> f aSource

Instances

(Functor f, Cofunctor g) => Cofunctor (Compose f g) 
Cofunctor (Flip (->) r) 
Arrow k => Cofunctor (Flip k a) 
Cofunctor (Flip (MkIso a b) t) 

class Bifunctor p whereSource

Methods

dimap :: (c -> a) -> (b -> d) -> p a b -> p c dSource

Instances

Bifunctor (->) 
Bifunctor (MkIso a b) 

newtype Id a Source

The Identity Functor

Constructors

Id 

Fields

getId :: a
 

newtype Const a b Source

The Constant Functor

Constructors

Const 

Fields

getConst :: a
 

Instances

Unit (Const a) 
Monad (Const a) 
Applicative (Const a) 
Functor (Const a) 
Monoid a => Monoid (Const a b) 
Semigroup w => Semigroup (Const w a) 

newtype Flip f a b Source

A motherflippin' functor

Constructors

Flip 

Fields

unFlip :: f b a
 

Instances

Cofunctor (Flip (->) r) 
Arrow k => Cofunctor (Flip k a) 
Cofunctor (Flip (MkIso a b) t) 

newtype Compose f g a Source

The Composition functor

Constructors

Compose 

Fields

getCompose :: f (g a)
 

Instances

(Unit f, Unit g) => Unit (Compose f g) 
(Monad f, Contravariant f, Monad g) => Monad (Compose f g) 
(Applicative f, Applicative g) => Applicative (Compose f g) 
(Functor f, Functor g) => Functor (Compose f g) 
(Functor f, Cofunctor g) => Cofunctor (Compose f g) 

(<$>) :: Functor f => (a -> b) -> f a -> f bSource

(<$) :: Functor f => a1 -> f a -> f a1Source

(<&>) :: Functor f => f a -> (a -> b) -> f bSource

void :: Functor f => f a -> f ()Source

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