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

Reply via email to