I found the immediate bug: the resolver was just failing in some circumstances (dying with an assertion error). But performance is utterly lousy. I guess I'll probably have to profile it to see why: I wasn't sure it would be hugely faster, but orders of magnitude slower seems like I messed up part of the design. Daniel