私はこれに取り組んでおり、Clojureでできる限り実装しています。私は Gofer (または Haskell) を知りませんが、私は行くにつれて十分に理解しています。ただし、 inp の後の単一引用符と二重単一引用符が何として機能するかを説明している場所を見つけることができないようです。
seq :: Parser a -> Parser b -> Parser (a,b)
p `seq` q = \inp -> [((v,w),inp'') | (v,inp') <- p inp
, (w,inp'') <- q inp']
助けていただければ幸いです。