Tôi muốn biến biến đổi đơn nguyên của mình thành một thể hiện của MonadError
nếu đơn vị được biến đổi là một cá thể. Về cơ bản tôi muốn biến tôi cư xử như các máy biến áp built-in làm, ví dụ có một ví dụ MonadError
cho StateT
:Tạo một biến thể đơn nguyên tùy chỉnh một thể hiện của MonadError
MonadError e m => MonadError e (StateT s m)
Tôi đã cố gắng làm điều này:
instance MonadError e m => MonadError e (MyMonadT m)
Nhưng GHC bắt đầu phàn nàn về undecidable trường hợp, rõ ràng là thư viện MTL chỉ cho phép các trường hợp không thể xác định, nhưng có cách nào để tránh điều đó không? Hoặc nó là OK trong trường hợp này và nó sẽ không gây ra bất kỳ vấn đề?