This work is based on John Wiegley’s emacs-pl. The original emacs-pl is awesome, but I found following problems when I tried to use it: It only contains a very limited set of combinators Some of its functions (combinators) have different behaviors than their Haskell counterparts It can’t show error messages when parsing fails So I decided to make a new library on top of it. This library, however,