In Haskell GHC base has definitions of a Functor instance for a type (->) r:
instance Functor ((->) r) where
fmap = (.)
Typeclassopedia explains ((->) e) is the type of functions which take a value of type e as a parameter. This makes sense, but I'm lost how (->) e is used later, compared to Maybe, Either a, even [].
I think I understand these functor definitions, which are named: Maybe, Either a, but I have a hard time understanding how a 'nameless' type (->) r is used.
Does this mean I need to suspect any other a -> in every type signature as functor? Is this a way of defining the properties of arrow -> in Haskell?
Also is this the same arrow as in type signatures or an arrow from lambda functions? I tried looking up in Haskell report, but there -> is used in own notation for documentation, so no luck there.
Thanks in advance for any hints that can help breaking the ice around (->) r.
Update: based on comments I think I should be asking where -> type constructor defined? is it a built-in?
The answer to that is -> is built in, and it is a "function arrow" or "function type constructor".