From: Michael D. Adams Date: Fri, 18 May 2007 20:09:42 +0000 (+0000) Subject: Added listSplitUniqSupply to ./compiler/basicTypes/UniqSupply.lhs X-Git-Tag: Before_type_family_merge~647 X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=3a42f21026077b8b497852ff53288818a28883d2 Added listSplitUniqSupply to ./compiler/basicTypes/UniqSupply.lhs The function listSplitUniqSupply :: UniqSupply -> [UniqSupply] splits a UniqSupply into an infinite list of supplies. It is a generalization of splitUniqSupply. --- diff --git a/compiler/basicTypes/UniqSupply.lhs b/compiler/basicTypes/UniqSupply.lhs index 424dbe2..8dcf595 100644 --- a/compiler/basicTypes/UniqSupply.lhs +++ b/compiler/basicTypes/UniqSupply.lhs @@ -18,7 +18,7 @@ module UniqSupply ( lazyThenUs, lazyMapUs, mkSplitUniqSupply, - splitUniqSupply + splitUniqSupply, listSplitUniqSupply ) where #include "HsVersions.h" @@ -56,6 +56,7 @@ data UniqSupply mkSplitUniqSupply :: Char -> IO UniqSupply splitUniqSupply :: UniqSupply -> (UniqSupply, UniqSupply) +listSplitUniqSupply :: UniqSupply -> [UniqSupply] -- Infinite uniqFromSupply :: UniqSupply -> Unique uniqsFromSupply :: UniqSupply -> [Unique] -- Infinite \end{code} @@ -80,6 +81,7 @@ mkSplitUniqSupply (C# c#) foreign import ccall unsafe "genSymZh" genSymZh :: IO Int splitUniqSupply (MkSplitUniqSupply _ s1 s2) = (s1, s2) +listSplitUniqSupply (MkSplitUniqSupply _ s1 s2) = s1 : listSplitUniqSupply s2 \end{code} \begin{code}