Fix the reverse of left and right arrow
Fix another reverse of arrow type
Release 1.16.0.1
Descriptive error messages in checkEnabled(OneOf).

Rationale: I have enabled stylish-haskell in my IntelliJ and was greeted with
the existing error message. Initially I thought I had to enable some sort of
stylish-haskell plugin and started googling for a solution.
Only after trying again on a different file, I realised the error
message was complaining about a missing language pragma: the second file
was missing a pragma which I recognised the name of (the first one
I did not know). Only then did I realise that it is not stylish-haskell
that is complaining, but rather it is this code. Feel free to adjust the wording
as long as the spirit of the change is maintained: giving clear error message
as to what happened and what to do to get it to work.
Move parse* functions out of InternalParser.ly

This commit reduces the boilerplate involved in adding an additional
parser.  It achieves this by using typeclass defaults in the Parseable
class to define the 'parse', 'parseWithMode', and 'parseWithComments'.
It adds some new exports (a whole new module, even), and only
introduces one minimal API breakage.

This API breakage is that now the instances of Parseable for the
Annotated types specify SrcSpanInfo, instead of being polymorphic on
annotation.  This is good, because typical usage would be to
instantiate 'loc' to 'SrcSpanInfo', and the implementation uses "fmap
fromSrcInfo".  So, this means before when using this instance, we'd be
copying the entire AST just to apply "id" to each annotation.  If the
user really wants this, then they can use "fmap fromSrcInfo".  I
highly doubt this change will break any users.

The NonGreedy newtype wrapper is used to indicate that a particular
'Parseable' instance isn't greedy in its consumption of input.  In
other words, once it's parsed the thing it parses, it does not
consume additional input.  This also means that parse errors won't
be detected in the suffix of the input.

The ListOf newtype wrapper is used to yield a list of Parseable
results, complete with SrcSpanInfo.

Despite only being used for module pragmas in this commit, these
newtypes are useful for many other Parseable instances.
Remove trailing whitespace
Blank lines inserted by the pretty-printer are now truly empty.
Previously, the pretty-printer inserted dummy spaces for no reason
other than lazy coding.

Blank lines in the middle of indented contexts will still be indented
as the surrounding context, but with no extra space there either.
Update all X.prettyprinter.golden test files to conform to the new improved behavior
Adds standalone parsers for ```ImportDecl``` as requested in #164.
Fix for #169.

Example of previous erroneous behavior:
```Haskell
  !Maybe a
```
New correct behavior:
```Haskell
  !(Maybe a)
```
Note that this only mattered for programmatically constructed ASTs -
for parsed code, the parentheses were already explicitly included
in the parse tree.
Merge pull request #181 from haskell-suite/parseImportDecl

Adds standalone parsers for ```ImportDecl```
Merge pull request #180 from haskell-suite/prettybang

Insert parentheses when pretty-printing non-atomic bang types
Fix pretty-printer bugs for HaRP (#160).

Also add the RegularPatterns.hs test file, with example syntax.
Standalone declaration parser now handles multiple matches in a
single function binding. This fixes bug #158.
Merge pull request #175 from m00nlight/lexer-arrow-bugfix

Fix the mixup of left and right arrows.
Merge commonalities between varsym and varsymm.

No functional changes.
Rework space handling with OPTIONS pragmas. Fixes #172.
Add test case for #172.
Handle constraint variables in class methods. Fixes #168.
Add test case for #168.