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)

== 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.

* 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?

* Fix leaking of autodie into other files when they are used from
  within an autodying scope.

* Consider what happens when import is called at run-time!
  (Both in 5.10 and 5.8, but especially 5.8)
