`M-x delete-trailing-whitespace` & `M-x untabify`

This removes all remaining tabs from `base`'s source code
testsuite: Fix outdated output for T5979/safePkg01

Looks like it was broken in aa4799534225.

Signed-off-by: Austin Seipp <austin@well-typed.com>
Add new `Data.Bifunctor` module (re #9682)

This adds the module `Data.Bifunctor` providing the
`Bifunctor(bimap,first,second)` class and a couple of instances

This module and the class were previously exported by the `bifunctors`
package.  In contrast to the original module all `INLINE` pragmas have
been removed.

Reviewed By: ekmett, austin, dolio

Differential Revision: https://phabricator.haskell.org/D336
Optimise atomicModifyIORef' implementation (#8345)

This forces the new value before installing it in the IORef.

This optimisation was originally suggested by Patrick Palka
and "exhibits a speedup of 1.7x (vanilla RTS) / 1.4x (threaded RTS)"
according to #8345

Reviewed By: austin, simonmar

Differential Revision: https://phabricator.haskell.org/D315
Un-wire `Integer` type (re #9714)

Integer is currently a wired-in type for integer-gmp. This requires
replicating its inner structure in `TysWiredIn`, which makes it much
harder to change Integer to a more complex representation (as
e.g. needed for implementing #9281)

This commit stops `Integer` being a wired-in type, and makes it
known-key type instead, thereby simplifying code notably.

Reviewed By: austin

Differential Revision: https://phabricator.haskell.org/D351
Deactivate T3064 `max_bytes_used`-check

Summary:
T3064 is deactivated for now because it's currently too volatile
and causes too much noise in Phabricator's CI

C.f. 4805abf413c02a2ed1af4fbeca2476590e984e37

Reviewers: austin

Subscribers: thomie, carter, ezyang, simonmar

Differential Revision: https://phabricator.haskell.org/D381
Improve performance of isSuffixOf (#9676)

The new implementation avoids reversing the "haystack" list, which can be
very expensive.

Reviewed By: ekmett

Differential Revision: https://phabricator.haskell.org/D330
Typo in comment
Normalise package key hash to make tests less fragile.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Add n-ary version of `two_normalisers` to testsuite lib

This is more readable than nesting `two_normalisers()`-invocations
testlib: Get rid of two_normalisers

And make normalise_fun polyvariadic. After all, this is untyped code, so
lets make use of it :-)
Make iterateFB inlineable

When investigating a case of unexpected Call Arity failure I noticed
that iterateFB would not inline as far as desired, as it is recursive.

This patch makes it non-recursive (with a local go), which seem so do
great good.
Add GHC.Prim.oneShot

Conflicts:
	compiler/basicTypes/MkId.lhs
Add oneShot demo file

(if you remove {-# GHC_OPTIONS -fno-call-arity #-} then both functions
have the same Core).

Obviously, this patch is not meant to be merged.
Make travis happy
Use oneShot in the definition of foldl etc.
Put one-Shot info in the interface
Preserve oneShotInfo in CoreTidy