关联性

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