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 Source #

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

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

Methods

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

Instances
HFunctor Schema Source #

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 Source #

HFunctor AltDef Source # 
Instance details

Defined in Data.Schema.Internal.Types

Methods

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

HFunctor (SchemaF p) Source # 
Instance details

Defined in Data.Schema.Internal.Types

Methods

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

HFunctor (FieldDef o) Source # 
Instance details

Defined in Data.Schema.Internal.Types

Methods

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

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

Defined in Control.Functor.HigherOrder

Methods

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

class HFunctor f => HPointed f where Source #

Methods

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

class HFunctor f => HCopointed f where Source #

Methods

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

newtype HFix f a Source #

Constructors

HFix 

Fields

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

Constructors

HEnvT 

Fields

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

Defined in Control.Functor.HigherOrder

Methods

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

Functor (f g) => Functor (HEnvT f e g) Source # 
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 :: *) Source #

Constructors

HMutu 

Fields

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

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

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

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

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

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