関数適用は最優先
下記のコンパイルエラーには嵌りました。
*Main> let foo xs = last .init sx <interactive>:326:25: Not in scope: `sx' Perhaps you meant `xs' (line 326) *Main>
これは、
last . (init sx)
と解釈されているからでしょう。
関数合成してる部分を括弧に囲むとエラーになりません。
*Main> let foo xs = (last .init) xs
ポイントフリースタイルで書けば嵌ることはなかったかも。
*Main> let foo = last .init