[fix storable instances for numeric types
John Meacham <john@repetae.net>**20120124105751
 Ignore-this: 1510992502a9761b7ae517972aea7b41
] hunk ./lib/jhc/Foreign/Storable.hs 31
-INST_STORABLE((Ptr a),Ptr,Addr_,bits<ptr>)
-INST_STORABLE((FunPtr a),FunPtr,FunAddr_,bits<ptr>)
+INST_STORABLE_X((Ptr a),Ptr,Addr_,bits<ptr>)
+INST_STORABLE_X((FunPtr a),FunPtr,FunAddr_,bits<ptr>)
hunk ./lib/jhc/Foreign/Storable.m4 3
-
-m4_define(INST_STORABLE,{{
-
+m4_define(INST_STORABLE_X,{{
hunk ./lib/jhc/Foreign/Storable.m4 5
-    peek (Ptr addr) = IO $ \w -> case peek$3 addr w of
+    peek (Ptr addr) = IO $ \w -> case peek$2 addr w of
hunk ./lib/jhc/Foreign/Storable.m4 7
-    poke (Ptr addr) ($2 v) = IO $ \w -> case poke$3 addr v w of
-        w' -> (# w', () #)
-    sizeOf _ = (sizeOf$3 0#)
-    alignment _ = (alignmentOf$3 0#)
-
-ONCE({{
-foreign import primitive "peek.$4" peek$3 :: Addr__ -> UIO $3
-foreign import primitive "poke.$4" poke$3 :: Addr__ -> $3 -> UIO_
-foreign import primitive "sizeOf.$4" sizeOf$3 :: $3 -> Int
-foreign import primitive "alignmentOf.$4" alignmentOf$3 :: $3 -> Int
-}})
-
-}})
-
-
-m4_define(INST_STORABLE_XXX,{{
-
-instance Storable $1 where
-    peek (Ptr addr) = IO $ \w -> case peek$1 addr w of
-        (# w', r #) -> (# w', box$1 r #)
-    poke (Ptr addr) v = IO $ \w -> case poke$1 addr (unbox$1 v) w of
+    poke (Ptr addr) ($2 v) = IO $ \w -> case poke$2 addr v w of
hunk ./lib/jhc/Foreign/Storable.m4 9
-    sizeOf _ = (sizeOf$1 0#)
-    alignment _ = (alignmentOf$1 0#)
-
+    sizeOf _ = Int (sizeOf$2 0#)
+    alignment _ = Int (alignmentOf$2 0#)
hunk ./lib/jhc/Foreign/Storable.m4 12
-foreign import primitive "peek.$3" peek$1 :: Addr__ -> UIO $2
-foreign import primitive "poke.$3" poke$1 :: Addr__ -> $2 -> UIO_
-foreign import primitive "sizeOf.$3" sizeOf$1 :: $2 -> Int
-foreign import primitive "alignmentOf.$3" alignmentOf$1 :: $2 -> Int
+foreign import primitive "peek.$4" peek$2 :: Addr__ -> UIO $3
+foreign import primitive "poke.$4" poke$2 :: Addr__ -> $3 -> UIO_
+foreign import primitive "sizeOf.$4" sizeOf$2 :: Int__ -> Int__
+foreign import primitive "alignmentOf.$4" alignmentOf$2 :: Int__ -> Int__
hunk ./lib/jhc/Foreign/Storable.m4 17
-
-ONCE({{
-foreign import primitive "box" box$1 :: $2 -> $1
-foreign import primitive "unbox" unbox$1 :: $1 -> $2
hunk ./lib/jhc/Foreign/Storable.m4 19
-}})
+m4_define(INST_STORABLE,{{INST_STORABLE_X($1,$1,$2,$3)}})
hunk ./lib/jhc/Jhc/Inst/Storable.hs 6
-import Foreign.C.Types
+import Jhc.Type.Word
+import Jhc.Type.C
hunk ./lib/jhc/Jhc/Inst/Storable.hs 19
-INST_STORABLE(Float,Float,Float32_,fbits32)
-INST_STORABLE(Double,Double,Float64_,fbits64)
+INST_STORABLE(Float,Float32_,fbits32)
+INST_STORABLE(Double,Float64_,fbits64)
hunk ./lib/jhc/Jhc/Inst/Storable.hs 22
-INST_STORABLE_XXX(Int,Bits32_,bits32)
-INST_STORABLE_XXX(Word,Bits32_,bits32)
+INST_STORABLE(Int,Bits32_,bits32)
+INST_STORABLE(Word,Bits32_,bits32)
hunk ./lib/jhc/Jhc/Inst/Storable.hs 25
-INST_STORABLE_XXX(Int8,Bits8_,bits8)
-INST_STORABLE_XXX(Word8,Bits8_,bits8)
+INST_STORABLE(Int8,Bits8_,bits8)
+INST_STORABLE(Word8,Bits8_,bits8)
+INST_STORABLE(Int16,Bits16_,bits16)
+INST_STORABLE(Word16,Bits16_,bits16)
+INST_STORABLE(Int32,Bits32_,bits32)
+INST_STORABLE(Word32,Bits32_,bits32)
+INST_STORABLE(Int64,Bits64_,bits64)
+INST_STORABLE(Word64,Bits64_,bits64)
hunk ./lib/jhc/Jhc/Inst/Storable.hs 34
-INST_STORABLE_XXX(Int16,Bits16_,bits16)
-INST_STORABLE_XXX(Word16,Bits16_,bits16)
+INST_STORABLE(IntMax,BitsMax_,bits<max>)
+INST_STORABLE(WordMax,BitsMax_,bits<max>)
+INST_STORABLE(IntPtr,BitsPtr_,bits<ptr>)
+INST_STORABLE(WordPtr,BitsPtr_,bits<ptr>)
hunk ./lib/jhc/Jhc/Inst/Storable.hs 39
-INST_STORABLE_XXX(Int32,Bits32_,bits32)
-INST_STORABLE_XXX(Word32,Bits32_,bits32)
-INST_STORABLE_XXX(Int64,Bits64_,bits64)
-INST_STORABLE_XXX(Word64,Bits64_,bits64)
-
-INST_STORABLE_XXX(IntMax,BitsMax_,bits<max>)
-INST_STORABLE_XXX(WordMax,BitsMax_,bits<max>)
-INST_STORABLE_XXX(IntPtr,BitsPtr_,bits<ptr>)
-INST_STORABLE_XXX(WordPtr,BitsPtr_,bits<ptr>)
-
-INST_STORABLE_XXX(CChar,Bits8_,bits8)
-INST_STORABLE_XXX(CSChar,Bits8_,bits8)
-INST_STORABLE_XXX(CUChar,Bits8_,bits8)
-INST_STORABLE_XXX(CInt,Bits32_,bits<int>)
-INST_STORABLE_XXX(CUInt,Bits32_,bits<int>)
-INST_STORABLE_XXX(CWchar,Bits32_,bits<wchar_t>)
-INST_STORABLE_XXX(CSize,BitsPtr_,bits<size_t>)
+INST_STORABLE(CChar,Int8,bits8)
+INST_STORABLE(CSChar,Int8,bits8)
+INST_STORABLE(CUChar,Word8,bits8)
+INST_STORABLE(CInt,Int,bits<int>)
+INST_STORABLE(CUInt,Word,bits<int>)
+INST_STORABLE(CWchar,Word32,bits<wchar_t>)
+INST_STORABLE(CSize,WordPtr,bits<size_t>)
hunk ./src/Grin/FromE.hs 459
+            PrimTypeInfo {} -> return $ Prim ap xs' ty'