fixed the definition of CoFunctor and added instances to Fun

- These instances should really go in Functor and CoFunctor
  but some of them require both.
  - Maybe there should be a single file with Functor and CoFunctor.