Add `{-# MINIMAL #-}` annotations to typeclasses

This makes use of the new `{-# MINIMAL #-}` facility (see #7633)
for the following typeclasses

 - `Bits`
 - `Foldable`
 - `Fractional`
 - `Num`
 - `MonadZip`
 - `Read`
 - `Show`
 - `Storable`
 - `Traversable`

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
Trailing whitespaces
Follow changes in comparison primops (see #6135)
Add Haddock docs for new `class FiniteBits`
Add Haddock `/Since: 4.7.0.0/` comments to new symbols

These annotations were added in such a way, that the line

{{{
/Since: 4.7.0.0/
}}}

represents the last paragraph of the Haddock comment.

Maybe Haddock will have support for this meta-syntax at some point, and
be able to inherited the since-version property to the children of an
annotated symbol and display the since-version property in the rendered
documentation only in cases when it's not visually obvious (for
instance, when re-exporting documentation strings).

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
Add Haddock `/Since: 4.6.0.0/` comments to symbols

This commit retroactively adds `/Since: 4.6.0.0/` annotations to symbols
newly added/exposed in `base-4.6.0.0` (as shipped with GHC 7.6.1).

See also 6368362f which adds the respective annotation for symbols newly
added in `base-4.7.0.0` (that goes together with GHC 7.8.1).

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
Add Haddock `/Since: 4.5.[01].0/` comments to symbols

This commit retroactively adds `/Since: 4.5.[01].0/` annotations to symbols
newly added/exposed in `base-4.5.[01].0` (as shipped with GHC 7.4.[12]).

See also 6368362f which adds the respective annotation for symbols newly
added in `base-4.7.0.0` (that goes together with GHC 7.8.1).

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
Add Haddock `/Since: 4.4.0.0/` comments to symbols

This commit retroactively adds `/Since: 4.4.0.0/` annotations to symbols
newly added/exposed in `base-4.4.0.0` (as shipped with GHC 7.2.1).

See also 6368362f which adds the respective annotation for symbols newly
added in `base-4.7.0.0` (that goes together with GHC 7.8.1).

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
Remove obsolete pre-Haddock-2 `#hide` pragmas

The now obsolete (and redundant) `#hide` pragmas have been superseded by
`{-# OPTIONS_HADDOCK hide #-}` pragmas which are used by most of the
affected modules anyway.

This commit also adds proper `{-# OPTIONS_HADDOCK hide #-}` pragmas to
`GHC.Desugar` and `GHC.IO.Encoding.Iconv` which had only the ineffective
`#hide` annotation.

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
Add instance Monad (WrappedMonad m) to Control.Applicative (#8218)
Add type functions (-) and ToNat1;  Turn FromNat1 into a closed family.
Add Foldable/Traversable instances for 'Const m'

These were proposed a while ago but never went anywhere.

Authored-by: Edward Kmett <ekmett@gmail.com>
Signed-off-by: Austin Seipp <austin@well-typed.com>
Add fmapCoerce to Functor class.

This allows coercions to work under functors that are not locally known.

Authored-by: Edward Kmett <ekmett@gmail.com>
Signed-off-by: Austin Seipp <austin@well-typed.com>
Revert "Add fmapCoerce to Functor class."

This reverts commit 3da4fd92e005cb9348ab2852d9268ad61ae1b347.

Signed-off-by: Austin Seipp <austin@well-typed.com>
Documentation for GHC.Generics
Define typeRep in terms of new Proxy#

Data.Typeable.Internal.Typeable now contains typeRep# - defined over
Proxy# - instead of typeRep, the latter now being a wrapper of the
former.

Authored-by: Edward Kmett <ekmett@gmail.com>
Authored-by: Austin Seipp <austin@well-typed.com>
Signed-off-by: Austin Seipp <austin@well-typed.com>
Fix comment typo introduced in 6368362f44
Add a few missing `{-# LANGUAGE CPP #-}`s

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
Modernize and refactor `base.cabal`

 - removes the redundant `impl(ghc)` conditional
 - unifies the `exposed-modules` list
 - sorts lists alphabetically
 - convert to uniform `,`-less & line-oriented lists
   (helps reduce diff-noise in future)
 - remove obsolete `nhc98-options` field
 - avoid `{}`-style Cabal grammar
 - remove `extensions: CPP`
 - add `category` field to silence Cabal warning
 - add missing entries to `extra-source-files`
   (the source distribution wasn't buildable because of this!)
 - list all occuring `LANGUAGE` pragmas in `other-extensions`
 - explicitly declare `default-language: Haskell2010`

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
Drop redundant `{-# LANGUAGE #-}` pragmas

This removes language pragmas from Haskell modules which are implicitly
active with `default-language: Haskell2010`. Specifically, the following
language extension pragmas are removed by this commit:

 - PatternGuards
 - ForeignFunctionInterface
 - EmptyDataDecls
 - NoBangPatterns

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>