Ganesh Sittampalam <[email protected]> added the comment: I'm still not very happy with the PatchTree type. Why does it actually need to have both FL and RL pieces? Also there's an invariant on the representation which could be expressed in the constructor - either the list of patches is of length 1 and the list of child trees is of length 0, or the list is of length >1 and the list of child trees is of length 2.
Also, why store a copy of the list of patches as well as the tree? You can traverse either in the same amount of time, modulo a small and almost certainly irrelevant constant factor. Why not something like data PatchTree p = Leaf p | Fork (PatchTree p) (PatchTree p) Also, from reading the code it looks like it would report an internal error if given an empty list of patches to bisect over. __________________________________ Darcs bug tracker <[email protected]> <http://bugs.darcs.net/patch106> __________________________________ _______________________________________________ darcs-users mailing list [email protected] http://lists.osuosl.org/mailman/listinfo/darcs-users
