Release Notes: Document Data.Bool.bool (#8302)
Make sure type literals aren't negative (#8306)

As Krzysztof pointed out in #8306, with NegativeLiterals and DataKinds,
definitions such as:

  type T = -1

were accepted, although type literals must be greater than zero.

Signed-off-by: Austin Seipp <austin@well-typed.com>
s/TypeNats/DataKinds/ in release notes.

Signed-off-by: Austin Seipp <austin@well-typed.com>
Typo in release notes
Further linguistic improvement of that one line

now brought to you by Gabor Greif... ;-)
Implement ctors support for Linux.

Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Add warning comment about Mach-O section name hack.

Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Allow branches with / in them (e.g. wip/) in ./sync-all
Release Notes: New printf features in base
Change role annotation syntax.

This fixes bugs #8185, #8234, and #8246. The new syntax is explained
in the comments to #8185, appears in the "Roles" subsection of the
manual, and on the [wiki:Roles] wiki page.

This change also removes the ability for a role annotation on type
synonyms, as noted in #8234.
Suppress unused variable when OS does not support setuid.

Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Fix-up Docbook XML broken in f4046b508a5a7
Limit upper versions of Alex and Happy

This is temporary until new bool primops have been pushed.
Implement checkable "minimal complete definitions" (#7633)

This commit adds a `{-# MINIMAL #-}` pragma, which defines the possible
minimal complete definitions for a class. The body of the pragma is a
boolean formula of names.

The old warning for missing methods is replaced with this new one.

Note: The interface file format is changed to store the minimal complete
definition.

Authored-by: Twan van Laarhoven <twanvl@gmail.com>
Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
Tweaks to release notes
If someone also feels that credits should better go into the
release announcement, just nuke the last line of that paragraph.
Add flag to control loopification

It is off by default, which is meant to be a workaround for #8275.
Once #8275 is fixed we will enable this option by default.
A little refactoring

* Make isCFunEqCan_maybe return Maybe (TyCon, [Type])
* Add insertTM, deleteTM to TrieMap
Accommodate Derived constraints in two places (fix Trac #8129, #8134)

If we have
   class (F a ~ b) => C a b
then we can produce *derived* CFunEqCans.  These were not being
treated properly in two places:

a) in TcMType.zonkFlats (Trac #8134)
b) in TcSMonad.prepareInertsForImplications (Trac #8129)

This patch fixes both.
Optimise (case tagToEnum# x of ..) as in Trac #8317

See Note [Optimising tagToEnum#] in Simplify
Tidy up and refactor overflow checking for literals

It's much easier (and more efficient) to pattern match on
the HsOverLit than on the desugared version!