From categorical point of view, functor is pair of two maps (one between objects and another between arrows of categories), following some axioms.
I have assumed, wh
If you have
instance Functor F where fmap = ...
Then the type constructor F is the action on objects (which are types) taking a type T to the type F T, and fmap is the action on morphisms (which are functions) taking a function f :: T -> U to fmap f :: F T -> F U.
F
T
F T
fmap
f :: T -> U
fmap f :: F T -> F U