diff --git a/TODO b/TODO
index d158357..6036167 100644
--- a/TODO
+++ b/TODO
@@ -50,9 +50,6 @@ decide whether to represent numeric literals better, instead of a
 
 rough SQL 2003 todo, including tests to write:
 can multipart identifiers have whitespace around the '.'?
-multipart string literals
-national, unicode, hex, bit string literals, escapes
-string literal character sets
 more work on date and time literals
 support "" in delimited identifier
 unicode identifier
@@ -64,15 +61,12 @@ add missing type name support: lots of missing ones here, including
    row, ref, scope, array, multiset type names.
 decide how to represent special identifiers including the session
    variables or whatever they are called like current_user
-host :parameter + indicator
-collation stuff, other character set stuff: list what is needed
-array[], multiset[]
+multiset[]
 grouping - needs special syntax?
 review window function support and missing bits
 review case expressions
 next value for
 probably leave for now: subtypes, methods, new /routine, dereference
-array element reference
 multiset element reference - maybe nothing to do
 double check associativity, precedence (value exprs, joins, set ops)
 position expressions
@@ -80,7 +74,6 @@ length expressions
 extract expression
 cardinality expression?
 check concatenations
-collations: review where can appear
 substring expressions
 regular expression substring function
 convert
@@ -90,7 +83,6 @@ overlay
 specifictype
 datetime value expressions
 intervals
-array value constructors
 multiset value expressions, constructors
 row value constructors, expressions review
 review table value constructor exactly what is allowed
@@ -110,9 +102,7 @@ escape for like
 escape for [not] similar to
 regular expression syntax?
 quantified comparison predicate: represent different from current
-unique predicate
 normalized predicate
-match predicate
 overlaps predicate
 distinct from predicate
 member predicate
@@ -121,10 +111,11 @@ set predicate
 type predicate
 additional stuff review:
 interval stuff
-collate clause
 aggregate functions: lots of missing bits
+  especially: filter where, within group
 complete list of keywords/reserved keywords
-
+select into
+other language format identifiers for host params?
 
 review areas where this parser is too permissive, e.g. value
    expressions allowed where column reference names only should be
diff --git a/changelog b/changelog
index b18e8b1..b55c00f 100644
--- a/changelog
+++ b/changelog
@@ -1,7 +1,7 @@
-0.4.0-dev (updated to dffd7b0d7a08e0c59a33f5da4730a49484eb2cdb)
+0.4.0-dev (updated to 37dca6596bee307749bd74d01303c12235342c65)
 	completely remove dependency on haskell-src-exts
-	remove lots of 'try' from the parser which should start to improve
-	  the error messages
+	remove lots of 'try' from the parser, and add some other code
+	  which should start to improve the error messages
 	fix some trailing whitespace issues in the keyword style functions,
 	  e.g. extract(day from x), dealing with trailing whitespace on
 	  the parens was fixed
@@ -9,8 +9,8 @@
 	  (still some issues here)
 	parse schema qualified table names in from clause (thanks to Sönke
 	  Hahn)
-	fix bug where the 'as' was incorrectly optional in a with
-	  expression list item
+	fix bug where the 'as' was incorrectly optional in a 'with
+	  expression list item'
 	fix bug in set operations where 'all' was assumed as the default
 	  instead of 'distinct', e.g. 'select * from t union select * from
 	  u' was parsed to 'select * from t union all select * from u'
@@ -20,6 +20,24 @@
 	  wrong way round
 	replace Int with Integer in the Syntax
 	derive Data and Typeable in all the Syntax types
+	remove support for parsing clauses after the from clause if there
+	  is no from clause
+	fix some trailing junk lexing issues with symbols and number
+	  literals
+	fix number literals to accept upper case E
+	support multiline string literals
+	support colon prefix host parameters and introducer
+	support unique predicate
+	support match predicate
+	change the syntax representation of quantified comparison
+	  predicates
+	support array constructors and subscripting
+	support character set literals
+	support collate
+	change the hardcoded collate keyword in substring and trim to use
+	  the new collate postfix operator, this also changes the collation
+	  name to be an identifier instead of a string
+	support escape for string literals as a postfix operator
 0.3.1 (commit 5cba9a1cac19d66166aed2876d809aef892ff59f)
 	update to work with ghc 7.8.1
 0.3.0 (commit 9e75fa93650b4f1a08d94f4225a243bcc50445ae)