Patterns.HeadSourcetype desc = | Any| Construct of Types.constructor_description| Constant of Ocaml_parsing.Asttypes.constant| Tuple of int| Record of Types.label_description list| Variant of {tag : Ocaml_parsing.Asttypes.label;has_arg : bool;cstr_row : Types.row_desc ref;type_row : unit -> Types.row_desc;}| Array of int| Lazydeconstruct p returns the head of p and the list of sub patterns.
reconstructs a pattern, putting wildcards as sub-patterns.