@adriaanm Perhaps you'll have some insight to offer here. Last time Paul and I were discussing `propagateKnownTypes` on the mailing lists:

>On Tue, Mar 26, 2013 at 11:51 PM, Jason Zaugg <jzaugg@gmail.com> wrote:
>>Would `to.instantiateTypeParams(tparams, resArgs)` be more correct that `appliedType(to, resArgs: _*)`? It seems to handle some >>special cases for annotated/existential/higher-kinded types.
>Probably. Any idea whether there's some good reason this distinction should exist? Is it handling cases I wouldn't want handled sometimes?
>
I> notice that appliedType routes to instantiateTypeParams if the type constructor is a polytype, which means if the symbol-application appliedType was
>
>    appliedType(tyconSym.typeConstructor.normalize, args)
>
> instead of
>
>    appliedType(tyconSym.typeConstructor, args)
>
> Then instantiateTypeParams would be called. I assume a bunch of unrelated pain would arrive as well.