GHC 7.8 includes Functor instances for OptDescr and ArgDescr