
30 Jul
2002
30 Jul
'02
1:30 p.m.
Can you please give your definition of the Parser and ParserT type constructors? My guesses are: data State = ... data Message = ... data Accept a = Fail Message | Empty | Ok State a data Decide a = Rejected | Accepted a data Parser a = Parser (State -> Decide (Accept a)) data ParserT m a = Parser (State -> m (Decide (Accept a))) I wonder if it wouldn't be possible to redefine ParserT as data ParserT m a = Parser (State -> m (Decide (m (Accept a)))) ? -- Edit this signature at http://www.digitas.harvard.edu/cgi-bin/ken/sig The trick is that there is no trick.