
Hi, I'm playing a little bit with pointfree and function composition and I would like to ask you if the following is theoretical correct and how can I express it in haskell. Imagine that I have the following functions f :: a -> b -> c -> d g :: d -> e I want to compose these two functions such that: (g . f) :: a -> b -> c -> e in which a, b and c are arguments of the composition. Is this theoretically correct? I tried this in haskell and ghc gives me an error saying that the function g should be of type b -> c -> d. With this I assume that when I specify f :: a -> b -> c -> d I'm really specifying f :: a -> (b -> c -> d) and such the composition doesn't work, but is it possible to overcome this? Kind regards, Tiago