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

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