haskell-src-exts v1.15.0.1 Release Notes

  • ๐Ÿ†• New language features:

    • DoRec
    • Closed type families
    • GADT records
    • ExplicitNamespaces
    • Type equality constraints
    • PolyKinds
    • DataKinds
    • 0๏ธโƒฃ Default associated types
    • Instance signatures
    • OVERLAP pragma
    • Parallel arrays
    • MINIMAL pragma
    • 0๏ธโƒฃ Default signatures
    • Safe Haskell
    • Binary literals
    • Qualified record puns
    • Type splices

    AST changes:

    • PatBind no longer contains the optional Maybe Type field. The type signature is now represented as part of the pattern (PatTypeSig)
    • GuardedAlt and GuardedAlts types are replaced with the isomorphic GuardedRhs and Rhs types
    • ๐Ÿšš Move parentheses from the Context to Asst type
    • ๐Ÿ”„ Change DeclHead and InstHead to make it possible to represent various ways to put parentheses around parts of declarations. Introduce a new type InstRule for the same purpose.
    • ๐Ÿ”„ Change representation of negated patterns
    • ๐Ÿ‘‰ Make strictness annotations on data type fields part of those fields' Type

    ๐Ÿ›  Notable bug fixes:

    • ๐Ÿ‘ Allow statements, and not just expression, in MultiWayIf conditions
    • ๐Ÿ‘ Allow equality constraints when GADTs are enabled
    • ๐Ÿ›  Fix parsing and printing of pragma modifiers, such as CONLIKE
    • Don't treat 'capi' or 'interruptible' as a keyword except after 'foreign'
    • Let ImpredicativeTypes imply ExplicitForAll
    • Let RecursiveDo enable 'rec' keyword
    • ๐Ÿ›  Fix pretty-printing of the unary minus sign
    • Do not require FlexibleContexts for things like Ord (i Int) => ...
    • ๐Ÿ›  Fix pretty-printing of deriving clauses
    • ๐Ÿ“œ Parse "Constraint" as a kind with ConstraintKinds enabled
    • ๐Ÿ‘Œ Support qualified quasi-quoters
    • ๐Ÿ“œ Enable ScopedTypeVariables when parsing rules
    • Only permit record wildcards in last position
    • ๐Ÿ‘ Allow n-parameter infix data declaration heads

    Other changes:

    • ๐Ÿ”ฆ Expose showToken from Language.Haskell.Exts.Lexer
    • ๐Ÿ‘‰ Show instance for SrcLoc and SrcSpan are changed (now they do not contain
    • field names)
    • โž• Add DeriveGeneric to known extensions

    ** 1.15.x