Note [Type determines value]

GHC/Core/Predicate.hs:305 compiler 3 tickets

Only specialise on non-impicit-parameter predicates, because these
are the ones whose *type* determines their *value*.  In particular,
with implicit params, the type args *don't* say what the value of the
implicit param is!  See #7101.

So we treat implicit params just like ordinary arguments for the
purposes of specialisation.  Note that we still want to specialise
functions with implicit params if they have *other* dicts which are
class params; see #17930.

It's also not always possible to infer that a type determines the value
if type families are in play. See #19747 for one such example.

References 0

This Note does not link to any other.

Referenced by 2