Idris2Doc : Control.HigherOrder

Control.HigherOrder

(source)

Definitions

0(~>) : (Type->Type) -> (Type->Type) ->Type
  Type of natural transformations between two functors.

Visibility: public export
Fixity Declaration: infixr operator, level 0
0(~~>) : (Type->Type) -> (Type->Type) ->Type->Type
  As above, but with explicit 0-morphisms.

Visibility: public export
Fixity Declaration: infixr operator, level 0
interfaceHFunctor : ((Type->Type) ->Type->Type) ->Type
  Higher-order functor, i.e. a functor
in the category of functors and natural transformations.

Parameters: h
Methods:
hmap : (Functorf, Functorg) =>f~>g->hf~>hg

Implementations:
HFunctorsig1=>HFunctorsig2=>HFunctor (sig1:+:sig2)
Functorsig=>HFunctor (Liftsig)
hmap : HFunctorh=> (Functorf, Functorg) =>f~>g->hf~>hg
Visibility: public export
data(:+:) : ((Type->Type) ->Type->Type) -> ((Type->Type) ->Type->Type) -> (Type->Type) ->Type->Type
  Higher-order disjoint union.
Effects are composed via this datatype.

Totality: total
Visibility: public export
Constructors:
Inl : sig1ma->(:+:)sig1sig2ma
Inr : sig2ma->(:+:)sig1sig2ma

Hints:
HFunctorsig1=>HFunctorsig2=>HFunctor (sig1:+:sig2)
Syntaxsig1=>Syntaxsig2=>Syntax (sig1:+:sig2)

Fixity Declaration: infixr operator, level 8
interfacePrj : ((Type->Type) ->Type->Type) -> ((Type->Type) ->Type->Type) ->Type
  Higher order projections.
Prj forms a category.

Parameters: sup, sub
Constructor: 
MkPrj

Methods:
prj : supma->subma
prj : Prjsupsub=>supma->subma
Visibility: public export
interfaceInj : ((Type->Type) ->Type->Type) -> ((Type->Type) ->Type->Type) ->Type
  Higher order injections.
Inj forms a category.

Parameters: sub, sup
Constructor: 
MkInj

Methods:
inj : subma->supma

Implementation: 
Prjsub'sub=>Injsubsup=>Injsub'sup
inj : Injsubsup=>subma->supma
Visibility: public export
T : Injsigasigb->Injsigbsigc->Injsigasigc
  Same as `Trans`, but the two arguments are explicit.

Visibility: public export
0Handler : (Type->Type) -> (Type->Type) -> (Type->Type) ->Type
  State-preserving transformation of
a computation in one monad into a computation
in another monad, whose value is annotated with the final state.
Handler is a natural transformation.

Visibility: public export
0HandlerX : (Type->Type) -> (Type->Type) -> (Type->Type) ->Type->Type
  Handler with explicit 0-morphism.

Visibility: public export
interfaceSyntax : ((Type->Type) ->Type->Type) ->Type
Parameters: sig
Constraints: HFunctor sig
Methods:
emap : (ma->mb) ->sigma->sigmb
  Extend the continuation.
weave : Monadm=>Monadn=>Functors=>s () ->Handlersmn->sigma->sign (sa)
  Generically thread a handler through a higher-order
signature.

Implementations:
Syntaxsig1=>Syntaxsig2=>Syntax (sig1:+:sig2)
Functorsig=>Syntax (Liftsig)
emap : Syntaxsig=> (ma->mb) ->sigma->sigmb
  Extend the continuation.

Visibility: public export
weave : Syntaxsig=>Monadm=>Monadn=>Functors=>s () ->Handlersmn->sigma->sign (sa)
  Generically thread a handler through a higher-order
signature.

Visibility: public export
dataLift : (Type->Type) -> (Type->Type) ->Type->Type
  Lift a first-order functor to a second-order one.

Totality: total
Visibility: public export
Constructor: 
MkLift : sig (ma) ->Liftsigma

Hints:
Functorsig=>HFunctor (Liftsig)
Functorsig=>Syntax (Liftsig)
unlift : Liftsigma->sig (ma)
Visibility: public export
LiftE : (Type->Type) -> (Type->Type) ->Type->Type
  Alias for use as an effect.

Visibility: public export
(~<~) : Functorn=>Functorctx1=>HandlerXctx1mnq->HandlerXctx2lmt->HandlerX (ctx1.ctx2) lnp
  Fuse two handlers.

Visibility: public export
Fixity Declaration: infixr operator, level 1