prbnmcn-basic-structures

Base package for prbnmcn-* packages
Library prbnmcn-basic-structures

Parameters

module Repr : sig ... end
module M : sig ... end

Signature

type 'a cont = {
fa : 'b. ( 'a -> 'b Repr.m ) -> 'b Repr.m;
}
type 'a m = 'a Repr.m

'a m is the type of generated programs of type 'a

type 'a t = 'a cont

'a t is the type of computations of type 'a

val return : 'a -> 'a t
val bind : 'a t -> ( 'a -> 'b t ) -> 'b t
val run : 'a m t -> 'a m
val lift1 : ( 'a -> 'b ) -> 'a t -> 'b t
val lift2 : ( 'a -> 'b -> 'c ) -> 'a t -> 'b t -> 'c t
val lift3 : ( 'a -> 'b -> 'c -> 'd ) -> 'a t -> 'b t -> 'c t -> 'd t
module Infix : sig ... end