Early draft

I'm not suggesting that we merge any of this but a PR makes it easier to discuss.
Why does the Exception go to 0? Wouldn't Option[Nil] be neater?