Lazy bind...

Ken Shan ken@digitas.harvard.edu
Tue, 30 Jul 2002 13:30:25 -0400


--qMm9M+Fa2AknHoGS
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Can you please give your definition of the Parser and ParserT type
constructors?  My guesses are:

    data State		=3D ...
    data Message	=3D ...
    data Accept a	=3D Fail Message | Empty | Ok State a
    data Decide a	=3D Rejected | Accepted a

    data Parser a	=3D Parser (State -> Decide (Accept a))
    data ParserT m a	=3D Parser (State -> m (Decide (Accept a)))

I wonder if it wouldn't be possible to redefine ParserT as

    data ParserT m a	=3D Parser (State -> m (Decide (m (Accept a))))

?

--=20
Edit this signature at http://www.digitas.harvard.edu/cgi-bin/ken/sig
The trick is that there is no trick.

--qMm9M+Fa2AknHoGS
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)

iD8DBQE9Rs0wzjAc4f+uuBURAkY2AJ9R1llRandS3qRuiCniyparKVhhXACfQVl1
I3FjIxODLO4n4hkxVQlhQ30=
=rbNS
-----END PGP SIGNATURE-----

--qMm9M+Fa2AknHoGS--