I wonder if we should rename this to convey the assumptions we make by using `propagateKnownTypes`.

It's only used in `inferTypedPattern` right now; we could also make it private.