src/Idris/ParseHelpers.hs: workaround build failure against ghc-7.8

> [50 of 75] Compiling Idris.ParseHelpers ( src/Idris/ParseHelpers.hs, dist/build/Idris/ParseHelpers.o )
>
> src/Idris/ParseHelpers.hs:40:97:
>     Could not coerce from ‘Monad Parser’ to ‘Monad IdrisInnerParser’
>       because the first type argument of ‘Monad’ has role Nominal,
>       but the arguments ‘Parser’ and ‘IdrisInnerParser’ differ
>       arising from the coercion of the method ‘notFollowedBy’ from type
>                    ‘forall a. (Monad Parser, Show a) => Parser a -> Parser ()’ to type
>                    ‘forall a.
>                     (Monad IdrisInnerParser, Show a) =>
>                     IdrisInnerParser a -> IdrisInnerParser ()’
>     Possible fix:
>       use a standalone 'deriving instance' declaration,
>         so you can specify the instance context yourself
>     When deriving the instance for (Parsing IdrisInnerParser)

I'm not sure if it's a ghc-7.8.1-rc2 bug or feature.
Looks like standalone deriving does not try to infer (too tight) context.

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Add resourceType function for convenience in Eff
Merge branch 'master' of github.com:idris-lang/Idris-dev
Equivalence and congruence relations
Congruence over a single function instead of all functions
Fix for name shadowing in evaluator

Things are much easier if we have unique names everywhere, but we didn't
quite have it right in the evaluator (it wasn't checking the outer
environment when evaluating in a surrounding environment).

Fixes #642
Merge branch 'master' of github.com:idris-lang/Idris-dev
Merge pull request #953 from JanBessai/OrderEqCong

Equivalence and congruence relations
Tweak scoping rules in instance generation

Variable names in the instance head should be propagated as parameters
to the methods, just like other parameters.

Fixes #956
Fix unbound implicit rules

We were automatically binding names in function position, which is not
what the tutorial says and not what I intended... this can lead to
strange error reports.

Fixes #913
Merge pull request #957 from JanBessai/OrderEqCong

Congruence over a single function instead of all functions
Pretty printing fix

Lookup implicitness on fully explicit names, so that we don't get
clashes with local names and hence mistakes in output.

Fixes #410
Handler for Exceptions in List context
Add support for reflecting ByReflection
Allow users to disable the auto-solve in the prover

Use :set autosolve and :unset autosolve to do this.
Rename 'new' to 'newInit' in neweffects

Also, updated version of 'new' which takes a default resource, now
corresponding to run/runInit and runPure/runPureInit.
Skip unnecessary coverage checking

If the last clause in a definition contains only _, we don't need to
coverage check it. This vastly, vastly improves the speed of this defn:

fourTupleElems : TT -> Maybe (TT, (TT, (TT, TT)))
fourTupleElems (App (App (App (App p ty1) ty2) tm1)
                (App (App (App (App p ty3) ty4) tm2)
                 (App (App (App (App p ty1) ty2) tm3) tm4))) = Just (tm1, tm2, tm3, tm4)
fourTupleElems _ = Nothing
Syntax for failures  in pattern matching let/<-

  let pat = val | <alternatives> in x'

...becomes...

  case val of
       pat => x'
       <alternatives>

  do pat <- val | <alternatives>
     p

...becomes...

  do x <- val
     case x of
          pat => p
          <alternatives>

So in particular, large effectful functions can deal with failure inline
rather than having lots of nested case blocks, e.g.

main : IO ()
main = do [p, a] <- getArgs
                      | [p] => putStrLn "No arguments!"
                      | (x :: y :: _) => putStrLn "Too many arguments!"
          print (foo (Just (cast a)))
javascript: add time function
javascript: quick & dirty compile time error on invalid FFI