It's a smeary copy of the checker's type parameter, so I feel bad about duplicating that code. Not sure what the solution is, architecturally.
Type parameter inference is special-cased, just moved from its previous place with no improvement.