I think all the toTypedPipes need to be lazy vals or we will probably wind up recomputing stuff.  Getting that right will be a bit tough.