Я определил пользовательский оператор равенства (определение не очень важно, поэтому я вложу фиктивные вещи):
let ( ~=~ ) a b = true
Если я попытаюсь использовать его infix:
if a ~=~ b then 1 else 2
Я получаю следующую ошибку: This expression is not a function; it cannot be applied
.
Я могу исправить это либо путем переименования оператора из ~=~
в =~
, либо путем вызова его как функции: if (~=~) a b then 1 else 2
.
Похоже, что это общая проблема с операторами, начинающимися с ~
.
Мой вопрос в том, почему я не могу использовать такие операторы infix? Что-нибудь особенное в символе ~
?
Примечание. Я уже просмотрел документацию, но я не смог найти ничего подходящего. Может, я что-то пропустил?