Open catdarick opened 3 years ago
Тайпклассы
class (MIOCache m, MIOError m, MLog m) => MTrans m
class (MError m, MonadIO m) => MIOError m
не несут никакой смысловой нагрузки, они только для краткости.
Остальные тайпклассы просто так убрать не получится, без изменения структуры проекта. У меня весь проект построен на тайпклассах.
В папке Messenger находятся тайпклассы для работы с разными мессенджерами IAPI, IUpdate, IBot.
В папке Interface монадические тайпклассы для работы с логами MLog, изменяющимся состоянием MCache, MIOCache, для обработки ошибок MError.
Какие именно нужно убрать?
Удалил MError и MIOError. Удалил из трансформера Except. Теперь ошибки обрабатываются штатными средствами Control.Exception
Изменил синтаксис в тайпклассе IBot. Удалил тайпклассы MTrans, MIOCache, MLog, IAPI. Переделал обработку ошибок в чистом коде через Either.
В проекте большое количество тайпклассов, а полезносность многих из них вызывает сомнения. Читаемость кода из-за этого очень сильно падает, чтобы понять как работает функция с констрейнтом
MTrans
- придётся сначала разобраться со всеми абстракциями и инстансами.