module Gen: sig
.. end
val ty_var_list_of_ctyp : Camlp4.PreCast.Ast.ctyp -> string list -> string list
ty_var_list_of_ctyp tp acc
accumulates a list of type parameters
contained in tp
into acc
as strings.
val get_rev_id_path : Camlp4.PreCast.Ast.ident -> string list -> string list
get_rev_id_path id acc
takes an identifier.
Returns a reversed
module path (list of strings) denoting this identifier, appending
it to acc
.
val ident_of_rev_path : Camlp4.PreCast.Ast.Loc.t -> string list -> Camlp4.PreCast.Ast.ident
ident_of_rev_path loc path
takes a location loc
and a reversed path
rev_path
to an identifier.
Returns identifier denoting the
bound value.
val get_appl_path : Camlp4.PreCast.Ast.Loc.t ->
Camlp4.PreCast.Ast.ctyp -> Camlp4.PreCast.Ast.ident
get_appl_path loc tp
Returns the identifier path associated with
a polymorphic type.
val abstract : Camlp4.PreCast.Ast.Loc.t ->
Camlp4.PreCast.Ast.patt list ->
Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.expr
abstract loc patts body
takes a location loc
, a pattern list
patts
, and an expression body
.
Returns a function expression
that takes the patterns as arguments, and binds them in body
.
val apply : Camlp4.PreCast.Ast.Loc.t ->
Camlp4.PreCast.Ast.expr ->
Camlp4.PreCast.Ast.expr list -> Camlp4.PreCast.Ast.expr
apply loc f_expr arg_exprs
takes a location loc
, an expression
f_expr
representing a function, and a list of argument expressions
arg_exprs
.
Returns an expression in which the function is
applied to its arguments.
val idp : Camlp4.PreCast.Ast.Loc.t -> string -> Camlp4.PreCast.Ast.patt
idp loc name
Returns a pattern matching a lowercase identifier
name
.
val ide : Camlp4.PreCast.Ast.Loc.t -> string -> Camlp4.PreCast.Ast.expr
ide loc name
Returns an expression of a lowercase identifier
name
.
val switch_tp_def : Camlp4.PreCast.Ast.Loc.t ->
alias:(Camlp4.PreCast.Ast.Loc.t -> Camlp4.PreCast.Ast.ctyp -> 'a) ->
sum:(Camlp4.PreCast.Ast.Loc.t -> Camlp4.PreCast.Ast.ctyp -> 'a) ->
record:(Camlp4.PreCast.Ast.Loc.t -> Camlp4.PreCast.Ast.ctyp -> 'a) ->
variants:(Camlp4.PreCast.Ast.Loc.t -> Camlp4.PreCast.Ast.ctyp -> 'a) ->
mani:(Camlp4.PreCast.Ast.Loc.t ->
Camlp4.PreCast.Ast.ctyp -> Camlp4.PreCast.Ast.ctyp -> 'a) ->
nil:(Camlp4.PreCast.Ast.Loc.t -> 'a) -> Camlp4.PreCast.Ast.ctyp -> 'a
switch_tp_def loc ~alias ~sum ~record ~variants ~mani tp_def
takes a handler function for each kind of type definition and
applies the appropriate handler when tp_def
matches.
val mk_expr_lst : Camlp4.PreCast.Ast.Loc.t ->
Camlp4.PreCast.Ast.expr list -> Camlp4.PreCast.Ast.expr
mk_expr_lst loc expr_list
takes a list of expressions.
Returns an expression representing a list of expressions.
val mk_patt_lst : Camlp4.PreCast.Ast.Loc.t ->
Camlp4.PreCast.Ast.patt list -> Camlp4.PreCast.Ast.patt
mk_patt_lst _loc patt_list
takes a list of patterns.
Returns a pattern representing a list of patterns.
val get_tparam_id : Camlp4.PreCast.Ast.ctyp -> string
val type_is_recursive : Camlp4.PreCast.Ast.Loc.t -> string -> Camlp4.PreCast.Ast.ctyp -> bool
type_is_recursive _loc id tp
Returns whether the type tp
with name id
refers to itself, assuming that it is not mutually
recursive with another type.
val drop_variance_annotations : Camlp4.PreCast.Ast.Loc.t ->
Camlp4.PreCast.Ast.ctyp -> Camlp4.PreCast.Ast.ctyp
drop_variance_annotations _loc tp
Returns the type resulting
from dropping all variance annotations in tp
.