[Haskell-cafe] parsec3 pre-release [attempt 2]

Philippa Cowderoy flippa at flippac.org
Sat Feb 2 20:49:02 EST 2008


On Sat, 2 Feb 2008, Antoine Latter wrote:

> I'm not a fan of parameterizing the "Stream" class over the monad 
> parameter `m':
<snip>
> I looked through the sources and I didn't see anywhere where this
> parameterization gained anything.  As a proof of this I did a
> mechanical re-write removing the class parameter, and the library
> still seems to work.
> 

AngloHaskell attendees may remember the quickie I did on handling the 
layout rule via a parsing monad transformer - removing this would stop me 
from generating the input stream in a particular monad and break the trick 
behind it.

The idea was to use a lexing monad which the parser would be stacked on 
top of, such that the parser could communicate with the lexer and delayout 
function. Then when the parser failed at a point where a closing brace 
would allow parsing to continue, it could backtrack in the stream, tell 
the lexer that it failed the first time and ask for the character again - 
and if the layout rule allows it at that point, the returned character 
would this time be a closing brace.

-- 
flippa at flippac.org

Performance anxiety leads to premature optimisation


More information about the Haskell-Cafe mailing list