On Thu, 3 Dec 2009, Matthias Fischmann wrote:
Hi again, quick question: I have implemented '--last' and it works, but I am not sure whether this is how I should do it. Anybody care to drop a quick comment, like "yes, that's fine", or "no, use ... instead"?
I haven't had time to look properly or thing of an alternative to the problem I did notice, but will try to have a proper look at the weekend:
hunk ./src/Darcs/Ordered.hs 145 +takeRL :: Int -> RL p C(x y) -> RL p C(x y) +takeRL i _ | i < 0 = assert False $ error "takeRL: negative argument." +takeRL 0 _ = NilRL +takeRL _ NilRL = NilRL +takeRL i (x:<:xs) = x :<: takeRL (i-1) xs + +takeFL :: Int -> FL p C(x y) -> FL p C(x y) +takeFL i _ | i < 0 = assert False $ error "takeFL: negative argument." +takeFL 0 _ = NilFL +takeFL _ NilFL = NilFL +takeFL i (x:>:xs) = x :>: takeFL (i-1) xs +
This bit can't possibly work with type witnesses, unfortunately - configure with -ftype-witnesses and you'll see this for yourself.
You might be able to make it work by using 'sealing', i.e. the types in Darcs.Sealed. It's all a bit more fiddly than I'd like, though :-(
Ganesh (who is currently trying to add witnesses to the modules that don't have it yet...)
_______________________________________________ darcs-users mailing list [email protected] http://lists.osuosl.org/mailman/listinfo/darcs-users
