hschema-0.0.1.1: Describe schemas for your Haskell data types.

Safe HaskellSafe
LanguageHaskell2010

Control.Functor.HigherOrder

Documentation

type HAlgebra f g = f g :~> g #

type HCoalgebra f g = g :~> f g #

class HFunctor (f :: (* -> *) -> * -> *) where #

Methods

hfmap :: (m ~> n) -> f m ~> f n #

Instances
HFunctor Schema #

An Schema has a HFunctor that performs a natural transformation of the primitive algebra of the Schema

Instance details

Defined in Data.Schema.Internal.Types

Methods

hfmap :: (m ~> n) -> Schema m ~> Schema n #

HFunctor AltDef # 
Instance details

Defined in Data.Schema.Internal.Types

Methods

hfmap :: (m ~> n) -> AltDef m ~> AltDef n #

HFunctor (SchemaF p) # 
Instance details

Defined in Data.Schema.Internal.Types

Methods

hfmap :: (m ~> n) -> SchemaF p m ~> SchemaF p n #

HFunctor (FieldDef o) # 
Instance details

Defined in Data.Schema.Internal.Types

Methods

hfmap :: (m ~> n) -> FieldDef o m ~> FieldDef o n #

HFunctor f => HFunctor (HEnvT f a) # 
Instance details

Defined in Control.Functor.HigherOrder

Methods

hfmap :: (m ~> n) -> HEnvT f a m ~> HEnvT f a n #

class HFunctor f => HPointed f where #

Methods

hreturn :: Functor g => g a -> f g a #

class HFunctor f => HCopointed f where #

Methods

hextract :: Functor g => f g a -> g a #

newtype HFix f a #

Constructors

HFix 

Fields

data HEnvT (f :: (* -> *) -> * -> *) (e :: *) (g :: * -> *) (i :: *) #

Constructors

HEnvT 

Fields

Instances
HFunctor f => HFunctor (HEnvT f a) # 
Instance details

Defined in Control.Functor.HigherOrder

Methods

hfmap :: (m ~> n) -> HEnvT f a m ~> HEnvT f a n #

Functor (f g) => Functor (HEnvT f e g) # 
Instance details

Defined in Control.Functor.HigherOrder

Methods

fmap :: (a -> b) -> HEnvT f e g a -> HEnvT f e g b #

(<$) :: a -> HEnvT f e g b -> HEnvT f e g a #

newtype HMutu (f :: (* -> *) -> * -> *) (g :: (* -> *) -> * -> *) (a :: *) #

Constructors

HMutu 

Fields

type HCofree (f :: (* -> *) -> * -> *) (a :: *) = HFix (HEnvT f a) #

hcofree :: a -> f (HCofree f a) b -> HCofree f a b #

cataNT :: HFunctor f => HAlgebra f g -> HFix f ~> g #

anaNT :: HFunctor f => HCoalgebra f g -> g ~> HFix f #

htagCoalg :: HFunctor f => a -> HCoalgebra (HEnvT f a) (HFix f) #

htag :: HFunctor f => a -> HFix f ~> HCofree f a #