diff --git a/src/Control/Monad/Unify/Class.purs b/src/Control/Monad/Unify/Class.purs index b4def73..c18452a 100644 --- a/src/Control/Monad/Unify/Class.purs +++ b/src/Control/Monad/Unify/Class.purs @@ -6,6 +6,7 @@ import Control.Applicative (pure) import Control.Bind (bind) import Control.MonadPlus (class MonadPlus, empty) import Control.Monad.State.Trans (StateT) +import Control.Monad.Reader.Trans (ReaderT) import Control.Monad.Trans.Class (lift) import Data.Traversable (class Traversable, traverse) 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 store k f = lift $ store k 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