Подтвердить что ты не робот

Можно ли "скрыть" языковые расширения?

Я написал модуль и для запуска основного кода, где импортируется модуль, необходимо иметь расширение языка {-# LANGUAGE OverloadedStrings #-} или опция должна быть задана, когда вещи, конечно, компилируются.

Если я включаю {-# LANGUAGE OverloadedStrings #-} в модуль, это не лекарство, и пользователю все равно придется делать то же самое в своем коде или при компиляции.

Есть ли способ, который я могу сделать "что-то" в реальном модуле, чтобы снять эту проблему с конечного пользователя и, следовательно, "скрыть" требуемое расширение языка?

4b9b3361

Ответ 1

Нет, ваша библиотека предоставляет функции, требующие использования языковых расширений. Это то, что вы должны указать в своей документации и примерах. Невозможно включить его в код пользователя.

Ответ 2

Обратите внимание, что -XOverloadedStrings никогда не требуется. Все это расширение делает, свободно говоря, перевод "I'm a string" в fromString "I'm a string". Без расширений пользователи всегда могут делать то же самое.