Why is `pure` only required for Applicative and not already for Functor? [duplicate]
This question already has an answer here: Why Functor class has no return function? 4 answers Reading this Wikibook about Haskell and Category Theory basics , I learn about Functors: A functor is essentially a transformation between categories, so given categories C and D, a functor F : C -> D maps any object A in C to F(A), in D. maps morphisms f : A -> B in C to F(f) : F(A) -> F(B) in D. ... which sounds all nice. Later an example is provided: Let's have a sample instance, too: instance Functor Maybe where fmap f (Just x) = Just (f x) fmap _ Nothing = Nothing Here's the key part: the type