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>
Remove obsolete `include/Nhc98BaseConfig.h`

This is a left-over from f231a01d2217d31

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
Add `/Since: 4.7.0.0/` to new entities in fc904366

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
Add missing/remove redundant `{-# LANGUAGE CPP #-}`s

The `CPP` forgotten were in windows-specific modules, and the redundant
`CPP` files were removed in some `.hsc` files.

Note: `.hsc` files only require `{-# LANGUAGE CPP #-}` annotations if
they use `##`, as `hsc2hs` removes all non-escaped `#`-directives.

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