matching: towards a correctness argument for flatten_* ignoring variables
matching: towards a correctness argument for flatten_* ignoring variables

Before we ignored as-patterns in the flatten_* functions because
as-patterns would either be half-simplified or raise Cannot_flatten
(in any case, never reach the flattening functions).

Now the reasoning is a bit more subtle: the only non-simple matrices
we flatten are used as "ghost" information (default environments,
provenance) where variables do not matter, only the shape of matched values.

gerdstolpmann/ocaml,gerdstolpmann/ocaml,gerdstolpmann/ocaml,gerdstolpmann/ocaml,gerdstolpmann/ocaml