Nuked my lame first implementation and started writing up the new design. So far so good, and I think the new interpolation semantics are going to work out.