From 5cb19c0df3f838965c1100731f9118f28f50796f Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Fri, 24 Jul 2020 18:34:28 +0200 Subject: Working basic type checker using Algorithm W --- utils/CC/IdSupply.hs | 29 ----------------------------- 1 file changed, 29 deletions(-) delete mode 100644 utils/CC/IdSupply.hs (limited to 'utils') diff --git a/utils/CC/IdSupply.hs b/utils/CC/IdSupply.hs deleted file mode 100644 index 234f6cc..0000000 --- a/utils/CC/IdSupply.hs +++ /dev/null @@ -1,29 +0,0 @@ -module CC.IdSupply(IdSupply, runIdSupply, genId) where - -import Control.Monad.Trans - - -data IdSupply a = IdSupply (Int -> (Int, a)) - -instance Functor IdSupply where - fmap f (IdSupply act) = IdSupply (fmap f . act) - -instance Applicative IdSupply where - pure x = IdSupply (\idval -> (idval, x)) - IdSupply f <*> IdSupply x = - IdSupply (\idval -> let (idval', f') = f idval - in f' <$> x idval') - -instance Monad IdSupply where - IdSupply x >>= f = - IdSupply (\idval -> let (idval', x') = x idval - IdSupply res = f x' - in res idval') - -instance MonadTrans - -runIdSupply :: Int -> IdSupply a -> a -runIdSupply startid (IdSupply f) = snd (f startid) - -genId :: IdSupply Int -genId = IdSupply (\idval -> (idval + 1, idval)) -- cgit v1.2.3-70-g09d2