I am a beginner to Haskell. I know that the function fmap takes two arguments ((a->b) -> f a ->) and returns a functor (f b), but I cannot understand the following lambda expression
*Main> :t \g x -> fmap ($) g x
\g x -> fmap ($) g x :: (t -> a -> b) -> t -> a -> b
where is the functor?
Btw, I have tried several similar expression with different brackets, which give different results:
*Main> :t \g x -> fmap ($) (g x)
\g x -> fmap ($) (g x) :: Functor f => (t -> f (a -> b)) -> t -> f (a -> b)
*Main> :t \g x -> fmap $ g x
\g x -> fmap $ g x :: Functor f => (t -> a -> b) -> t -> f a -> f b
I don't understand this.