[ fix ] Replaced (bad?) fromMaybe with case
[ Old GHCs ] Don't -fno-warn-identities on 7.0

This is a backport from master.
Move CPP pragma before the first CPP directive.
[ comments ] Haddockified invertP.
Merge branch 'maint-2.4.2' of github.com:agda/agda into maint-2.4.2
[ build ] Don't override AGDA_BIN if already set.
Revert "[ fix ] Replaced (bad?) fromMaybe with case"

This patch is the identity, at least in a lazy language like Haskell.

This reverts commit a25253a3adaa0314188ff5b698cb1520bd32ce05.
[ issue1303 ] Unquoting a variable referring to a dot pattern now triggers a proper error message.
Fix whitespace
[ cosmetics ] Comments, formatting in Scope/Base.
[ Issue 1320 ] Fixed.

WithoutK accidentially marked projection patterns as unusable.
[ Issue 1320 ] Test case for coinduction --without-K.
Enable 'make library-test' with an absolute $AGDA_BIN.
Import function instance for the sake of GHCi.

For some bizarre reason this works with GHC, even if the QuickCheck
definitions generated by `quickCheckAll` need it.  Now I can get a
`cabal repl` prompt.
Add .ghci that makes GHCi'ing Agda possible.

I'd love to use `cabal repl` if it didn't re-build the damn thing each
time.

It obviously needs the dist files from `cabal`, I should probably find
a way to programmatically generate those.

Also, eats your memory.
[ refactor ] Added strengthening constructor to substitution type

Previously we were substituting with __IMPOSSIBLE__ terms all over
the place, when we were sure that the corresponding variable was
unused. This is problematic if you want to optimise substitution
(for instance, simplify Var 0 [] :# Wk 1 IdS to IdS), since you
can't look at the term. To fix this you should now use

  new: Strengthen __IMPOSSIBLE__ rho
  old: __IMPOSSIBLE__ :# rho

  new: strengthen __IMPOSSIBLE__ v
  old: subst v __IMPOSSIBLE__

  new: compactS __IMPOSSIBLE__ [Just u, Nothing, Just v]
  old: parallelS [u, __IMPOSSIBLE__, v]

  new: noabsApp __IMPOSSIBLE__ u
  old: absApp u __IMPOSSIBLE__

To help catch incorrect uses of subst and friends, the
substitution building functions are now strict in the term. The
exception is 'lazyAbsApp' which is used in 'apply', which still
allows __IMPOSSIBLE__ terms. It'd be nice to get rid of that too
but I didn't want to change the type of 'apply'.
[ issue1303 ] updated unquote error message
[ subst ] optimise extending substation by variable

Law: Var n [] :# Wk (n + 1) rho == Wk n (Lift 1 rho)
[ new ] Added Agda.Utils.Empty

Contains an Empty type with Eq, Ord and Show instances and eliminator.
[ refactor ] Use Empty type instead of (forall a. a) in substitution type

Means we can derive Eq, Ord and Show again.