Safe Haskell | None |
---|---|
Language | Haskell2010 |
A module for functors
- class Functor f where
- map :: (a -> b) -> f a -> f b
- class Cofunctor f where
- comap :: (a -> b) -> f b -> f a
- class Bifunctor p where
- dimap :: (c -> a) -> (b -> d) -> p a b -> p c d
- class Commutative f where
- commute :: f a b -> f b a
- class Functor t => Contravariant t where
- newtype Strict a = Strict {
- lazy :: a
- newtype Id a = Id {
- getId :: a
- newtype Const a b = Const {
- getConst :: a
- newtype Flip f a b = Flip {
- unFlip :: f b a
- newtype (f :.: g) a = Compose {
- getCompose :: f (g a)
- data (f :**: g) a = (f a) :**: (g a)
- newtype (f :++: g) a = Sum {}
- newtype Increasing k a = Increasing ((OrdList :.: Assoc k) a)
- emerge :: (Functor f, Unit g) => (f :.: g) a -> (f :.: g) (g a)
- flip :: (Contravariant c, Functor f) => f (c a) -> c (f a)
- project :: (Contravariant c, Functor f) => (a -> c b) -> f a -> c (f b)
- factor :: (Contravariant c, Unit c, Bifunctor f, Functor (f a)) => f (c a) (c b) -> c (f a b)
- (<$>) :: Functor f => (a -> b) -> f a -> f b
- (|||) :: (Choice k, Functor (k a), Functor (k b)) => k a c -> k b d -> k (a :+: b) (c :+: d)
- (<$) :: Functor f => b -> f a -> f b
- (<&>) :: Functor f => f a -> (a -> b) -> f b
- void :: Functor f => f a -> f ()
- left :: (Choice k, Functor (k a), Functor (k c)) => k a b -> k (a :+: c) (b :+: c)
- right :: (Choice k, Functor (k a), Functor (k c)) => k a b -> k (c :+: a) (c :+: b)
- promap :: Cofunctor (Flip f c) => (a -> b) -> f b c -> f a c
- map2 :: (Functor f, Functor f') => (a -> b) -> f (f' a) -> f (f' b)
- map3 :: (Functor f, Functor f', Functor f'') => (a -> b) -> f (f' (f'' a)) -> f (f' (f'' b))
Documentation
class Commutative f where Source
class Functor t => Contravariant t where Source
Contravariant Id | |
Contravariant Strict | |
Contravariant ((->) a) | |
(Contravariant f, Contravariant g) => Contravariant ((:.:) f g) | |
Contravariant f => Contravariant (Kleisli f a) |
The Identity Functor
The Constant Functor
A motherflippin' functor
The Composition functor
Compose | |
|
(Traversable g, Monad g, MonadWriter w f) => MonadWriter w ((:.:) f g) | |
(Traversable g, Monad g, MonadReader r f) => MonadReader r ((:.:) f g) | |
(Traversable g, Monad g, MonadState s f) => MonadState s ((:.:) f g) | |
Monad m => ConcreteMonad ((:.:) m) | |
Monad m => MonadTrans ((:.:) m) | |
Isomorphic (f (g a)) (f' (g' b)) ((:.:) f g a) ((:.:) f' g' b) | |
(Unit f, Unit g) => Unit ((:.:) f g) | |
(MonadFix f, Traversable g, Monad g) => MonadFix ((:.:) f g) | |
(Traversable f, Traversable g) => Traversable ((:.:) f g) | |
(Foldable f, Foldable g) => Foldable ((:.:) f g) | |
(Traversable g, Monad f, Monad g) => Monad ((:.:) f g) | |
(Applicative f, Applicative g) => Applicative ((:.:) f g) | |
(Functor f, Functor g) => Functor ((:.:) f g) | |
(Contravariant f, Contravariant g) => Contravariant ((:.:) f g) | |
(Functor f, Cofunctor g) => Cofunctor ((:.:) f g) | |
(Applicative f, Monoid (g a)) => Monoid ((:.:) f g a) | |
(Applicative f, Semigroup (g a)) => Semigroup ((:.:) f g a) |
(f a) :**: (g a) |
(Unit f, Unit g) => Unit ((:**:) f g) | |
(Traversable f, Traversable g) => Traversable ((:**:) f g) | |
(Foldable f, Foldable g) => Foldable ((:**:) f g) | |
(Applicative f, Applicative g) => Applicative ((:**:) f g) | |
(Functor f, Functor g) => Functor ((:**:) f g) |
(Traversable f, Traversable g) => Traversable ((:++:) f g) | |
(Foldable f, Foldable g) => Foldable ((:++:) f g) | |
(Functor f, Functor g) => Functor ((:++:) f g) |
newtype Increasing k a Source
A functor for ordered lists
Increasing ((OrdList :.: Assoc k) a) |
Monoid k => Unit (Increasing k) | |
Traversable (Increasing k) | |
Foldable (Increasing k) | |
(Monoid k, Ord k) => Monad (Increasing k) | |
(Monoid k, Ord k) => Applicative (Increasing k) | |
Functor (Increasing k) | |
Ord k => Monoid (Increasing k a) | |
Ord k => Semigroup (Increasing k a) |
flip :: (Contravariant c, Functor f) => f (c a) -> c (f a) Source
project :: (Contravariant c, Functor f) => (a -> c b) -> f a -> c (f b) Source
The Contravariant version of traverse
factor :: (Contravariant c, Unit c, Bifunctor f, Functor (f a)) => f (c a) (c b) -> c (f a b) Source