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

Niklas Broberg niklas.broberg at gmail.com
Sat Aug 22 16:26:46 EDT 2009

Fellow Haskelleers,

I'm pleased to announce the release of haskell-src-exts-1.1.3.

* On hackage: http://hackage.haskell.org/package/haskell-src-exts
* Via darcs: darcs get http://code.haskell.org/haskell-src-exts

* Report bugs: http://trac.haskell.org/haskell-src-exts

haskell-src-exts is a package for Haskell source code manipulation. In
particular it defines an abstract syntax tree representation, and a
parser and pretty-printer to convert between this representation and
String. It handles (almost) all syntactic extensions to the Haskell 98
standard implemented by GHC, and the parsing can be parametrised on
what extensions to recognise.

haskell-src-exts-1.1.3 is a highly experimental release, which (apart
from a small bug fix, see below) doesn't do anything at all to the
current stable part of haskell-src-exts. But the release is far from
as boring as all that may sound, as it includes a whole new set of
modules implementing a new and more accurate syntax tree where all
nodes are adorned with annotations. Together with this comes a parser
that retains exact source information, stored in the aforementioned
annotations. There is also support for various precision for source
information, including SrcSpans. The new modules mirror the ones in
the stable part of haskell-src-exts but instead live in
Language.Haskell.Exts.Annotated{.Syntax,.Parser,...}  (except that
SrcLoc and friends now have their own module).

The point of this release is that those of you that for one reason or
other are waiting for these features can help me look, feel, test and
comment these things in isolation, and hopefully report a lot of bugs,
before I integrate this stuff with the main haskell-src-exts body of
code. Note that that coming integration is intended to be
backwards-compatible, but a lot of the behind-the-scenes will be
switched over to the new and more general machinery.

Feature-wise, with this accurate source tree in hand, the next step is
to write a printer that uses the full location information to allow
full and exact round-tripping, i.e. (print . parse == id).

== haskell-src-exts-1.1.3 ==

* Adds support for more accurate, and fully annotated, abstract
syntax, see above.
* Fixes a bug that forced 'rec' statement groups to end with a
qualifier (like 'do').

Cheers and Happy Haskelling,


More information about the Haskell-Cafe mailing list