diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,5 @@
+HNOP is written by Ashley Yakeley.
+
+Permission is hereby granted, free of charge, to any person obtaining this work (the "Work"), to deal in the Work without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Work, and to permit persons to whom the Work is furnished to do so.
+
+THE WORK IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE WORK OR THE USE OR OTHER DEALINGS IN THE WORK. 
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,2 +1,3 @@
+#!/usr/bin/env runhaskell
 import Distribution.Simple
-main = defaultMain
+main = defaultMainWithHooks simpleUserHooks
diff --git a/src/Text/ParserCombinators/UU/Core.hs b/src/Text/ParserCombinators/UU/Core.hs
--- a/src/Text/ParserCombinators/UU/Core.hs
+++ b/src/Text/ParserCombinators/UU/Core.hs
@@ -86,13 +86,11 @@
 type Progress = Int
 
 data  Steps   a  where
-      Step   ::              Progress       ->  Steps a                                -> Steps   a
-      Apply  ::  forall b.   (b -> a)       ->  Steps   b                              -> Steps   a
-
-      Fail   ::              Strings        ->  [Strings   ->     (Cost , Steps   a)]  -> Steps   a
-
-      End_h  ::              ([a] , [a] -> Steps r)        ->  Steps   (a,r)           -> Steps   (a, r)
-      End_f  ::              [Steps   a]   ->  Steps   a                               -> Steps   a
+      Step   ::                 Progress       ->  Steps a                             -> Steps   a
+      Apply  ::  forall a b.    (b -> a)       ->  Steps   b                           -> Steps   a
+      Fail   ::                 Strings        ->  [Strings   ->  (Cost , Steps   a)]  -> Steps   a
+      End_h  ::                 ([a] , [a]     ->  Steps r)    ->  Steps   (a,r)       -> Steps   (a, r)
+      End_f  ::                 [Steps   a]    ->  Steps   a                           -> Steps   a
 
 failAlways  =  Fail [] [const (0, failAlways)]
 noAlts      =  Fail [] []
diff --git a/uu-parsinglib.cabal b/uu-parsinglib.cabal
--- a/uu-parsinglib.cabal
+++ b/uu-parsinglib.cabal
@@ -1,10 +1,11 @@
 Name:                uu-parsinglib
-Version:             2.3.0
+Version:             2.3.1
 Build-Type:          Simple
 License:             LGPL
+License-file:        LICENSE
 Author:              Doaitse Swierstra
 Maintainer:          doaitse@swierstra.net       
-Stability:           experimental
+Stability:           stable, but evolving
 Homepage:            http://www.cs.uu.nl/wiki/bin/view/HUT/ParserCombinators
 Bug-reports:         mailto:doaitse@swierstra.net
 Synopsis:            New version of the Utrecht University parser combinator library        
@@ -15,15 +16,7 @@
                      The file Text.ParserCombinators.UU.Examples contains a ready-made main function,
                      which can be called to see the error correction at work.
                      .
-                     The library is based on ideas described in the paper:
-                     .
-                     * S.Doaitse Swierstra.
-                     /Combinator Parsing: A Short Tutorial/.
-                     Technical Report, Universiteit Utrecht
-                     (<http://www.cs.uu.nl/research/techreps/repo/CS-2008/2008-044.pdf>).
-                     .
-                     This tutorial will also appear in LNCS Volume 5520, which contains the lecture notes from 
-                     the Lernet Summerschool.
+                    
                      .
                      Versions above 2.1: 
                      .
@@ -39,7 +32,10 @@
                      . contain some form of abstract interpretation from the old uulib versions of these combinators
                      . are closer to Haskell98, since they do not make use of type families anymore
                      . note that the basic parser interface will probably not change when we add more features, but the calling conventions
-                       of the outer parser and the class structure upon which the parametrisation is based may change 
+                       of the outer parser and the class structure upon which the parametrisation is based may change
+                     . 
+                     Version 2.3.1
+                     . fix for GHC 6.12, because of change in GADT definition handling
                      
 Category:            Text.ParserCombinators Parsing Text
 
