Почему существует экземпляр MonadMask для ExceptT? - PullRequest
0 голосов
/ 13 мая 2018

В предыдущем вопросе я спросил

Почему нет экземпляра MonadMask для ExceptT?

и получил ряд убедительных ответов, в том числе от автора библиотекипочему не может быть законного экземпляра.

По состоянию на февраль 2018 года, исключения библиотека имеет теперь есть экземпляр MonadMask для Кроме T .

Итак, теперь я задаю прямо противоположный вопрос: почему ответы на мой предыдущий вопрос неверны?

1 Ответ

0 голосов
/ 13 мая 2018

Документация библиотеки exceptions содержит ответ в документах:

Этот метод был добавлен в версию 0.9.0 этой библиотеки. Ранее реализация таких функций, как bracket и finally в этом модуле, основывалась только на функциях mask и uninterruptibleMask, что запрещало некоторым классам преобразователей иметь экземпляры MonadMask (в частности, многопоточным трансформаторам, таким как ExceptT). Если вы являетесь автором библиотеки, теперь вам нужно предоставить реализацию для этого метода ...

(Примечание: тип generalBracket был изменен в 0.10, не используйте 0.9).

...