Черта "Нет экземпляра для", которая уже реализована
Я хотел бы использовать Слуги ClientM
монада с finally
:: MonadBaseControl IO m => m a -> m b -> m a
, но столкнулся с ошибкой No instance for (MonadBaseControl IO ClientM)
,
Как ни странно, этот точный экземпляр уже определен, будь то из внутреннего модуля.
Нужно ли как-то явно импортировать такие экземпляры?
1 ответ
Решение
Это работает нормально, если, как сказал Дэниел, вы импортируете модуль, который определяет желаемый экземпляр:
Prelude> import Control.Exception.Lifted
Prelude Control.Exception.Lifted> import Servant.Client
Prelude Control.Exception.Lifted Servant.Client> :set -XTypeApplications
Prelude Control.Exception.Lifted Servant.Client> :type finally @ ClientM
finally @ ClientM :: ClientM a -> ClientM b -> ClientM a