[add IsString instance for Atom
John Meacham <john@repetae.net>**20120126123532
 Ignore-this: 8870a7c5146affb1d9851433267d87d5
] hunk ./src/StringTable/Atom.hsc 27
+import GHC.Exts
hunk ./src/StringTable/Atom.hsc 37
-
-
hunk ./src/StringTable/Atom.hsc 58
-    hash32 a = let (x,y) = fromAtom a :: CStringLen in unsafePerformIO $ hash2 0 x (fromIntegral y)
+    hash32 a = let (x,y) = fromAtom a :: CStringLen in 
+        unsafePerformIO $ hash2 0 x (fromIntegral y)
hunk ./src/StringTable/Atom.hsc 66
-    hash32 s = unsafePerformIO $ withCStringLen s $ \ (x,y) -> hash2 0 x (fromIntegral y)
+    hash32 s = unsafePerformIO $ withCStringLen s $ 
+        \ (x,y) -> hash2 0 x (fromIntegral y)
hunk ./src/StringTable/Atom.hsc 72
-
hunk ./src/StringTable/Atom.hsc 87
-
-
hunk ./src/StringTable/Atom.hsc 102
-    fromAtom a@(Atom v) = (stPtr a,fromIntegral $ (v `shiftR` (#const ATOM_LEN_SHIFT)) .&. (#const ATOM_LEN_MASK))
+    fromAtom a@(Atom v) = (stPtr a,fromIntegral $ 
+        (v `shiftR` (#const ATOM_LEN_SHIFT)) .&. (#const ATOM_LEN_MASK))
hunk ./src/StringTable/Atom.hsc 120
+instance IsString Atom where
+    fromString = toAtom
+
hunk ./src/StringTable/Atom.hsc 130
-intToAtom i = if isValidAtom i then return (Atom $ fromIntegral i) else fail $ "intToAtom: " ++ show i
+intToAtom i = if isValidAtom i then return (Atom $ fromIntegral i) else 
+    fail $ "intToAtom: " ++ show i
hunk ./src/StringTable/Atom.hsc 154
-
hunk ./src/StringTable/Atom.hsc 158
-
hunk ./src/StringTable/Atom.hsc 166
-