Make sure mpz_t is defined
Report errors directly, instead of parsing the string given to ihputStrLn

Still use string parsing for parse errors (there must be a better way to get the source location of a parse failure)
Fix error reporting: use the right id to report back by installing
a catch block just after the id is set in the IState record
Merge pull request #661 from markuspf/bits-const-fix

Make sure mpz_t is defined
Merge pull request #662 from hannesm/error-cleanup

Error cleanup
More flexible type class instances (on functions)

Supports this sort of thing:

  instance Functor (\x => Int -> x) where
    map f intf = \x => f (intf x)

  instance Applicative (\x => Int -> x) where
    pure v = \x => v
    (<$>) f a = \x => f x (a x)

  instance Monad (\x => Int -> x) where
    f >>= k = \x => k (f x) x
Improve type class overlap check

Normalise before checking - store type class instances in normal form.
Fixes #249
Tweak reduction rules for private/abstract names

It is better if private names reduce during typechecking (since such
things arise in public functions which should reduce completely) and
only abstract names are prevented from reducing.

Fixes #348
Remove some of the more easily avoided %assert_totals
Use toNat to avoid %assert_total when negative Int is treated the same as 0.
Replace some Heap proofs with impossible.
Turn off optimisations when compiling parser

Disabling optimisations in Parser and ParserExpr allows to compile
these modules in a matter of seconds. It also doesn't seem to
affect compilation times of Idris programs.
Merge pull request #664 from sjdrodge/assert_total_cleanup

Some %assert_total cleanup
Merge pull request #666 from jstolarek/fast-parser-compilation

Turn off optimisations when compiling parser
Merge branch 'master' of github.com:idris-lang/Idris-dev
Add String offsets to VM

Now strTail just stores an offset into a string, meaning that it doesn't
need to reallocate or copy an entire string. Therefore traversing a
large string is now much quicker.

Note - this means the entire string gets GCed at once, so if there is a
large string but only a pointer to the end of it, the whole string still
needs to be stored. For traversal, this isn't really a problem, but we
may want to reallocate if the GC discovers there is only one reference
to an offset string.
Change Show instances for Char and String to match their literals
Adjust tests to the changed String show instance
Fix Char literal matching in C codegen
Update language-java dependency to 0.2.6

This version is required for the Java backend to emit correct char and string
literals in nonprinting and/or nonascii cases.