What exactly does “deriving Functor” do?
To use deriving Functor you must enable the DeriveFunctor language pragma and apply it to a polymorphic type which has a covariant final type variable—in other words, a type which admits a valid Functor instance. It’ll then derive the “obvious” Functor instance. There’s been some concern in the past that the derived instance is not … Read more