X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2FbasicTypes%2FUniqSupply.lhs;h=a4c16fdc05180d5376cf5fa4b3564571bccf3e4c;hp=43ccbe31c9fcec2154d2d957c67ad6a5c262af14;hb=a50e111f46a16529fe5f8d481919044c8aceea05;hpb=372f6cf6bfdba0ae50940255b28455547cac3abe diff --git a/compiler/basicTypes/UniqSupply.lhs b/compiler/basicTypes/UniqSupply.lhs index 43ccbe3..a4c16fd 100644 --- a/compiler/basicTypes/UniqSupply.lhs +++ b/compiler/basicTypes/UniqSupply.lhs @@ -10,6 +10,7 @@ module UniqSupply ( -- ** Operations on supplies uniqFromSupply, uniqsFromSupply, -- basic ops + takeUniqFromSupply, mkSplitUniqSupply, splitUniqSupply, listSplitUniqSupply, @@ -70,6 +71,8 @@ uniqFromSupply :: UniqSupply -> Unique -- ^ 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 +takeUniqFromSupply :: UniqSupply -> (Unique, UniqSupply) +-- ^ Obtain the 'Unique' from this particular 'UniqSupply', and a new supply \end{code} \begin{code} @@ -98,6 +101,7 @@ listSplitUniqSupply (MkSplitUniqSupply _ s1 s2) = s1 : listSplitUniqSupply s2 \begin{code} uniqFromSupply (MkSplitUniqSupply n _ _) = mkUniqueGrimily (iBox n) uniqsFromSupply (MkSplitUniqSupply n _ s2) = mkUniqueGrimily (iBox n) : uniqsFromSupply s2 +takeUniqFromSupply (MkSplitUniqSupply n s1 _) = (mkUniqueGrimily (iBox n), s1) \end{code} %************************************************************************