Clean up `isTcLevPoly` and `UnboxedAlgTyCon`
-
The GHC.Core.TyCon.isTcLevPolyfunction checks whether a tycon can be representation polymorphic. But that's not what its name sounds like. -
The UnboxedAlgTyConconstructor ofAlgTyConFlavsays that it describes an "unboxed type constructor". But that's not really true any more. It describes only unboxed products and sums. Other unboxed types fit inVanillaAlgTyCon. -
The flavour of an algebraic tycon (of type AlgTyConFlav) is stored in a field namedalgTcParent. This field name is misleading, because it's not just used to access a parent.
No bugs here, just confusing code.
Edited by Richard Eisenberg