Portability | non-portable |
---|---|
Stability | experimental |
Maintainer | sjoerd@w3future.com |
Safe Haskell | Safe-Infered |
A free functor is left adjoint to a forgetful functor. In this package the forgetful functor forgets class constraints.
- newtype Free c a = Free {
- runFree :: forall b. c b => (a -> b) -> b
- leftAdjunct :: (Free c a -> b) -> a -> b
- rightAdjunct :: c b => (a -> b) -> Free c a -> b
- rightAdjunct' :: ForallF c f => (a -> f b) -> Free c a -> f b
- rightAdjunct'' :: ForallT c t => (a -> t f b) -> Free c a -> t f b
- newtype LiftAFree c f a = LiftAFree {
- getLiftAFree :: f (Free c a)
- convert :: (c (f a), Applicative f) => Free c a -> f a
- convertClosed :: c x => Free c Void -> x
Documentation
The free functor for constraint c
.
leftAdjunct :: (Free c a -> b) -> a -> bSource
rightAdjunct :: c b => (a -> b) -> Free c a -> bSource
rightAdjunct' :: ForallF c f => (a -> f b) -> Free c a -> f bSource
rightAdjunct'' :: ForallT c t => (a -> t f b) -> Free c a -> t f bSource
newtype LiftAFree c f a Source
LiftAFree | |
|
convert :: (c (f a), Applicative f) => Free c a -> f aSource
convertClosed :: c x => Free c Void -> xSource