I am a rookie just start learning Haskell so please bear with me if I am asking stupid questions.
Recently I come across questions in SO demonstrating how to deriving type and implementation of functions & expression (questions such as
How can I understand "(.) . (.)"?
&
Haskell function composition, type of (.)(.) and how it's presented )
I find the answers very inspiring
I, then, try to come up some exercises for myself to make sure I know how to apply those techniques.
Then I come up with this expression myself: (<*>)(<*>)
which I don't know how to solve.
In GHCi, it gives the type signature as:
(<*>)(<*>) :: Applicative f => (f (a -> b) -> f a) -> f (a -> b) -> f b
but my problem is how could I start from
(<*>) :: Applicative f => f (a -> b) -> f a -> f b
and derive the type signature as given by GHCi?
Furthermore, based on the type signature, how the implementation of (<*>)(<*>) = ??
would be?
I am stuck and cannot resolve this by techniques such as re-arranging terms, etc. I don't even have a clue on where to start with.
Would somebody give me a help?
Thanks a lot
note** : the expression (<*>)(<*>)
really does not bear special meanings, it's just an exercise I come up for myself randomly