Explicit singleton list.
A singleton list can be used to reveal the structure of
a type-level list argument that the function is quantified
over. For every type-level list xs, there is one non-bottom
value of type SList xs.
Note that these singleton lists are polymorphic in the list elements; we do not require a singleton representation for them.