Module Ppxlib__.Common

val lident : Ppxlib__.Import.string ‑> Ppxlib.Longident.t
val core_type_of_type_declaration : Ppxlib__.Import.type_declaration ‑> Ppxlib__.Import.core_type
val name_type_params_in_td : Ppxlib__.Import.type_declaration ‑> Ppxlib__.Import.type_declaration
val combinator_type_of_type_declaration : Ppxlib__.Import.type_declaration ‑> f:(loc:Ppxlib.Location.t ‑> Ppxlib__.Import.core_type ‑> Ppxlib__.Import.core_type) ‑> Ppxlib__.Import.core_type
val gen_symbol : ?⁠prefix:Ppxlib__.Import.string ‑> Ppxlib__.Import.unit ‑> Ppxlib__.Import.string

gen_symbol ?prefix () generates a fresh variable name with prefix.

val string_of_core_type : Ppxlib__.Import.core_type ‑> Ppxlib__.Import.string
val assert_no_attributes : Ppxlib__.Import.attributes ‑> Ppxlib__.Import.unit
val assert_no_attributes_in : Ppxlib.Ast_traverse.iter
val get_type_param_name : (Ppxlib__.Import.core_type * Ppxlib__.Import.variance) ‑> Ppxlib__.Import.string Ppxlib.Loc.t

get_tparam_id tp returns the string identifier associated with tp if it is a type parameter.

class type_is_recursive : Ppxlib__.Import.rec_flag ‑> Ppxlib__.Import.type_declaration Ppxlib__.Import.list ‑> object ... end

(new type_is_recursive rec_flag tds)#go () returns whether rec_flag, tds is really a recursive type. We disregard recursive occurrences appearing in arrow types. You can override the search for certain type expressions by inheriting from this class.

val really_recursive : Ppxlib__.Import.rec_flag ‑> Ppxlib__.Import.type_declaration Ppxlib__.Import.list ‑> Ppxlib__.Import.rec_flag

really_recursive rec_flag tds = (new type_is_recursive rec_flag tds)#go ()

val loc_of_payload : Ppxlib__.Import.attribute ‑> Ppxlib.Location.t
val loc_of_attribute : Ppxlib__.Import.attribute ‑> Ppxlib.Location.t
val curry_applications : Ppxlib__.Import.expression ‑> Ppxlib__.Import.expression

convert multi-arg function applications into a cascade of 1-arg applications

val attribute_of_warning : Ppxlib.Location.t ‑> Ppxlib__.Import.string ‑> Ppxlib__.Import.attribute

Encode a warning message into an 'ocaml.ppwarning' attribute which can be inserted in a generated Parsetree. The compiler will be responsible for reporting the warning.