Add instance for MonadUnify for ReaderT

This commit is contained in:
Danila Fedorin 2023-03-04 18:55:54 -08:00
parent 014d9b38c8
commit 590306964c
1 changed files with 7 additions and 0 deletions

View File

@ -6,6 +6,7 @@ import Control.Applicative (pure)
import Control.Bind (bind) import Control.Bind (bind)
import Control.MonadPlus (class MonadPlus, empty) import Control.MonadPlus (class MonadPlus, empty)
import Control.Monad.State.Trans (StateT) import Control.Monad.State.Trans (StateT)
import Control.Monad.Reader.Trans (ReaderT)
import Control.Monad.Trans.Class (lift) import Control.Monad.Trans.Class (lift)
import Data.Traversable (class Traversable, traverse) import Data.Traversable (class Traversable, traverse)
import Data.Tuple (Tuple(..)) import Data.Tuple (Tuple(..))
@ -51,3 +52,9 @@ instance MonadUnify k f m => MonadUnify k f (StateT s m) where
merge m k = lift $ merge m k merge m k = lift $ merge m k
store k f = lift $ store k f store k f = lift $ store k f
reify f = lift $ reify f reify f = lift $ reify f
instance MonadUnify k f m => MonadUnify k f (ReaderT r m) where
fresh = lift fresh
merge m k = lift $ merge m k
store k f = lift $ store k f
reify f = lift $ reify f