cvs commit: fptools/libraries/base/Control/Monad MonadRec.hs

Simon Marlow simonmar@microsoft.com
Mon, 30 Sep 2002 09:51:02 +0100


> erkok       2002/09/27 16:10:23 PDT
>=20
>   Added files:
>     libraries/base/Control/Monad MonadRec.hs=20
>   Log:
>   The MonadRec.hs library, stolen from the Hugs release.
>  =20
>   Note: There's a clear overlap with the library Control.Monad.Fix.
>  =20
>         Unfortunately, the names of the classes are different, mainly
>         for historical reasons (MonadFix vs MonadRec.) There was some
>         discussion on how to resolve this a while back, but I guess
>         Hugs and GHC went their own ways. Once the dust settles, we
>         can agree on something common, and make Hugs and GHC=20
> use the same
>         names. (Note that this duplication also exists in the current
>         release of Hugs as well.) For the time being, this file helps
>         keep things simple with regard to the already existing code
>         that uses the mdo-notation.. (i.e., it also defines instances
>         for the LazyST, ST, and list monads in addition
>         to the ones defined in Fix.hs: IO and maybe.)
>  =20
>   We can also name this file just "Rec", but "MonadRec" sounds less
>   confusing, and more inline with the Hugs release.

Levent, thanks for this.  I have a couple of comments though:  firstly,
I think it should definitely be called "Control.Monad.Rec" rather than
"Control.Monad.MonadRec" (the extra "Monad" is superfluous).  Hugs will
be using these libraries in its next release too, so I don't think
there's a compatibility problem.

Secondly, I presume we should deprecate the MonadFix class in
Control.Monad.Fix now?

Cheers,
	Simon
_______________________________________________
Cvs-libraries mailing list
Cvs-libraries@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-libraries