Re-export `<$>` from Prelude (#10113)
authorHerbert Valerio Riedel <hvr@gnu.org>
Sat, 7 Mar 2015 10:10:34 +0000 (11:10 +0100)
committerHerbert Valerio Riedel <hvr@gnu.org>
Sat, 7 Mar 2015 10:10:53 +0000 (11:10 +0100)
commiteb3661f2b9f8472f3714774126ebe1183484dd85
tree2153640f3a87a099ea1bcd399f327fb8600c7ebc
parent1965202febe27949a027dea90c0f0040fd9236e7
Re-export `<$>` from Prelude (#10113)

Whether to re-export the `<$>` non-method operator from `Prelude` wasn't
explicitly covered in the original AMP proposal[1], but it turns out that
not doing so forces most code that makes use of applicatives to import
`Data.Functor` or `Control.Applicative` just to get that operator into
scope.  To this end, it was proposed to add `<$>` to Prelude as well[2].

The down-side is that this increases the amount of redundant-import
warnings triggered, as well as the relatively minor issue of stealing
the `<$>` operator from the default namespace for good (although at this
point `<$>` is supposed to be ubiquitous anyway due to `Applicative`
being implicitly required into the next Haskell Report)

 [1]: https://wiki.haskell.org/Functor-Applicative-Monad_Proposal
 [2]: http://thread.gmane.org/gmane.comp.lang.haskell.libraries/24161

Reviewed By: austin, ekmett

Differential Revision: https://phabricator.haskell.org/D680
18 files changed:
compiler/hsSyn/HsBinds.hs
compiler/parser/RdrHsSyn.hs
compiler/typecheck/TcEvidence.hs
compiler/typecheck/TcGenDeriv.hs
compiler/types/Coercion.hs
compiler/utils/MonadUtils.hs
compiler/utils/Pair.hs
compiler/vectorise/Vectorise/Convert.hs
compiler/vectorise/Vectorise/Exp.hs
compiler/vectorise/Vectorise/Type/Type.hs
compiler/vectorise/Vectorise/Utils/Hoisting.hs
compiler/vectorise/Vectorise/Var.hs
libraries/base/Prelude.hs
testsuite/tests/parser/should_compile/T7476/T7476.hs
testsuite/tests/parser/should_compile/T7476/T7476.stdout
testsuite/tests/rename/should_fail/T2993.hs
testsuite/tests/rename/should_fail/T2993.stderr
testsuite/tests/th/T10019.stdout