Прежде всего, я немного удивлен, что это:
consts "(∧)" :: "'a ⇒ 'a ⇒ 'a"
работает вообще.Это звучит как ошибка, потому что нотация (...)
зарезервирована для системы.(Честно говоря, это печатает предупреждение, и если вы точно не знаете, что делаете, неразумно их игнорировать.)
Но, возвращаясь к вашей настоящей проблеме, я не думаю, что выследует использовать adhoc_overloading
для перегрузки синтаксиса, который в противном случае был бы предоставлен Main
.
Существуют альтернативы.Например, вы можете использовать жирную версию.Это используется в этой теории .
Или вы можете использовать другой символ, например &&
.
В качестве добавления: я считаю, что между принуждениями могут быть странные взаимодействияи временная перегрузка.Оба инструмента хороши сами по себе, но будьте осторожны, если они взаимодействуют друг с другом.