sig
  val exApp_of_list : Camlp4.PreCast.Ast.expr list -> Camlp4.PreCast.Ast.expr
  val tyArr_of_list : Camlp4.PreCast.Ast.ctyp list -> Camlp4.PreCast.Ast.ctyp
  val paOr_of_list : Camlp4.PreCast.Ast.patt list -> Camlp4.PreCast.Ast.patt
  val gensym : ?prefix:string -> unit -> string
  val error : Camlp4.PreCast.Ast.ctyp -> fn:string -> msg:string -> 'a
  val unknown_type : Camlp4.PreCast.Ast.ctyp -> string -> 'a
  val ty_var_list_of_ctyp :
    Camlp4.PreCast.Ast.ctyp -> string list -> string list
  val get_rev_id_path :
    Camlp4.PreCast.Ast.ident -> string list -> string list
  val ident_of_rev_path :
    Camlp4.PreCast.Ast.Loc.t -> string list -> Camlp4.PreCast.Ast.ident
  val get_appl_path :
    Camlp4.PreCast.Ast.Loc.t ->
    Camlp4.PreCast.Ast.ctyp -> Camlp4.PreCast.Ast.ident
  val abstract :
    Camlp4.PreCast.Ast.Loc.t ->
    Camlp4.PreCast.Ast.patt list ->
    Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.expr
  val apply :
    Camlp4.PreCast.Ast.Loc.t ->
    Camlp4.PreCast.Ast.expr ->
    Camlp4.PreCast.Ast.expr list -> Camlp4.PreCast.Ast.expr
  val switch_tp_def :
    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
  val mk_expr_lst :
    Camlp4.PreCast.Ast.Loc.t ->
    Camlp4.PreCast.Ast.expr list -> Camlp4.PreCast.Ast.expr
  val mk_patt_lst :
    Camlp4.PreCast.Ast.Loc.t ->
    Camlp4.PreCast.Ast.patt list -> Camlp4.PreCast.Ast.patt
  val get_tparam_id : Camlp4.PreCast.Ast.ctyp -> string
  val type_is_recursive :
    ?stop_on_functions:bool ->
    ?short_circuit:(Camlp4.PreCast.Ast.ctyp -> bool option) ->
    string -> Camlp4.PreCast.Ast.ctyp -> bool
  val drop_variance_annotations :
    Camlp4.PreCast.Ast.ctyp -> Camlp4.PreCast.Ast.ctyp
  val find_record_default :
    Camlp4.PreCast.Ast.Loc.t -> Camlp4.PreCast.Ast.expr option
  val delay_sig_item : Camlp4.PreCast.Ast.sig_item -> unit
end