Some constructors of TT will never occur during elaboration, but are
instead a part of the optimization process. Thus, they have been removed
from reflection, to simplify the interface.
Likewise, I discovered that RForce is no longer produced anywhere in
Idris, so it was also deleted from both the reflection API and the
internals.
This ensures that context modifications are preserved and that terms are
re-checked in the modified context. Fixes an issue where helper lemmas
generated in scripts would disappear.
new script is based on hvr/multi-ghc-travis template, featuring
+ build against multiple GHC vesions (currently 7.6, 7.8 and 7.10)
+ dependencies caching and cache invalidation on dependencies changes
Displaying things with machine generated names is really just noise, and
potentially confusing since they're inaccessible and typically an
artefact of the elaboration process, so hide them.
(If this turns out to be differently confusing, we'll have to consider
an option to display them. Maybe we should do that anyway.)
Operations on success will return the contents of the file (for read),
and Unit for write. Upon failure the functions will return a user
supplied data type that is used to store the 'file name' upon which
these operations were called. This is to allow the user to decide if
these operations should raise exceptions, and also how to represent
the error.
Further, default forms have been supplied that 'just' return the file
name upon failure.
iPKG files have a new option `pkgs` which takes a comma-separated list
of package names that the idris project depends on. This reduces bloat
in the `opts` option with mutliple package declarations.
So rather than have:
```
package foo
opts = "-p lightyear -p containers -p tests -p pruviloj -p effects -p x --log 4"
```
we can now sayL
```
package foo
opts = "--log 4"
pkgs = lightyear, containers, tests, pruviloj, effects, x
```
I'm collecting all the various tactics that I've defined in my various
projects that have proven to be useful and making them into an
includable library, both as an example of Elab reflection and to have a
semi-standard vocabulary.