Move from manual Functor/Applicative instances for Direct to derived ones.  Fixes #38