I am leaing functional programming using Haskell, and im doing some exercises and im struggling with the function association and precedence, for what i have noticed it is left associative, but it starts gathering the functions or parameters as they are available as they match, but i am not fully understanding if there is a specific order or rules when associating functions. For instance, the following expression:
map (.) . (:) even
I need to calculate the most general type. But i do not understand how is that Haskell gets the association for the given expression. Just in case, when getting the type from the ghci, the result is the following:
Prelude> :t map (.) . (:) even
map (.) . (:) even
:: Integral b => [b -> Bool] -> [(a -> b) -> a -> Bool]
Thanks,
Guzman.
