Let's see if putting them all into one TypeVariableContext works..? Also, a lambda that returns void cannot conclude the generic header. How should we deal with this?