I don't usually have problems with commitment...

I think I can distinguish :: from ::: - :: fails the current branch point,
whereas ::: fails the entire rule. I can do ::: trivially.

I think I can distinguish between ::: and <commit>; the implementation
is a bit tricky, because ::: fails the current match - easy enough -
whereas <commit> has to specify to all upper-level matches that they
failed too. Is it reasonable for failing a <commit> to be an exception?
This would save passing "hard" and "soft" failure codes around. 

<cut> is just <commit> with a couple of knobs on.

I don't think I can distinguish between : and ::. Essentially, how many
nodes does each commit to? I would expect the following

        [ a+ : b | c+ : d | e+ : f ]

to do precisely the same as 

        [ a+ :: b | c+ :: d | e+ :: f ]

I don't see why Larry describes one as "if-then", but not the other.
Basically, I don't think I'm sure what : "gives up".

(Apologies if this doesn't sound as lucid as normal, it's 5:31am and I
have been hacking too long.)

-- 
Um. There is no David conspiracy. Definitely not. No Kate conspiracy either.
No. No, there is definitely not any sort of David conspiracy, and we are
definitely *not* in league with the Kate conspiracy. Who doesn't exist. And
nor does the David conspiracy. No. No conspiracies here. - Thorfinn, ASR

Reply via email to