This is not an exhaustive list of TODO items.

* Write a bunch of tests for the exception API

* Consider removing :lexical tests in t/* and convert them to using
  autodie.  The :lexical option is no longer officially supported in
  Fatal.

* (More?) tests for user defined subs!

* Define roles properly.

* Trawl through perlfunc to find which things autodie may apply to.

* Generate a good way to allow subroutines to register themselves
  with roles and message handlers, possibly defining their own
  exception handler to use.

* Provide an autodie mixin which at least provides expected autodie
  behaviours, even if someone wants to use their own exception class.

* Provide a nicer way to override message handlers.

* Finalise the exception interface.

* Write a huge amount of documentation.

* Write a huge amount of tests.

* Write tests to make sure that nothing clobbers $@ accidently,
  especially in autodie::exception.

* Explain :lexical prior to the DIAGNOSTICS section in Fatal.pm  (or
  remove)

* Fill in Fatal version in GOTCHAS in Fatal.pm

== 5.8 ==

* Remove/fix kludge that forces || as the only test
  operator under 5.8

* Reduce the number of lexical guards we need in our array.
  We should be able to combine these, or have a single guard
  that does the right thing.

* Support 're-instating' original subs when we've used autodie
  on user subs, or when we've used 'no autodie ...' to turn
  off a sub until the end of a scope.

* Support backcompat mode.

* lex58 still produces a warning from system, even under Cygwin.
  Does this happen under Linux?  Can we get rid of it, or
  document it better?
