
Marc Weber wrote:
Paresc is a great piece of software. But there are some things which do bother me occasionally.
A short list:
Things I'd like to change:
a) custom location tracking. (I've already written a patch, but I haven't tested how much speed will suffer? Which would be a nice test?)
b) Add a function returning a monadic result (thus either (fail . show) return each time .. ) because I feel like doing this all the time.
c) make some functions more generic examples:
module Text.ParserCombinators.Parsec.Char (these functions should work with any token type): anyChar -> anyToken char -> expectToken string -> expectTokens satisfy
d) export some simple functions such as nat decimal etc.. Sometimes all I just want to get an integer without importing Tokens and specifying a language..
shapr / sorear suggested asking SPJ to contact Daan Leijen.
Perhaps there are different approaches to address the issues above?
Do you also have some patches / suggestions ?
I submitted a patch some time ago that makes the GenParser monad of Parsec be an instance of MonadState, so that the user state can be manipulated using the usual get/put/modify functions. The problem with this is that it adds a dependency on mtl, and thus on MPTCs and FDs if I remember correctly. You can find it there: http://hackage.haskell.org/trac/ghc/ticket/1274 Cheers, Maxime