vinyl-effects-0.0.0: TODO

Safe HaskellSafe
LanguageHaskell2010

Vinyl.Effects.Types

Description

shared types.

Synopsis

Documentation

data Apply a f where Source

Apply a is a type-level ($ a).

f must be a Functor.

Constructors

Apply :: Functor f => f a -> Apply a f 

getApply :: Apply a f -> f a Source

type AnAlgebra f a = f a -> a Source

An algebra.

newtype Algebra f a Source

Constructors

Algebra 

Fields

getAlgebra :: AnAlgebra f a
 

newtype OpAlgebra a f Source

a co-algebra (with the two types in reverse order).

Constructors

OpAlgebra 

Fields

getOpAlgebra :: AnAlgebra f a
 

type ACoAlgebra f a = a -> f a Source

A co-algebra.

newtype CoAlgebra f a Source

Constructors

CoAlgebra 

Fields

getCoAlgebra :: ACoAlgebra f a
 

newtype OpCoAlgebra a f Source

a co-algebra (with the two types in reverse order).

Constructors

OpCoAlgebra 

Fields

getOpCoAlgebra :: ACoAlgebra f a
 

type (:~>) f g = forall x. f x -> g x Source

A natural transformation.

type ANaturalTransformation f g = (:~>) f g Source

A natural transformation.

type IsPairing f g = (Functor f, Functor g) Source

a ConstraintKind.

(IsPairing would be the constraints, if Pairing were a class).

data Pairing f g Source

Constructors

Pairing 

Fields

pair :: forall a b r. (a -> b -> r) -> f a -> g b -> r