關聯性

infixl vs infixr vs infix 描述了 parens 將被分組的哪一方。例如,考慮以下固定宣告(在 base 中)

infixl 6 -
infixr 5 :
infix  4 ==

infixl 告訴我們 - 已經離開了關聯,這意味著 1 - 2 - 3 - 4 被解析為

((1 - 2) - 3) - 4

infixr 告訴我們:具有正確的關聯性,這意味著 1 : 2 : 3 : [] 被解析為

1 : (2 : (3 : []))

infix 告訴我們 == 不能在沒有我們的情況下使用,包括括號,這意味著 True == False == True 是一個語法錯誤。另一方面,True == (False == True)(True == False) == True 很好。

沒有明確的固定宣告的運算子是 infixl 9