cvs commit: fptools/libraries/base/Control/Monad/X Cont.hs
ContT.hs Error.hs ErrorT.hs Fix.hs Identity.hs Monads.hs Nondet.hs
NondetT.hs README Reader.hs ReaderT.hs Resume.hs ResumeT.hs State.hs
StateT.hs Trans.hs Transformers.hs Types.hs Uti
Simon Marlow
simonmar@microsoft.com
Wed, 4 Jun 2003 12:25:27 +0100
=20
> On Tuesday 03 June 2003 11:26 pm, diatchki@glass.cse.ogi.edu wrote:
> > Added files:
> > libraries/base/Control/Monad/X Cont.hs [...]
> > Log:
> > Added a first version of the new monad library (experimental).
> > Hopefully one day the "X" will disappear.
>=20
> What's the policy on adding large directory trees of=20
> experimental code to existing libraries like base?
We don't have one. Yet ;-)
> Some obvious options:
>=20
> 1) Go right ahead - no need to mark it specially
>=20
> 2) Go right ahead but be sure to use an X prefix to warn=20
> people - we'll delete the X once it is finalized.
>=20
> 3) It'd be better to do the development in a separate library tree
> such as fptools/libraries/newmonads.
>=20
> a) And give it a name like Unsafe.Control.Monad.Cont
> b) And give it a name like Org.Diatchki.Control.Monad.Cont
> c) And give it a name like Control.Monad.Cont
>=20
> I lean towards either (1) or (3) and can't decide between 3a/b/c.
>=20
> (3) seems most in keeping with the push for a library infrastructure.
I agree with either (1) or (3).
(1) is arguably OK because these libraries are currently marked
experimental.
(3a) or (3b) is arguably better because it gives people a chance to
comment on the code before it goes in. (3c) is the same as (1) except
that the code is physically separate in the repository: I think this is
a good idea regardless, as long as we don't envisage adding dependencies
on the new code into base at some point, which would mean moving it all
back in again.
Summary:
- The new monad library should go in a package of its own
(fptools/monads?).
- I suggest putting it under Unstable for the time
being, then moving it to the proper place in the hierarchy later,
deleting the existing Control.Monad.Stuff at the same time.
I know that moving whole libraries around in the hierarchy is painful at
the moment. Simon P.J. and I have been devoting some brain cycles to
this problem, and we hope to have a proposal soon.
Cheers,
Simon