[Haskell-cafe] ANN: haskell-src-exts 1.7.0

Niklas Broberg niklas.broberg at gmail.com
Fri Jan 15 14:57:55 EST 2010

Fellow Haskelleers,

As I was asked to start spamming again, I'm hereby pleased to announce
the release of haskell-src-exts-1.7.0!

* On hackage: http://hackage.haskell.org/package/haskell-src-exts
* Via cabal: cabal install haskell-src-exts
* Darcs repo: http://code.haskell.org/haskell-src-exts

For users of hsx, this version works fine with hsx-0.6.1.

Since I haven't sent out one of these announcements in a while, here's
the complete CHANGELOG since the previous announcement:

** 1.7.x

1.6.1 --> 1.7.0

* Operators defined on the form

     (a `op` b) c = ...

  could not be handled by the (annotated) AST, nor the parser. I had to
  change the definition of the AST node for InfixMatch to allow a list
  of right-hand subpatterns, i.e.

     InfixMatch l (Pat l) (Name l) (Pat l) ...

  has become

     InfixMatch l (Pat l) (Name l) [Pat l] ...

  I also had an epiphany and fixed the issue that would arise with
  exact printing of prefix definitions including parentheses (e.g.
  (foo x) y = ...), so that now works too!

** 1.6.x

1.6.0 --> 1.6.1

* UnicodeSyntax now works not only for identifiers, but also for
  ->, <- and =>, as well as Arrows arrows and kind stars. (And
  before you send me bug reports for this one, do check that your
  version of readFile is Unicode aware, i.e. you use GHC 6.12
  or the utf8-string version).

1.5.3 --> 1.6.0

* (=~=) turns out to be too general at Functor (for intuitive and not
  technical reasons), so is specialised to Annotated to closer mirror
  the original intention.

* applyFixities is hoisted to a monad, and now fails on ambiguous infix

** 1.5.x

1.5.2 --> 1.5.3

* Several small bug fixes in the exact printer, and fail more gracefully
  if the number of srcInfoPoints doesn't match the needs of the node.

1.5.1 --> 1.5.2

* Fix a bug in the exact printer that made it always print the first token
  at position (0,0).

* In fixing the above, Annotated is now a superclass of ExactP. It was already
  a superclass in spirit, and nothing can break from this since ExactP is only
  exported abstractly.

1.5.0 --> 1.5.1

* The pretty printer now introduces parentheses for non-atomic arguments to
  function application. Note that infix applications are left untouched, no
  parentheses will be inserted there, as it is assumed that fixities are
  already properly resolved.

* Fix a bug in the pretty printer where view patterns and n+k patterns were
  not properly parenthesised.

1.4.0 --> 1.5.0

* Add support for acting on LINE pragmas while parsing, i.e. updating the source
  position according to info given in LINE pragmas. This is done conditionally
  based on a new flag ignoreLinePragmas in the ParseMode, hence the need to
  increase the major version.

** 1.4.x

1.3.5 --> 1.4.0

* The AST node for Proc in the simple AST is changed to include a
SrcLoc argument,
  to make it consistent with similar nodes e.g. Lambda. This is
specifically needed
  for transformation of patterns in HSX.

** 1.3.x

1.3.4 --> 1.3.5

* Added an entry point in the parser for statements, and an instance
Parseable Stmt
  to go with it.

* Ensured that .Annotated exports all relevant parseXXX(WithYYY) functions.

1.3.3 --> 1.3.4

* Operator fixities are now resolved in patterns.

1.3.2 --> 1.3.3

* Fixes a bug where qualified keywords are rejected even if the extension that
  enables the keyword in question is not turned on.

1.3.0 --> 1.3.2

(Let's forget 1.3.1 ever existed.)

* Fix a bug where declarations of infix operators were not properly
merged as FunBinds.

More information about the Haskell-Cafe mailing list