I originally implemented the lazy ssa cache by inheriting from an ssa_cache in protected mode and providing the required routines. This makes it a little awkward to do various things, and they also become not quite as interchangeable as I'd like.   Making the routines virtual and using proper inheritance will avoid an inevitable issue down the road, and allows me to remove the printing hack which provided a protected output routine. Overall performance impact is pretty negligible, so lets just clean it up. Bootstraps on x86_64-pc-linux-gnu  with no regressions.  Pushed. Andrew