From ef3dabfa22a92b3983fc7f5c81614143c58972be Mon Sep 17 00:00:00 2001 From: Danila Fedorin Date: Sun, 12 Mar 2023 21:05:03 -0700 Subject: [PATCH] Add a MonadRec instance to UnifyT --- spago.dhall | 1 + src/Control/Monad/Unify/Trans.purs | 2 ++ 2 files changed, 3 insertions(+) diff --git a/spago.dhall b/spago.dhall index 0361cdb..072ed2a 100644 --- a/spago.dhall +++ b/spago.dhall @@ -19,6 +19,7 @@ to generate this file without the comments in this block. , "newtype" , "ordered-collections" , "prelude" + , "tailrec" , "transformers" , "tuples" ] diff --git a/src/Control/Monad/Unify/Trans.purs b/src/Control/Monad/Unify/Trans.purs index 55ff526..db1024d 100644 --- a/src/Control/Monad/Unify/Trans.purs +++ b/src/Control/Monad/Unify/Trans.purs @@ -4,6 +4,7 @@ import Prelude (($), (<<<), const, flip, unit) import Control.Plus (class Plus) import Control.Monad (class Monad) +import Control.Monad.Rec.Class (class MonadRec) import Control.Monad.State.Trans (StateT, runStateT) import Control.Monad.State.Class (gets, modify) import Control.Monad.Unify.Class (class MonadUnify, class Unifiable, class UnificationVariable, Stream, pop, squash, variable, variables, reify, unify) @@ -41,6 +42,7 @@ derive newtype instance (Monad m, Alt m) => Alt (UnifyT k f m) derive newtype instance (Monad m, Plus m) => Plus (UnifyT k f m) instance (Monad m, Alternative m) => Alternative (UnifyT k f m) instance (MonadPlus m) => MonadPlus (UnifyT k f m) +derive newtype instance MonadRec m => MonadRec (UnifyT k f m) instance (Unifiable k f, MonadPlus m) => MonadUnify k f (UnifyT k f m) where fresh = MkUnifyT $ do