Patterns.HeadSourcetype desc = | Any| Construct of Data_types.constructor_description| Constant of Ocaml_parsing.Asttypes.constant| Tuple of string option list| Record of Data_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 Ocaml_parsing.Asttypes.mutable_flag * int| Lazydeconstruct p returns the head of p and the list of sub patterns.
reconstructs a pattern, putting wildcards as sub-patterns.