Reimplementing http://hackage.haskell.org/package/syntactic so that I can learn it. Not for use.