This patch introduces the -XUnliftedDatatypes extension. When this extension is enabled, GHC relaxes the restrictions around what result kinds are allowed in data declarations. This allows data types for which an unlifted or levity-polymorphic result kind is inferred.
The most significant changes are in
Note [Implementation of UnliftedDatatypes] describes the details of the
Fixes #19523 (closed).