- where
---
- -- inlined copy of unsafeInterleavePrimIO;
- -- this is the single-most-hammered bit of code
- -- in the compiler....
- -- Too bad it's not 1.3-portable...
- unsafe_interleave m =
-#if __GLASGOW_HASKELL__ >= 209
- unsafeInterleaveIO m
-#else
- MkST ( \ s ->
- let
- (MkST m') = m
- ST_RET(r, new_s) = m' s
- in
- ST_RET(r, s))
-#endif
-
- mk_unique = _ccall_ genSymZh `thenPrimIO` \ (WHASH u#) ->
- returnPrimIO (I# (w2i (mask# `or#` u#)))