[move Id selection code to a common place in Name.Id
John Meacham <john@repetae.net>**20080220054522] hunk ./Name/Id.hs 23
+    emptyId,
hunk ./Name/Id.hs 25
+    newId,
hunk ./Name/Id.hs 36
+import System.Random
+import Data.Bits
hunk ./Name/Id.hs 176
+
hunk ./Name/Id.hs 178
+
hunk ./Name/Id.hs 181
+emptyId :: Id
+emptyId = 0
+
hunk ./Name/Id.hs 192
+
+newId :: Int           -- ^ a seed value, useful for speeding up finding a unique id
+      -> (Id -> Bool)  -- ^ whether an Id is acceptable
+      -> Id            -- ^ your new Id
+newId seed check = head $ filter check ls where
+    ls = map mask $ randoms (mkStdGen seed)
+    mask x = x .&. 0x0FFFFFFE
+
+
+