Ответ 1
Нет, ваша библиотека предоставляет функции, требующие использования языковых расширений. Это то, что вы должны указать в своей документации и примерах. Невозможно включить его в код пользователя.
Я написал модуль и для запуска основного кода, где импортируется модуль, необходимо иметь расширение языка {-# LANGUAGE OverloadedStrings #-}
или опция должна быть задана, когда вещи, конечно, компилируются.
Если я включаю {-# LANGUAGE OverloadedStrings #-}
в модуль, это не лекарство, и пользователю все равно придется делать то же самое в своем коде или при компиляции.
Есть ли способ, который я могу сделать "что-то" в реальном модуле, чтобы снять эту проблему с конечного пользователя и, следовательно, "скрыть" требуемое расширение языка?
Нет, ваша библиотека предоставляет функции, требующие использования языковых расширений. Это то, что вы должны указать в своей документации и примерах. Невозможно включить его в код пользователя.
Обратите внимание, что -XOverloadedStrings
никогда не требуется. Все это расширение делает, свободно говоря, перевод "I'm a string"
в fromString "I'm a string"
. Без расширений пользователи всегда могут делать то же самое.