Skip to content
Snippets Groups Projects
Commit ff2b99e1 authored by Ömer Sinan Ağacan's avatar Ömer Sinan Ağacan Committed by Marge Bot
Browse files

Remove unused UniqSupply functions

parent b90437d8
No related merge requests found
...@@ -22,15 +22,12 @@ module UniqSupply ( ...@@ -22,15 +22,12 @@ module UniqSupply (
mkSplitUniqSupply, mkSplitUniqSupply,
splitUniqSupply, listSplitUniqSupply, splitUniqSupply, listSplitUniqSupply,
splitUniqSupply3, splitUniqSupply4,
-- * Unique supply monad and its abstraction -- * Unique supply monad and its abstraction
UniqSM, MonadUnique(..), liftUs, UniqSM, MonadUnique(..),
-- ** Operations on the monad -- ** Operations on the monad
initUs, initUs_, initUs, initUs_,
lazyThenUs, lazyMapUs,
getUniqueSupplyM3,
-- * Set supply strategy -- * Set supply strategy
initUniqSupply initUniqSupply
...@@ -114,22 +111,6 @@ uniqFromSupply (MkSplitUniqSupply n _ _) = mkUniqueGrimily n ...@@ -114,22 +111,6 @@ uniqFromSupply (MkSplitUniqSupply n _ _) = mkUniqueGrimily n
uniqsFromSupply (MkSplitUniqSupply n _ s2) = mkUniqueGrimily n : uniqsFromSupply s2 uniqsFromSupply (MkSplitUniqSupply n _ s2) = mkUniqueGrimily n : uniqsFromSupply s2
takeUniqFromSupply (MkSplitUniqSupply n s1 _) = (mkUniqueGrimily n, s1) takeUniqFromSupply (MkSplitUniqSupply n s1 _) = (mkUniqueGrimily n, s1)
-- | Build three 'UniqSupply' from a single one,
-- each of which can supply its own unique
splitUniqSupply3 :: UniqSupply -> (UniqSupply, UniqSupply, UniqSupply)
splitUniqSupply3 us = (us1, us2, us3)
where
(us1, us') = splitUniqSupply us
(us2, us3) = splitUniqSupply us'
-- | Build four 'UniqSupply' from a single one,
-- each of which can supply its own unique
splitUniqSupply4 :: UniqSupply -> (UniqSupply, UniqSupply, UniqSupply, UniqSupply)
splitUniqSupply4 us = (us1, us2, us3, us4)
where
(us1, us2, us') = splitUniqSupply3 us
(us3, us4) = splitUniqSupply us'
{- {-
************************************************************************ ************************************************************************
* * * *
...@@ -182,7 +163,6 @@ initUs_ :: UniqSupply -> UniqSM a -> a ...@@ -182,7 +163,6 @@ initUs_ :: UniqSupply -> UniqSM a -> a
initUs_ init_us m = case unUSM m init_us of { UniqResult r _ -> r } initUs_ init_us m = case unUSM m init_us of { UniqResult r _ -> r }
{-# INLINE thenUs #-} {-# INLINE thenUs #-}
{-# INLINE lazyThenUs #-}
{-# INLINE returnUs #-} {-# INLINE returnUs #-}
{-# INLINE splitUniqSupply #-} {-# INLINE splitUniqSupply #-}
...@@ -199,10 +179,6 @@ thenUs (USM expr) cont ...@@ -199,10 +179,6 @@ thenUs (USM expr) cont
= USM (\us0 -> case (expr us0) of = USM (\us0 -> case (expr us0) of
UniqResult result us1 -> unUSM (cont result) us1) UniqResult result us1 -> unUSM (cont result) us1)
lazyThenUs :: UniqSM a -> (a -> UniqSM b) -> UniqSM b
lazyThenUs expr cont
= USM (\us0 -> let (result, us1) = liftUSM expr us0 in unUSM (cont result) us1)
thenUs_ :: UniqSM a -> UniqSM b -> UniqSM b thenUs_ :: UniqSM a -> UniqSM b -> UniqSM b
thenUs_ (USM expr) (USM cont) thenUs_ (USM expr) (USM cont)
= USM (\us0 -> case (expr us0) of { UniqResult _ us1 -> cont us1 }) = USM (\us0 -> case (expr us0) of { UniqResult _ us1 -> cont us1 })
...@@ -234,12 +210,6 @@ instance MonadUnique UniqSM where ...@@ -234,12 +210,6 @@ instance MonadUnique UniqSM where
getUniqueM = getUniqueUs getUniqueM = getUniqueUs
getUniquesM = getUniquesUs getUniquesM = getUniquesUs
getUniqueSupplyM3 :: MonadUnique m => m (UniqSupply, UniqSupply, UniqSupply)
getUniqueSupplyM3 = liftM3 (,,) getUniqueSupplyM getUniqueSupplyM getUniqueSupplyM
liftUs :: MonadUnique m => UniqSM a -> m a
liftUs m = getUniqueSupplyM >>= return . flip initUs_ m
getUniqueUs :: UniqSM Unique getUniqueUs :: UniqSM Unique
getUniqueUs = USM (\us0 -> case takeUniqFromSupply us0 of getUniqueUs = USM (\us0 -> case takeUniqFromSupply us0 of
(u,us1) -> UniqResult u us1) (u,us1) -> UniqResult u us1)
...@@ -247,14 +217,3 @@ getUniqueUs = USM (\us0 -> case takeUniqFromSupply us0 of ...@@ -247,14 +217,3 @@ getUniqueUs = USM (\us0 -> case takeUniqFromSupply us0 of
getUniquesUs :: UniqSM [Unique] getUniquesUs :: UniqSM [Unique]
getUniquesUs = USM (\us0 -> case splitUniqSupply us0 of getUniquesUs = USM (\us0 -> case splitUniqSupply us0 of
(us1,us2) -> UniqResult (uniqsFromSupply us1) us2) (us1,us2) -> UniqResult (uniqsFromSupply us1) us2)
-- {-# SPECIALIZE mapM :: (a -> UniqSM b) -> [a] -> UniqSM [b] #-}
-- {-# SPECIALIZE mapAndUnzipM :: (a -> UniqSM (b,c)) -> [a] -> UniqSM ([b],[c]) #-}
-- {-# SPECIALIZE mapAndUnzip3M :: (a -> UniqSM (b,c,d)) -> [a] -> UniqSM ([b],[c],[d]) #-}
lazyMapUs :: (a -> UniqSM b) -> [a] -> UniqSM [b]
lazyMapUs _ [] = returnUs []
lazyMapUs f (x:xs)
= f x `lazyThenUs` \ r ->
lazyMapUs f xs `lazyThenUs` \ rs ->
returnUs (r:rs)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment