Drop deprecated `OverlappingInstances` from base
authorHerbert Valerio Riedel <hvr@gnu.org>
Fri, 31 Oct 2014 07:52:47 +0000 (08:52 +0100)
committerHerbert Valerio Riedel <hvr@gnu.org>
Fri, 31 Oct 2014 08:35:12 +0000 (09:35 +0100)
commitcbb20ab2c3222da75625bcf41f8ff67a7e9ba5f7
treef617cdbd123b574b3510ef5be3582367f209c85c
parent1907e8196a50100a646b0d70f22468dad7023442
Drop deprecated `OverlappingInstances` from base

With #9242 the `OverlappingInstances` extension got deprecated, this
commit adapts the only two remaining places in `base` where it was still
used.

Starting with this commit, the `Typeable (s t)` instance (which seemingly
was the motivation for using `OverlappingInstances` in the first place
when `Typeable` was neither polykinded nor auto-derived-only, see also
commit ce3fd0e02826367e6134a3362d8d37aa114236f5 which introduced
overlapping instances) does no longer allow overlapping instances, and
there doesn't seem to be any good reason to keep allowing overlapping
instance now.

This also removes redundant `LANGUAGE`/`OPTIONS_GHC` pragmas from
`Data.Typeable` and refactors the language pragmas into more uniform
single-line pragmas.

Reviewed By: austin

Differential Revision: https://phabricator.haskell.org/D377
libraries/base/Data/Typeable.hs
libraries/base/Data/Typeable/Internal.hs
libraries/base/base.cabal