Module Ppx_let_expander

module Extension_kind : sig ... end
module Locality : sig ... end
module With_location : sig ... end
module Match_kind : sig ... end

ppx_let implements the expansion of `if%ext`, by treating it as a match%ext that matches on a boolean. In order to still be able to distinguish the origin for error message reporting purposes Match_kind.t is a tiny type that let you know if the "match" expansion comes from a match%ext or an if%ext

module type Ext = sig ... end
type t = (module Ext)
val ext_full_name : t -> locality:Locality.t -> Extension_kind.t -> Ppxlib.label
val bind : t
val map : t
module Map : sig ... end
val expand_match : t -> extension_kind:Extension_kind.t -> loc:Ppxlib.location -> modul:Ppxlib.longident Ppxlib.loc option -> locality:Locality.t -> Ppxlib.expression -> Ppxlib.case list -> Ppxlib.expression
val maybe_destruct : destruct: (assume_exhaustive:bool -> loc:Ppxlib.location -> modul:'a -> lhs:Ppxlib.pattern -> rhs:Ppxlib.expression -> body:Ppxlib.expression -> Ppxlib.expression option) -> loc:Ppxlib.location -> modul:'a -> return_value_in_exclave:bool -> zero_alloc:bool -> lhs:Ppxlib.pattern -> body:Ppxlib.expression -> Ppxlib.expression
val bind_apply : ?fn_label:string -> prevent_tail_call:bool -> op_name:Ppxlib.label -> loc:Ppxlib.location -> modul:Ppxlib.longident Ppxlib.loc option -> with_location:With_location.t -> arg:Ppxlib.expression -> fn:Ppxlib.expression -> unit -> Ppxlib.expression
val qualified_return : loc:Ppxlib.location -> modul:Ppxlib.longident Ppxlib.loc option -> Ppxlib.expression -> Ppxlib.expression
val do_not_enter_value : Ppxlib.value_binding -> Ppxlib.value_binding
val location_arg_in_scope : loc:Ppxlib.location -> Ppxlib.label -> Ppxlib.arg_label * Ppxlib.expression