Skip to content

Non-punning list and tuple syntax (-XListTuplePuns, -XNoListTuplePuns)

This ticket is to track the implementation of GHC Proposal #475 "Non-punning list and tuple syntax".

I intend to break the implementation into multiple parts, so here's a checklist for things that have been implemented and merged so far:

  • Export Solo(MkSolo) from GHC.Tuple (2463df2f)
  • Export Unit, Tuple<n> from GHC.Tuple (a13affce)
  • Export CUnit, CSolo, CTuple<n> from GHC.Classes, GHC.Exts (d91d00fc)
  • Export Unit#, Solo#, Tuple<n>#, and Sum<n># from GHC.Exts (d91d00fc)
  • Export Tuple, TupleArgKind, Constraints, TupleArgKind#, Tuple#, and Sum# from GHC.Tuple
  • Export List from GHC.Types and GHC.List (02279a9c)
  • Create Prelude.Experimental and re-export Unit, Solo, Tuple<n>, CUnit, CSolo, CTuple<n>, List (d91d00fc)
  • Implement the ListTuplePuns extension to control parsing and pretty-printing (d91d00fc)

The proposal also prescribes to remove the Solo pattern synonym in three releases. Since this is to be done later, it will be tracked in a separate ticket.

Edited by Vladislav Zavialov
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information