Lógicos: && (conjunção), | | (disjunção), not (negação)
Numéricos: +, -, *, / (divisão de reais), ^ (exponenciação com inteiros), div (divisão inteira), mod (resto da divisão inteira), ** (exponenciações com reais), log, sin, cos, tan, …
Relacionais: == (igualdade), /= (desigualdade), <, <=, >, >=
Condicional: if ... then ... else ...
: : Bool : : a
Não são mais do que funções, por exemplo : + , * , && , ....
Um operador infixo pode ser usado como uma função vulgar usando a notação prefixa se estiver entre parêntesis :
> 3 + 2
5
> (+) 3 2
5
Funções com somente 2 argumentos e podem ser usadas como um operador infixo, colocando o seu nome entre :
> div 10 3
3
> 10 `div` 3
3
Podemos definir novos operadores infixos, por exemplo :
(+>) :: Float -> Float -> Float
x +< y = x^2 + y
E podemos indicar a prioridade e a associatividade através de declarações :
<aside> ➡️ infixl num op —> associativa à esquerda, num = prioridade, op = nome do operador infixr num op —> associativa à direita, num = prioridade, op = nome do operador infix num op —> não é associativa, num = prioridade, op = nome do operador
</aside>