A CommonLog parser in Haskell