SI-6113 typeOf now works for type lambdas

It's not a problem to have an abstract type symbol in a ground type tag
if that symbol is defined in the type being reified.

This mechanics was already built in for existentials, now we extend it to
include type params of poly types.

Credit goes to @katefree