Mask async exceptions in forkM_

See #8006 for the reason why. This is not a fix as such; more of a workaround.
Export getHscEnv from HscMain
More detailed error message when GND fails

we now print the precise class method, with types, where the coercion
failed.
Fix note reference [WildCard binders]
Comments only
Improve ASSERT
Comments only
Untab ClosureTypes.h and ClosureFlags.c
Remove code that generates FunDep error message context

as it seems that this code is now dead (due to
[Dropping derived constraints]) (See #8592)
Move the allocation of CAF blackholes into 'newCAF' (#8590)

We now do the allocation of the blackhole indirection closure inside the
RTS procedure 'newCAF' instead of generating the allocation code inline
in the closure body of each CAF.  This slightly decreases code size in
modules with a lot of CAFs.

As a result of this change, for example, the size of DynFlags.o drops by
~60KB and HsExpr.o by ~100KB.
Update and deduplicate the comments on CAF management (#8590)
Use new flushExec implementation on all operating systems (#8562)

An earlier patch fixes a bug in flushExec on linux only.  This
patch uses the fixed code on all operating systems.

Signed-off-by: Austin Seipp <austin@well-typed.com>
Made ghc -e have a nonzero exit code upon failure (Trac #7962 )

Signed-off-by: Austin Seipp <austin@well-typed.com>
Refactored by Simon Marlow's suggestion

Signed-off-by: Austin Seipp <austin@well-typed.com>
Fix compiler warnings due to integer size mismatch

Signed-off-by: Austin Seipp <austin@well-typed.com>
Comments, and rename a variable
Typecheck typed TH splices properly (fix Trac #8577)

This was an egregious error.  If e :: T (Q ty1)
then when we have the splice

     $e :: ty2

we must ensure that ty1~ty2 before we even think about
running the splice!

I took the opportunity to remove the dead-code tcSpliceDecls
altogether.
Suggest TemplateHaskell after encountering a naked top-level expression

Helps fix #7396
Clean up Lexer.srcParseErr

The lexer now uses unicode single quotation marks in its error messages
if possible.  This is due to the use of the 'quotes' combinator.
Suggest TemplateHaskell after encountering a parse error on '$' (#7396)