Thanks Sean,
I had't realized this was the case. I was fooled by the fact that conformed
values often are the same as the unconformed value. That changed in the fdef
where the the arg is enclosed in a seq. My spec setup didn't work as is, but
the work around (s/cat :arg ::my spec) as the fir
prefers(x,y) visits ancestors by calling parents.invoke() recursively.
This visits the parents in the global hierarchy, not the multimethod's
hierarchy.
Is this the intended behavior? Why would that be?
On the assumption that prefer-method should behave the same for a local vs
the global-hierar
prefers(x,y) checks the ancestors of x, and returns true if any of them are
preferred to y --- which makes sense to me.
However, it also check the ancestors of y, and returns true if x is
preferred to any of them, which I don't understand.
Is that the intended behavior? Seems like it should be