Ppx_let_expandermodule Extension_kind : sig ... endmodule Locality : sig ... endmodule With_location : sig ... endmodule Match_kind : sig ... endppx_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 ... endval wrap_expansion_identity :
loc:Ppxlib.location ->
modul:Ppxlib.longident Ppxlib.loc option ->
Ppxlib.value_binding list ->
Ppxlib.expression ->
expand:
(loc:Ppxlib.location ->
Ppxlib.value_binding list ->
Ppxlib.expression ->
Ppxlib.expression) ->
Ppxlib.expressiontype t = (module Ext)val ext_full_name :
t ->
locality:Locality.t ->
Extension_kind.t ->
Ppxlib.labelval bind : tval map : tval variables_of : Ppxlib.label Ppxlib.loc list Ppxlib.Ast_traverse.foldmodule Map : sig ... endval eoperator :
loc:Ppxlib.location ->
modul:Ppxlib.longident Ppxlib.loc option ->
Ppxlib.label ->
Ppxlib.expressionval 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.expressionval 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.expressionval 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.expressionval qualified_return :
loc:Ppxlib.location ->
modul:Ppxlib.longident Ppxlib.loc option ->
Ppxlib.expression ->
Ppxlib.expressionval expand :
t ->
Extension_kind.t ->
modul:Ppxlib.longident Ppxlib.loc option ->
locality:Locality.t ->
Ppxlib.expression ->
Ppxlib.expressionval do_not_enter_value : Ppxlib.value_binding -> Ppxlib.value_bindingval nontail : loc:Ppxlib.location -> Ppxlib.expression -> Ppxlib.expressionval location_arg_in_scope :
loc:Ppxlib.location ->
Ppxlib.label ->
Ppxlib.arg_label * Ppxlib.expressionval location_arg : loc:Ppxlib.location -> Ppxlib.arg_label * Ppxlib.expression