Ganesh Sittampalam <[email protected]> added the comment:

The implementation of this looks pretty good to me - easy to read and minimally
invasive.

Unfortunately, it breaks the type witnesses build, because it completely ignores
them, specifically in this type and all the code surrounding it:

> type PatchTree p = Tree (Either (FL p) (RL p))

I think the right solution is simply to use our own tree type that does respect
witnesses - in particular the Forest constructor would use an FL rather than a
[], and PatchTree itself would be something like this:

type PatchTree p C(x y) = OurTree (OurEither (FL p) (RL p)) C(x y)

Annoyingly we'd need our own Either type too because the kinds would be wrong
otherwise.

----------
assignedto:  -> ganesh
nosy: +ganesh
status: needs-review -> amend-requested

__________________________________
Darcs bug tracker <[email protected]>
<http://bugs.darcs.net/patch106>
__________________________________
_______________________________________________
darcs-users mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to