[darcs-devel] darcs patch: start gadt stuff (and 6 more)
David Roundy
droundy at darcs.net
Thu Jun 14 06:56:03 PDT 2007
On Thu, Jun 14, 2007 at 06:38:10AM +0200, Eric Y. Kow wrote:
> On Wed, Jun 13, 2007 at 13:06:07 -0700, David Roundy wrote:
> > Yeah, that's the plan. As long as it works fine without
> > --with-type-witnesses, the plan is that we'll convert modules to use type
> > witnesses one at a time.
>
> Ok. I'm happy with that.
>
> > And converting *all* of darcs is not currently on our timetable.
>
> Nod.
>
> You might want to convert those tests (Darcs.Patch.Test) earlier than
> later just to help ensure that you didn't inadvertently break anything
> in transforming ',' to ':<' and ':' to ':>:'. Well, I guess it's not
> terribly likely, but it may not be that large an investment anyway.
The trouble is that the tests are buggy, and it's very hard to make them
non-buggy. It's just very hard to create a valid sequence of patches. :(
I did put a lot of effort into doing so, but replace patches, for instance,
are not properly supported by the quickcheck interface.
> > > I should read (p1 :< p2) as p1 before p2, right?
> >
> > No, that would mean p1 after p2. Do you find the arrow more intuitive the
> > other direction?
>
> Well, there is an immediate temptation to treat the '<' as anything that
> sounds like 'less than' or 'before'... but you might have your own
> notational constraints, so I won't advocate either way.
I think of the < as an arrow for time... but I could see how it you thought
of it as a 'less than' it'd make sense the other way.
> > > Also, I wonder if we want
> > > :< and
> > > :>: to be different directions...
> >
> > The idea is that (p2 :< p1) means p1 before p2 (notice that I changed their
> > order) and that (p1 :>: ps) means p1 before ps.
>
> > We'd rather move over to using :>, as in (p1 :> p2), but that would involve
>
> Oh! Yes, it would be nice when that's uniform (but as you say, only when
> the the safety is in place). Does that mean that you will eventually
> do away with having both directions and just flip the order of the
> arguments?
We'll still need both FL and RL, since many algorithms require a list in
reversed order, but for pairs we'd only have :>. And we might decide that
reversing the arguments to cons for the RL is best, something like a
forward list is constructed with :>:: and a reverse list by ::>:, where the
double-colon side indicates the "list" argument and the single-colon side
the "singleton" argument.
--
David Roundy
http://www.darcs.net
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://lists.osuosl.org/pipermail/darcs-devel/attachments/20070614/6af013f5/attachment.pgp
More information about the darcs-devel
mailing list