Middle.StmtMIR types and modules corresponding to the statements of the language
module Pattern : sig ... endThe "two-level" type for statements in the MIR. This corresponds to what the AST calls Frontend.Ast.statement_with
include Ppx_compare_lib.Comparable.S2 with type ('a, 'b) t := ('a, 'b) tval compare :
'a Base__Ppx_compare_lib.compare ->
'b Base__Ppx_compare_lib.compare ->
('a, 'b) t Base__Ppx_compare_lib.compareinclude Ppx_hash_lib.Hashable.S2 with type ('a, 'b) t := ('a, 'b) tval hash_fold_t :
'a Base__Ppx_hash_lib.hash_fold ->
'b Base__Ppx_hash_lib.hash_fold ->
('a, 'b) t Base__Ppx_hash_lib.hash_foldval pp : ('a, 'b) t Fmt.tval rewrite_bottom_up :
f:('a Expr.t -> 'a Expr.t) ->
g:(('a, 'b) t -> ('a, 'b) t) ->
('a, 'b) t ->
('a, 'b) trewrite_bottom_up specializes fold so that the result type 'r1 is equal to the type of the nested fixed-point type i.e. 'r1 = 'a Expr.t and the result type 'r2 is equal to the top-level fixed-point type i.e. 'r2 = ('a,'b) t.
This also means that the function f can be written with our nested fixed-point type 'a Expr.t as its argument and g can be written with ('a,'b) t as its argument.
module Located : sig ... endmodule Numbered : sig ... endmodule Helpers : sig ... end