`Functor` 不是 `Category` 的超类是有原因的吗?

Is there a reason that `Functor` is not a superclass of `Category`?

看来你可以简单地声明:

import qualified Control.Category as Cat
instance Cat.Category q => Functor (q r) where
     fmap = (Cat..)

有人反对吗?

该实例会与许多其他有用的实例重叠,例如无法再添加

instance Functor (State s) where ...

对于 State s monad。