Skip to content
  • Torsten Schmits's avatar
    Introduce ListTuplePuns extension · d91d00fc
    Torsten Schmits authored and Marge Bot's avatar Marge Bot committed
    This implements Proposal 0475, introducing the `ListTuplePuns` extension
    which is enabled by default.
    
    Disabling this extension makes it invalid to refer to list, tuple and
    sum type constructors by using built-in syntax like `[Int]`,
    `(Int, Int)`, `(# Int#, Int# #)` or `(# Int | Int #)`.
    Instead, this syntax exclusively denotes data constructors for use with
    `DataKinds`.
    The conventional way of referring to these data constructors by
    prefixing them with a single quote (`'(Int, Int)`) is now a parser
    error.
    
    Tuple declarations have been moved to `GHC.Tuple.Prim` and the `Solo`
    data constructor has been renamed to `MkSolo` (in a previous commit).
    Unboxed tuples and sums now have real source declarations in `GHC.Types`.
    Unit and solo types for tuples are now called `Unit`, `Unit#`, `Solo`
    and `Solo#`.
    Constraint tuples now have the unambiguous type constructors `CTuple<n>`
    as well as `CUnit` and `CSolo`, defined in `GHC.Classes` like before.
    
    A new parser construct has been ...
    d91d00fc