Module Ppx_type_conv.Ppx_deriving_backend

include Ppx_deriving
type deriver = Ppx_deriving.deriver = {
name : string;
core_type : (Parsetree.core_type ‑> Parsetree.expression) option;
type_decl_str : options:(string * Parsetree.expression) list ‑> path:string list ‑> Parsetree.type_declaration list ‑> Parsetree.structure;
type_ext_str : options:(string * Parsetree.expression) list ‑> path:string list ‑> Parsetree.type_extension ‑> Parsetree.structure;
module_type_decl_str : options:(string * Parsetree.expression) list ‑> path:string list ‑> Parsetree.module_type_declaration ‑> Parsetree.structure;
type_decl_sig : options:(string * Parsetree.expression) list ‑> path:string list ‑> Parsetree.type_declaration list ‑> Parsetree.signature;
type_ext_sig : options:(string * Parsetree.expression) list ‑> path:string list ‑> Parsetree.type_extension ‑> Parsetree.signature;
module_type_decl_sig : options:(string * Parsetree.expression) list ‑> path:string list ‑> Parsetree.module_type_declaration ‑> Parsetree.signature;
}
val register : deriver ‑> unit
val add_register_hook : (deriver ‑> unit) ‑> unit
val derivers : unit ‑> deriver list
val create : string ‑> ?core_type:(Parsetree.core_type ‑> Parsetree.expression) ‑> ?type_ext_str:(options:(string * Parsetree.expression) list ‑> path:string list ‑> Parsetree.type_extension ‑> Parsetree.structure) ‑> ?type_ext_sig:(options:(string * Parsetree.expression) list ‑> path:string list ‑> Parsetree.type_extension ‑> Parsetree.signature) ‑> ?type_decl_str:(options:(string * Parsetree.expression) list ‑> path:string list ‑> Parsetree.type_declaration list ‑> Parsetree.structure) ‑> ?type_decl_sig:(options:(string * Parsetree.expression) list ‑> path:string list ‑> Parsetree.type_declaration list ‑> Parsetree.signature) ‑> ?module_type_decl_str:(options:(string * Parsetree.expression) list ‑> path:string list ‑> Parsetree.module_type_declaration ‑> Parsetree.structure) ‑> ?module_type_decl_sig:(options:(string * Parsetree.expression) list ‑> path:string list ‑> Parsetree.module_type_declaration ‑> Parsetree.signature) ‑> unit ‑> deriver
val lookup : string ‑> deriver option
val raise_errorf : ?sub:Location.error list ‑> ?if_highlight:string ‑> ?loc:Location.t ‑> ('a, unit, string, 'b) Pervasives.format4 ‑> 'a
val string_of_core_type : Parsetree.core_type ‑> string
module Arg = Ppx_deriving.Arg
type quoter = Ppx_deriving.quoter
val create_quoter : unit ‑> quoter
val quote : quoter:quoter ‑> Parsetree.expression ‑> Parsetree.expression
val sanitize : ?module_:Longident.t ‑> ?quoter:quoter ‑> Parsetree.expression ‑> Parsetree.expression
val with_quoter : (quoter ‑> 'a ‑> Parsetree.expression) ‑> 'a ‑> Parsetree.expression
val expand_path : path:string list ‑> string ‑> string
val path_of_type_decl : path:string list ‑> Parsetree.type_declaration ‑> string list
val mangle_type_decl : ?fixpoint:string ‑> [ `Prefix of string | `PrefixSuffix of string * string | `Suffix of string ] ‑> Parsetree.type_declaration ‑> string
val mangle_lid : ?fixpoint:string ‑> [ `Prefix of string | `PrefixSuffix of string * string | `Suffix of string ] ‑> Longident.t ‑> Longident.t
val attr : deriver:string ‑> string ‑> Parsetree.attributes ‑> Parsetree.attribute option
val attr_warning : Parsetree.expression ‑> Parsetree.attribute
val free_vars_in_core_type : Parsetree.core_type ‑> string list
val remove_pervasives : deriver:string ‑> Parsetree.core_type ‑> Parsetree.core_type
val fresh_var : string list ‑> string
val fold_left_type_decl : ('a ‑> string ‑> 'a) ‑> 'a ‑> Parsetree.type_declaration ‑> 'a
val fold_right_type_decl : (string ‑> 'a ‑> 'a) ‑> Parsetree.type_declaration ‑> 'a ‑> 'a
val fold_left_type_ext : ('a ‑> string ‑> 'a) ‑> 'a ‑> Parsetree.type_extension ‑> 'a
val fold_right_type_ext : (string ‑> 'a ‑> 'a) ‑> Parsetree.type_extension ‑> 'a ‑> 'a
val poly_fun_of_type_decl : Parsetree.type_declaration ‑> Parsetree.expression ‑> Parsetree.expression
val poly_fun_of_type_ext : Parsetree.type_extension ‑> Parsetree.expression ‑> Parsetree.expression
val poly_apply_of_type_decl : Parsetree.type_declaration ‑> Parsetree.expression ‑> Parsetree.expression
val poly_apply_of_type_ext : Parsetree.type_extension ‑> Parsetree.expression ‑> Parsetree.expression
val poly_arrow_of_type_decl : (Parsetree.core_type ‑> Parsetree.core_type) ‑> Parsetree.type_declaration ‑> Parsetree.core_type ‑> Parsetree.core_type
val poly_arrow_of_type_ext : (Parsetree.core_type ‑> Parsetree.core_type) ‑> Parsetree.type_extension ‑> Parsetree.core_type ‑> Parsetree.core_type
val core_type_of_type_decl : Parsetree.type_declaration ‑> Parsetree.core_type
val core_type_of_type_ext : Parsetree.type_extension ‑> Parsetree.core_type
val instantiate : string list ‑> Parsetree.type_declaration ‑> Parsetree.core_type * string list * string list
val fold_exprs : ?unit:Parsetree.expression ‑> (Parsetree.expression ‑> Parsetree.expression ‑> Parsetree.expression) ‑> Parsetree.expression list ‑> Parsetree.expression
val seq_reduce : ?sep:Parsetree.expression ‑> Parsetree.expression ‑> Parsetree.expression ‑> Parsetree.expression
val binop_reduce : Parsetree.expression ‑> Parsetree.expression ‑> Parsetree.expression ‑> Parsetree.expression
val strong_type_of_type : Parsetree.core_type ‑> Parsetree.core_type
val mapper : Ast_mapper.mapper
val hash_variant : string ‑> int
val real : bool