Changelog for haskell-src-exts-1.11.1
** 1.11.x
1.10.2 --> 1.11.1
===============
* API change: the fixities field in ParseMode is now of type
Maybe [Fixity]. If the field is Nothing the parsing will
not try to do any fixity resolution whatsoever, otherwise
it behaves as before.
* API change, bug fix: The Fixity type contains a QName rather
than an Op to name the operator. The operator must match
the given QName exactly (i.e., unqualified names only match
unqualified names, and qualified names only match qualified
names) for applyFixities to perform fixups.
* Bug fix: End-of-file inside an OPTIONS pragma no longer loops.
** 1.10.x
1.10.1 --> 1.10.2
===============
* Fix a missing case in the Functor declaration for Decl. Thanks
to Malcolm Wallace for the patch!
1.10.0 --> 1.10.1
===============
* Enable the unicode version of DoubleColon (x2237). Thanks
to Andr�s Sicard-Ram�rez for the patch!
1.9.6 --> 1.10.0
===============
* Ensure that implied extensions are always picked up, not only
when using the parseFile* family of functions as previously.
* Add the newly devised <%>...</%> syntax to the XmlSyntax support.
This causes changes to pretty much everything, including adding
a case to the AST which prompts the major version bump.
** 1.9.x
1.9.5 --> 1.9.6
===============
* Fix a bug (#203) where the lexer loops on malformed quasi-quoters.
* Fix a bug with pretty-printing RULES pragmas.
1.9.4 --> 1.9.5
===============
* Fix a bug where deriving clauses for GADT-style data declarations
were not properly indented.
* Pretty-printing patterns is now more accurate in inserting (and not
inserting) parentheses when needed.
1.9.3 --> 1.9.4
===============
* Pretty-printer now inserts parentheses in clever places when
printing kinds.
* Pretty-printing expressions is now far more accurate in inserting
(and not inserting) parentheses when needed.
* Pretty-printing negative expressions no longer inserts a superfluous
space between the - and the expression.
1.9.2 --> 1.9.3
===============
* Constructors for newtype declarations must now have exactly one
argument. This is only when using the classic syntax, not with
GADT-style syntax.
* Fix a bug where preceding commas in tuple sections were counted
one too few.
1.9.1 --> 1.9.2
===============
* Fix a bug with pretty-printing lexer tokens.
* Fix a bug where non-colon TypeOperators could not be used in
prefix mode.
1.9.0 --> 1.9.1
===============
* Export parseFileContentsWithExts from .Exts.
1.8.2 --> 1.9.0
===============
* OptionPragma is renamed to the more descriptive ModulePragma,
and adds a constructor AnnModulePragma for handling ANN pragmas
preceding module header.
* Add instances for Eq/Ord/Data/Typeable for Fixity.
* Add 'parseFileWithComments' and 'parseFileContentsWithComments'
to L.H.Exts .
* More informative error messages when HSX tags are mismatched.
** 1.8.x
1.8.1 --> 1.8.2
===============
* Don't insert redundant parentheses around record constructions
and updates.
1.8.0 --> 1.8.1
===============
* Fix three bugs with the handling of ANN. I must have been really
tired when implementing that support.
1.7.2 --> 1.8.0
===============
* Add an instance Show Fixity (derived).
* Support for the new ANN and INLINE_CONLIKE pragmas.
* Export knownExtensions from .Extension.
* Remove support for CFILES and INCLUDE pragmas. The support wasn't
correct anyway, as it assumed the pragmas appeared at the top of
files. As CFILES/INCLUDE pragmas can (and do) appear anywhere,
there's no hope to support them in the AST. Better to remove the
support altogether. Files with CFILES/INCLUDE pragmas can still
be parsed of course, but those pragmas will be handled as comments.
* Parsing with ignoreLinePragmas = False now correctly updates the
file name.
* Allow the whole SPECIALISE/INLINE family of pragmas in instance
declarations. The InsInline constructor is removed, and is now
represented by InsDecl (InlineSig ...).
* Fix a bug with line numbering and quasi quotes, and a similar one
with line numbering and CDATA.
* Fix a few minor bugs in the exactPrinter.
* Fix the strange handling of so called strings in LINE pragmas.
** 1.7.x
1.7.1 --> 1.7.2
===============
* Fixes a bug in lexing LINE pragmas (used when ignoreLinePragmas
is set to False).
1.7.0 --> 1.7.1
===============
* UnicodeSyntax now also enables the forall symbol (U+2200).
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, 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.
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
expressions.
** 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.