I have the feeling that, for any ADT, there is only ever one possible Functor instance.
Because the function (a -> b) for fmap only ever has one type to work with, and it always change all appearances of a, as it transforms F a to F b.
Is this statement true?