One of the things that the double-dispatching paper describes is how careful use of forwarding functions can eliminate the N^2 problem. It also describes a browser that generates a lot of the code for you. I've wanted to have somebody reimplement that browser for years.
-Ralph