• Vladislav Zavialov's avatar
    Embrace -XTypeInType, add -XStarIsType · d650729f
    Vladislav Zavialov authored
    Summary:
    Implement the "Embrace Type :: Type" GHC proposal,
    .../ghc-proposals/blob/master/proposals/0020-no-type-in-type.rst
    
    GHC 8.0 included a major change to GHC's type system: the Type :: Type
    axiom. Though casual users were protected from this by hiding its
    features behind the -XTypeInType extension, all programs written in GHC
    8+ have the axiom behind the scenes. In order to preserve backward
    compatibility, various legacy features were left unchanged. For example,
    with -XDataKinds but not -XTypeInType, GADTs could not be used in types.
    Now these restrictions are lifted and -XTypeInType becomes a redundant
    flag that will be eventually deprecated.
    
    * Incorporate the features currently in -XTypeInType into the
      -XPolyKinds and -XDataKinds extensions.
    * Introduce a new extension -XStarIsType to control how to parse * in
      code and whether to print it in error messages.
    
    Test Plan: Validate
    
    Reviewers: goldfire, hvr, bgamari, alanz, simonpj
    
    Reviewed By: goldfire, simonpj
    
    Subscribers: rwbarton, thomie, mpickering, carter
    
    GHC Trac Issues: #15195
    
    Differential Revision: https://phabricator.haskell.org/D4748
    d650729f
DsMeta.hs 104 KB