Ignore repeated loads of the same archive (#8942)
Include LD_OPTS when building the RTS shared libs
Derive Typable for promoted data constructors (Trac #8950)

I got sucked into a significant refactoring of the way that
Typeable instances are derived.  This makes it simpler and
more uniform.

I also improved the documentation in the user manual.  Typeable
really is different to other classes, and now gets its own subsection.
users_guide: note -XPatternSynonyms is required for use sites

Signed-off-by: Austin Seipp <austin@well-typed.com>
Clarify bits about role inference in users' guide.
Improve tracing slightly
Zonk the existential type variables in tcPatSynDecl

This was just an omission, which showed up as Trac #8966
Improve documentation of GeneralisedNewtypeDeriving
Add comments & notes explaining the typing of pattern synonym definitions
Don't preprocess .s files

One important reason is that gcc 4.8.1 sometimes crashes:

  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60436

Another reason is that preprocessing assembly files unnecessarily
slows down compilation.
Allow a longer demand signature than arity

See Note [Demand analysis for trivial right-hand sides] in DmdAnal.
This allows a function with arity 2 to have a DmdSig with 3 args;
which in turn had a knock-on effect, which showed up in the test for
Trac #8963.

In fact it seems entirely reasonable, so this patch removes the
WARN and CoreLint checks that were complaining.
Refactor in worker/wrapper generation

I don't think there should be any change in behaviour, but
the code is clearer now.  Function checkSize is elimiated
in favour of doing those checks before (rather than after)
splitFun/splitThunk.
Test Trac #8963
Improve error reporting for untouchable type variables

This change adds a suggestion
    Possible fix: add a type signature for ‘f’
when we have a GADT-style definition with a
type we can't figure out.

See Note [Suggest adding a type signature] in TcErrors.

This initially came up in the discussion of Trac #8968.
Fix #5435, adding new test config check_stdout.

check_stdout(f) allows you to override the test framework's
diff based output checking with another mechanism.  f is
a function which takes two arguments: the first is the
filename containing the observed stdout, the second is the
normaliser that would have been applied (in case you want
to read, normalise, and then do something.)

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Suppress uniques to stop output wobbling (test for Trac #8958)
Fix egregious blunder in the type flattener

In tidying up the flattener I introduced an error that no
regression test caught, giving rise to Trac #8978, #8979.
It shows up if you have a type synonym whose RHS mentions
type functions, such sas
     type family F a
     type T a = (F a, a)   -- This synonym isn't properly flattened

The fix is easy, but sadly the bug is in the released GHC 7.8.1
Split off pattern synonym definition checking from pattern inversion
Fix #8641, creating directories when we have stubs.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Update Haddock submodule reference.