Note [Match Ids]

GHC/HsToCore/Match.hs:174 compiler 1 ticket

Most of the matching functions take an Id or [Id] as argument.  This Id
is the scrutinee(s) of the match. The desugared expression may
sometimes use that Id in a local binding or as a case binder.  So it
should not have an External name; Lint rejects non-top-level binders
with External names (#13043).

See also Note [Localise pattern binders] in GHC.HsToCore.Utils

References 1

Referenced by 4