Module Melange_compiler_libs.Matching

val call_switcher_variant_constant : (Lambda.scoped_location -> Lambda.lambda option -> Lambda.lambda -> (int * (string * Lambda.lambda)) list -> Lambda.switch_names option -> Lambda.lambda) Stdlib.ref
val call_switcher_variant_constr : (Lambda.scoped_location -> Lambda.lambda option -> Lambda.lambda -> (int * (string * Lambda.lambda)) list -> Lambda.switch_names option -> Lambda.lambda) Stdlib.ref
val make_test_sequence_variant_constant : (Lambda.lambda option -> Lambda.lambda -> (int * (string * Lambda.lambda)) list -> Lambda.lambda) Stdlib.ref
val for_function : scopes:Debuginfo.Scoped_location.scopes -> Location.t -> int Stdlib.ref option -> Lambda.lambda -> (Typedtree.pattern * Lambda.lambda) list -> Typedtree.partial -> Lambda.lambda
val for_trywith : scopes:Debuginfo.Scoped_location.scopes -> Location.t -> Lambda.lambda -> (Typedtree.pattern * Lambda.lambda) list -> Lambda.lambda
val for_let : scopes:Debuginfo.Scoped_location.scopes -> Location.t -> Lambda.lambda -> Typedtree.pattern -> Lambda.lambda -> Lambda.lambda
val for_multiple_match : scopes:Debuginfo.Scoped_location.scopes -> Location.t -> Lambda.lambda list -> (Typedtree.pattern * Lambda.lambda) list -> Typedtree.partial -> Lambda.lambda
val for_tupled_function : scopes:Debuginfo.Scoped_location.scopes -> Location.t -> Ident.t list -> (Typedtree.pattern list * Lambda.lambda) list -> Typedtree.partial -> Lambda.lambda
val for_optional_arg_default : scopes:Debuginfo.Scoped_location.scopes -> Location.t -> Typedtree.pattern -> default_arg:Lambda.lambda -> param:Ident.t -> Lambda.lambda -> Lambda.lambda

for_optional_arg_default pat body ~default_arg ~param is:

let $pat =
  match $param with
  | Some x -> x
  | None -> $default_arg
in
$body
exception Cannot_flatten
val flatten_pattern : int -> Typedtree.pattern -> Typedtree.pattern list
val expand_stringswitch : Lambda.scoped_location -> Lambda.lambda -> (string * Lambda.lambda) list -> Lambda.lambda option -> Lambda.lambda
val inline_lazy_force : Lambda.lambda -> Lambda.scoped_location -> Lambda.lambda
val names_from_construct_pattern : (Patterns.Head.desc Typedtree.pattern_data -> Lambda.switch_names option) Stdlib.ref