instance Functor ([]) where fmap :: (a -> b) -> [a] -> [b] fmap = map
fmap (+1) [1,2,3] == [2,3,4] fmap (+1) [] == [] fmap head [[1,2,3],[4,5,6]] == [1,4]