mkSplitUniqSupply,
splitUniqSupply, listSplitUniqSupply,
-- * Unique supply monad and its abstraction
UniqSM, MonadUnique(..),
mkSplitUniqSupply,
splitUniqSupply, listSplitUniqSupply,
-- * Unique supply monad and its abstraction
UniqSM, MonadUnique(..),
-import Control.Monad.Fix
-#if __GLASGOW_HASKELL__ >= 607
-import GHC.IOBase (unsafeDupableInterleaveIO)
+#if __GLASGOW_HASKELL__ >= 611
+import GHC.IO (unsafeDupableInterleaveIO)
-- ^ Obtain the 'Unique' from this particular 'UniqSupply'
uniqsFromSupply :: UniqSupply -> [Unique] -- Infinite
-- ^ Obtain an infinite list of 'Unique' that can be generated by constant splitting of the supply
-- ^ Obtain the 'Unique' from this particular 'UniqSupply'
uniqsFromSupply :: UniqSupply -> [Unique] -- Infinite
-- ^ Obtain an infinite list of 'Unique' that can be generated by constant splitting of the supply
\begin{code}
uniqFromSupply (MkSplitUniqSupply n _ _) = mkUniqueGrimily (iBox n)
uniqsFromSupply (MkSplitUniqSupply n _ s2) = mkUniqueGrimily (iBox n) : uniqsFromSupply s2
\begin{code}
uniqFromSupply (MkSplitUniqSupply n _ _) = mkUniqueGrimily (iBox n)
uniqsFromSupply (MkSplitUniqSupply n _ s2) = mkUniqueGrimily (iBox n) : uniqsFromSupply s2