Для начала, Trim только удаляет символы с начала или конца строки . Во-вторых, вы должны оценить, действительно ли хотите удалить оскорбительные символы или быстро выйти из строя и сообщить пользователю, что их имя недействительно. Мой выбор - последний, но мой ответ должен хотя бы показать вам, как делать что-то правильно и неправильно:
GHC имеет расширение StandaloneDeriving
, с этим вы можете
{-# LANGUAGE StandaloneDeriving #-}
import MoneyModule
deriving instance Read Money
выводить экземпляры для многих классов.
Чтобы решить проблему автономного вывода, см. решение даниэлей. Но, как вы упомянули в своем вопросе, сироты не являются лучшей практикой, и ghc будет генерировать предупреждения. Чтобы подавить предупреждения сиротских сирот ghc , вы можете использовать флаг -fno-warn-orphans
. Вы также можете добавить его в свой файл cabal:
...
library
exposed-modules: ...
...
ghc-options: -fno-warn-orphans
...