Propagate expected type through blocks

As it says!  Just the 2nd commit.  r? @pcwalton (or anyone)