Skip to content

Rename unboxed tuple data constructor from `(# #)` to `MkSolo#`

Proposal amendment Prefix form for MkSolo# (amendment of #475: Non-punning list and tuple syntax) was accepted. This is a tracking issue for implementing amendment in the compiler.

Here is the essence of the amendment:

  type Solo# :: TYPE rep -> TYPE (TupleRep [rep])
- data Solo# a = (# a #)
+ data Solo# a = MkSolo# a

Acceptance criteria:

  • An occurrence of (# x #) in term-syntax is a synonym for GHC.Types.MkSolo# x.
  • GHC prints (# x #) instead of MkSolo# x whenever it's possible, all places that require a prefix form of the constructor (e.g. -ddump-simpl) use MkSolo#.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information