Functors
Em Haskell, um Functor representa uma Type class capaz de realizar uma transformação, e é definido por:
class Functor f where
fmap :: (a -> b) -> f a -> f b
fmap é uma função de primeira ordem e (a -> b) representa a função de transformação que será aplicada à cada elemento de f a e o resultado final será um novo Functor, representado por f b.
Leia o texto completo em: https://dev.to/marciofrayze/functors-58le