This is not an exhaustive list of TODO items.

* Write a bunch of tests for the exception API

* Remove :lexical tests in t/* and convert them to using
  autodie.  The :lexical option is no longer officially supported in
  Fatal.  These tests may be allowable in an t/internal.t file.

* (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.

* Figure out how we deal with core modules being called before site_perl.

* Test the many varied forms of sysopen.

* Add fork() to the list of things that are defined-or-die

* Test fcntl.

== 5.8 / The One True Autodie ==

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

	* We do this now!  Or we should.  More tests are needed.

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