[project @ 1999-04-29 11:53:12 by simonpj]
[ghc-hetmet.git] / ghc / tests / programs / jeff-bug / IFU.hs
1 module IFU where
2
3
4 import LazyST
5 import Ix
6
7 import Trans
8 import Hawk
9 import DLX
10
11 import qualified PreludeSig as Signaled
12
13 import Word
14
15
16
17 ifu (a,b) c d = (unique',id) >< fetch (4,dlx2trans,a,b) c d
18
19 unique' ts = runST (
20   do { v <- newSTRef 1
21      ; step1(ts) { mapM (\(Trans x y z i)  -> do { v' <- readSTRef v
22                                   ; writeSTRef v (v'+1)
23                                   ; return $ Trans x y z (loc v':i)
24                                   }) ts
25                  }
26      }
27   )