The data constructor pointer tagging was incomplete for certain data types that had more than an architecture-specific limit w.r.t. the number of its constructors.

E.g. on 64-bit architectures a data type with more than 7 constructors got always assigned a pointer tag of 0b001 when evaluated (WHNF).

This MR sets such data types on equal footing with "small constructor families" by employing pointer tags 0b001 to 0b111 . The latter is then used as an indication that the info table needs to be consulted (by an additional CMM switch ) to obtain missing constructor information.

See commit message for benchmark results and changes in binary sizes.