
Am Mittwoch, 7. Januar 2009 21:28 schrieb Antoine Latter:
On Wed, Jan 7, 2009 at 11:23 AM, Mauro J. Jaskelioff
wrote: Hi, sorry for the late reply,
I also like Ross' idea of monads being synonyms for transformers at Id. It removes lots of repeated code.
There's a cost to that technique.
Parsec3 introduced parsec as a monad transformer, and the parsec base monad is implemented as the transformer wrapped around the identity monad.
There's a significant speed regression to doing so - I have a branch of Parsec3 which re-introduces a proper base monad and shares (some) code via typeclasses. This puts us back at Parsec2 numbers.
I don't have any hard data on hand at the moment, it's been a while.
-Antoine
Isn’t it possible to make GHC more clever to remove this speed penalty? Best wishes, Wolfgang