This adds a _base transcript which will be run as a prelude before the
other transcripts (not sure how yet). The goal is to cut down on the
boilerplate which has been creeping into the tests.
We also rename a few more of the builtin IO functions which return
Either Failure a
closes: 1796
This adds two new abilities into IOSource.hs
ability Throw e where
throw: e -> x
ability Exception where
raise Failure -> x
All of the builtin functions which return an `Either Failure a` have
been renamed from `foo` to `foo.impl`, and for each of these functions
we implement a new function named `foo` in `IOSource.hs` which wraps
the `.impl` and `raises` a Failure using tyhe above `Exception`
ability.
Since we already have a Exception in `.base`, which should likely
coordinate this PR with one to the base repo which removes `Exception`
and `Either.toExcetpion`