This repository contains multiple (currently: 3) Haskell packages.
The package free-applicative-t provides the single module Control.Applicative.Trans.FreeAp
for single type: ApT
.
This type is supposed to represent the "free" "applicative transformer",
filling the space in this table:
Free | -transformer | |
---|---|---|
Monad | Free | FreeT |
Applicative | Ap | ??? |
More on the README of the package itself.
The package day-comonoid provides a type class named Comonoid
.
class Comonad f => Comonoid f where
coapply :: f a -> Day f f a
The name "Comonoid" should be read in a context. A functor f
being Comonoid
means it's a comonoid in the category of Functor
s
equipped with Day as its tensor product.
Comonoid
can be seen as "the dual" of Applicative
, because Applicative
can be seen as the type class for monoids in that category.
The package functor-monad provides FFunctor
and FMonad
,
each corresponds to Functor
and Monad
but is higher-order.
a Functor f |
a FFunctor ff |
|
---|---|---|
Takes | a :: Type |
g :: Type -> Type , Functor g |
Makes | f a :: Type |
ff g :: Type -> Type , Functor (ff g) |
Methods | fmap :: (a -> b) -> f a -> f b |
ffmap :: (Functor g, Functor h) => (g ~> h) -> (ff g ~> ff h) |
a Monad m |
a FMonad mm |
|
---|---|---|
Superclass | Functor | FFunctor |
Methods | return = pure :: a -> m a |
fpure :: (Functor g) => g ~> mm g |
(=<<) :: (a -> m b) -> m a -> m b |
fbind :: (Functor g, Functor h) => (g ~> mm h) -> (mm g ~> mm h) |
|
join :: m (m a) -> m a |
fjoin :: (Functor g) => mm (mm g) ~> mm g |
More on the README of the package itself.