1234567891011121314151617181920212223242526openBaseopenPpxlibletextension=letpattern:(payload,(pattern*expression)list->expression->expression,expression)Ast_pattern.t=letopenAst_patterninsingle_expr_payload(pexp_let__(many(pack2(value_binding~constraint_:drop~pat:__~expr:__)))__)|>map2~f:(funrec_flagbindings->matchrec_flagwith|Recursive->Location.raise_errorf"[let rec] is not supported."|Nonrecursive->bindings)inExtension.declare"tydi"Expressionpattern(fun~loc~path:_bindingsrhs->letopen(valAst_builder.makeloc)inletpatterns,expressions=List.unzipbindingsinpexp_match(pexp_tupleexpressions)[case~lhs:(ppat_tuplepatterns)~guard:None~rhs]);;let()=Driver.register_transformation"tydi"~rules:[Context_free.Rule.extensionextension];;