Up

module Tagged_generic

: sig
#
module type S = sig
#
type 'a t
#
val of_typestruct : Type_struct.t -> [
| `generic of Tagged.t t
]
end
#
module Make_input : functor (Input : sig
#
type t
end
) -> functor (X : Typerep_lib.Std.Type_generic.Computation with type 'a t = Input.t -> 'a) -> S with type 'a t = Input.t -> 'a
#
module Make_output : functor (Output : sig
#
type t
end
) -> functor (X : Typerep_lib.Std.Type_generic.Computation with type 'a t = 'a -> Output.t) -> S with type 'a t = 'a -> Output.t
#
module Make_reader : functor (Builder : sig
#
type 'a t
#
val make : ('a -> Tagged.t) -> 'a t -> Tagged.t t
end
) -> functor (X : Typerep_lib.Std.Type_generic.Computation with type 'a t = 'a Builder.t) -> S with type 'a t = 'a X.t
#
module Make_writer : functor (Builder : sig
#
type 'a t
#
val make : (Tagged.t -> 'a) -> 'a t -> Tagged.t t
end
) -> functor (X : Typerep_lib.Std.Type_generic.Computation with type 'a t = 'a Builder.t) -> S with type 'a t = 'a X.t
#
module type Adapter = sig
#
type 'a t
#
type 'a adapter = 'a t -> Tagged.t t
#
val int : int adapter
#
val int32 : int32 adapter
#
val int64 : int64 adapter
#
val nativeint : nativeint adapter
#
val char : char adapter
#
val bool : bool adapter
#
val string : string adapter
#
val float : float adapter
#
val unit : unit adapter
#
val option : Tagged.t option adapter
#
val list : Tagged.t list adapter
#
val array : Tagged.t array adapter
#
val lazy_t : Tagged.t lazy_t adapter
#
val tuple2 : (Tagged.t * Tagged.t) adapter
#
val tuple3 : (Tagged.t * Tagged.t * Tagged.t) adapter
#
val tuple4 : (Tagged.t * Tagged.t * Tagged.t * Tagged.t) adapter
#
val tuple5 : (Tagged.t * Tagged.t * Tagged.t * Tagged.t * Tagged.t) adapter
end
#
module Make_advanced : functor (A : Adapter) -> functor (X : Typerep_lib.Std.Type_generic.Computation with type 'a t = 'a A.t) -> S with type 'a t = 'a X.t
#
module Input_adapter : functor (Input : sig
#
type t
end
) -> Adapter with type 'a t = Input.t -> 'a
#
module Output_adapter : functor (Output : sig
#
type t
end
) -> Adapter with type 'a t = 'a -> Output.t
#
module Reader_adapter : functor (Builder : sig
#
type 'a t
#
val make : ('a -> Tagged.t) -> 'a t -> Tagged.t t
end
) -> Adapter with type 'a t = 'a Builder.t
#
module Writer_adapter : functor (Builder : sig
#
type 'a t
#
val make : (Tagged.t -> 'a) -> 'a t -> Tagged.t t
end
) -> Adapter with type 'a t = 'a Builder.t
end