(PUP-514) Ensure with() takes Type arguments
With hadn't been checked that it can take a Type as an argument.
Normally this kind of check wouldn't be needed, but as the type system
and calling conventions have been sorted out, this hasn't always worked
as intended.