sig
val param : Camlp4.PreCast.Ast.ctyp -> string * [> `Minus | `Plus ] option
val params :
Camlp4.PreCast.Ast.ctyp list ->
(string * [> `Minus | `Plus ] option) list
val split_and :
Camlp4.PreCast.Ast.ctyp ->
(Camlp4.PreCast.Ast.ctyp * Camlp4.PreCast.Ast.ctyp,
Camlp4.PreCast.Ast.ctyp)
Utils.either
val split_comma :
Camlp4.PreCast.Ast.ctyp ->
(Camlp4.PreCast.Ast.ctyp * Camlp4.PreCast.Ast.ctyp,
Camlp4.PreCast.Ast.ctyp)
Utils.either
val split_semi :
Camlp4.PreCast.Ast.ctyp ->
(Camlp4.PreCast.Ast.ctyp * Camlp4.PreCast.Ast.ctyp,
Camlp4.PreCast.Ast.ctyp)
Utils.either
val split_or :
Camlp4.PreCast.Ast.ctyp ->
(Camlp4.PreCast.Ast.ctyp * Camlp4.PreCast.Ast.ctyp,
Camlp4.PreCast.Ast.ctyp)
Utils.either
val split_amp :
Camlp4.PreCast.Ast.ctyp ->
(Camlp4.PreCast.Ast.ctyp * Camlp4.PreCast.Ast.ctyp,
Camlp4.PreCast.Ast.ctyp)
Utils.either
val split_ofamp :
Camlp4.PreCast.Ast.ctyp ->
(Camlp4.PreCast.Ast.ctyp * Camlp4.PreCast.Ast.ctyp,
Camlp4.PreCast.Ast.ctyp)
Utils.either
val split_star :
Camlp4.PreCast.Ast.ctyp ->
(Camlp4.PreCast.Ast.ctyp * Camlp4.PreCast.Ast.ctyp,
Camlp4.PreCast.Ast.ctyp)
Utils.either
val list :
(Camlp4.PreCast.Ast.ctyp -> 'a) ->
(Camlp4.PreCast.Ast.ctyp ->
(Camlp4.PreCast.Ast.ctyp * Camlp4.PreCast.Ast.ctyp,
Camlp4.PreCast.Ast.ctyp)
Utils.either) ->
Camlp4.PreCast.Ast.ctyp -> 'a list
val ident : Camlp4.PreCast.Ast.ident -> Type.name
val qident : Camlp4.PreCast.Ast.ident -> Type.qname
type vmap = (Type.name * Type.variant * Type.name option) list
val fresh_name : unit -> string
val set_name_prefix : Type.name -> unit
module WithParams :
functor (P : sig val params : Type.param list end) ->
sig
val params : Type.param list
val apply_t :
'a -> [> `Constr of 'a list * [> `Param of Type.param ] list ]
val expr : Camlp4.PreCast.Ast.ctyp -> Type.expr * Type.Translate.vmap
val tagspec :
Camlp4.PreCast.Ast.ctyp -> Type.tagspec * Type.Translate.vmap
val application :
Camlp4.PreCast.Ast.ctyp ->
(Type.qname * Type.expr list) * Type.Translate.vmap
val variant :
Camlp4.PreCast.Ast.ctyp ->
?alias:Type.name ->
[ `Eq | `Gt | `Lt ] -> Type.expr * Type.Translate.vmap
val polyexpr :
Camlp4.PreCast.Ast.ctyp -> Type.poly_expr * Type.Translate.vmap
val field :
Camlp4.PreCast.Ast.ctyp -> Type.field * Type.Translate.vmap
val summand :
Camlp4.PreCast.Ast.ctyp -> Type.summand * Type.Translate.vmap
val repr :
Camlp4.PreCast.Ast.ctyp ->
Type.repr * (Type.name * Type.variant * Type.name option) list
val toplevel :
Camlp4.PreCast.Ast.ctyp -> Type.rhs * Type.Translate.vmap
val constraints :
(Camlp4.PreCast.Ast.ctyp * Camlp4.PreCast.Ast.ctyp) list ->
Type.constraint_ list * Type.Translate.vmap
val declify :
(Type.name * Type.variant * Type.name option) list ->
(Type.decl * (Type.name * Type.expr) option) list
end
type alias_map = Type.expr Type.NameMap.t
val build_alias_map :
(Type.NameMap.key * Type.expr) option list -> Type.Translate.alias_map
val split : Camlp4.PreCast.Ast.ctyp -> Camlp4.PreCast.Ast.ctyp list
val decl :
Camlp4.PreCast.Ast.ctyp -> Type.decl list * Type.Translate.alias_map
val substitute_aliases : Type.Translate.alias_map -> Type.decl -> Type.decl
val decls : Camlp4.PreCast.Ast.ctyp -> Type.decl list
end