My best efforts to write a Haskell parsing library