[project @ 1996-01-11 14:06:51 by partain]
[ghc-hetmet.git] / ghc / compiler / basicTypes / SplitUniq.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface SplitUniq where
3 import Unique(Unique)
4 type SUniqSM a = SplitUniqSupply -> a
5 data SplitUniqSupply 
6 data Unique 
7 getSUnique :: SplitUniqSupply -> Unique
8 getSUniqueAndDepleted :: SplitUniqSupply -> (Unique, SplitUniqSupply)
9 getSUniques :: Int -> SplitUniqSupply -> [Unique]
10 getSUniquesAndDepleted :: Int -> SplitUniqSupply -> ([Unique], SplitUniqSupply)
11 initSUs :: SplitUniqSupply -> (SplitUniqSupply -> a) -> (SplitUniqSupply, a)
12 mapAndUnzipSUs :: (a -> SplitUniqSupply -> (b, c)) -> [a] -> SplitUniqSupply -> ([b], [c])
13 mapSUs :: (a -> SplitUniqSupply -> b) -> [a] -> SplitUniqSupply -> [b]
14 mkSplitUniqSupply :: Char -> _State _RealWorld -> (SplitUniqSupply, _State _RealWorld)
15 returnSUs :: a -> SplitUniqSupply -> a
16 splitUniqSupply :: SplitUniqSupply -> (SplitUniqSupply, SplitUniqSupply)
17 thenSUs :: (SplitUniqSupply -> a) -> (a -> SplitUniqSupply -> b) -> SplitUniqSupply -> b
18