Get the variance right

This finishes getting the variance right.

I want to do this before we add more platforms (e.g. Akka).