Portability  nonportable 

Stability  experimental 
Maintainer  sjoerd@w3future.com 
Safe Haskell  None 
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
 unit :: a > Free c a
 rightAdjunct :: c b => (a > b) > Free c a > b
 rightAdjunctF :: ForallF c f => (a > f b) > Free c a > f b
 rightAdjunctT :: ForallT c t => (a > t f b) > Free c a > t f b
 counit :: c a => Free c a > a
 leftAdjunct :: (Free c a > b) > a > 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 r => Free c Void > r
Documentation
The free functor for constraint c
.
rightAdjunct :: c b => (a > b) > Free c a > bSource
rightAdjunctF :: ForallF c f => (a > f b) > Free c a > f bSource
rightAdjunctT :: ForallT c t => (a > t f b) > Free c a > t f bSource
leftAdjunct :: (Free c a > b) > a > bSource
leftAdjunct f = f . unit
newtype LiftAFree c f a Source
LiftAFree  

convert :: (c (f a), Applicative f) => Free c a > f aSource
convertClosed :: c r => Free c Void > rSource