This method accepts a binding from type variables to concrete types, and
then substitutes each such variable occuring in the target type with its
corresponding instantation.
This method accepts a binding from type variables to concrete types, and
then substitutes each such variable occuring in the target (function)
type with its corresponding instantation.