Thanks for the feedback. I was considering leaving that section out of the documentation, because it doesn't scale up very well, but I ended up leaving it in for completeness.
The subs in the "implementation" section don't really need to be anonymous - they could be also be refs to named subs defined elsewhere.
The interface => [...] is needed because the whole point of this module is to encourage programming in terms of interfaces, and interfaces should be independent of a particular implementation.
This is also the reason for having separate packages (but also having the just the interface and POD in one file, it's easier to get an overview compared to having to swim through a sea of code).