[add initial version of jhc-prim
John Meacham <john@repetae.net>**20100806000900
 Ignore-this: 44a9f14db168b28d731fd750bba0fee9
] adddir ./lib/jhc-prim
adddir ./lib/jhc-prim/Jhc
adddir ./lib/jhc-prim/Jhc/Prim
addfile ./lib/jhc-prim/Jhc/Prim.hs
addfile ./lib/jhc-prim/Jhc/Prim/Bits.hs
addfile ./lib/jhc-prim/Jhc/Prim/IO.hs
addfile ./lib/jhc-prim/Jhc/Prim/Words.hs
addfile ./lib/jhc-prim/jhc-prim.cabal
hunk ./Makefile.am 57
-
+#             jhc-prim-0.7.0.hl 
hunk ./Makefile.am 219
+jhc-prim-0.7.0.hl: lib/jhc-prim/jhc-prim.cabal
+	./jhc $(LIB_OPTIONS) -N -ilib/jhc-prim --build-hl $< -o $@
hunk ./Makefile.am 223
-
hunk ./Makefile.am 225
-
hunk ./Makefile.am 227
-
hunk ./Makefile.am 229
-
hunk ./lib/jhc-prim/Jhc/Prim/Bits.hs 1
+module Jhc.Prim.Bits where
+
+-- this declares the built in unboxed types.
+-- no code is brought in by this module, it just
+-- brings the names into scope, so it is okay to
+-- have platform specific definitions here.
+
+
+data Bits1_ :: #
+
+data Bits8_   :: #
+data Bits16_  :: #
+data Bits32_  :: #
+data Bits64_  :: #
+data Bits128_ :: #
+data BitsPtr_ :: #
+data BitsMax_ :: #
+
+data Float16_  :: #
+data Float32_  :: #
+data Float64_  :: #
+data Float80_  :: #
+data Float128_ :: #
+data FloatMax_ :: #
+
+data BitsShort_ :: #
+data BitsInt_   :: #
+data BitsLong_  :: #
+data BitsLLong_ :: #
+
+data BitsSize_  :: #
+data BitsWchar_ :: #
+
+data Complex_ :: # -> #
+
+-- these newtypes exist to modify the 
+-- calling convention and provide hints as
+-- to the use of the types.
+newtype Addr_ = Addr_ BitsPtr_
+newtype FunAddr_ = FunAddr_ BitsPtr_
+newtype Char_ = Char_ Bits32_
+
hunk ./lib/jhc-prim/Jhc/Prim/IO.hs 1
+module Jhc.Prim.IO where
+
+data State_ s :: #
+data RealWorld
+
+type STRep s a = State_ s -> (# State_ s, a #)
+type World__ = State_ RealWorld
+type UIO = STRep RealWorld
+type UIO_ = World__ -> World__
+
+
+newtype IO a = IO (STRep RealWorld a)
+newtype ST s a = ST (STRep s a)
+
+-- | no the implicit unsafeCoerce__ here!
+foreign import primitive catch__ :: UIO a -> (e -> UIO a) -> UIO a
+foreign import primitive raiseIO__ :: e -> UIO_
hunk ./lib/jhc-prim/Jhc/Prim/Words.hs 1
+module Jhc.Prim.Words where
+
+import Jhc.Prim.Bits
+
+-- define the lifted form of the basic
+-- numeric types.
+
+data Word = Word Bits32_
+data Word8 = Word8 Bits8_
+data Word16 = Word16 Bits16_
+data Word32 = Word32 Bits32_
+data Word64 = Word64 Bits64_
+data Word128 = Word128 Bits128_
+data WordPtr = WordPtr BitsPtr_
+data WordMax = WordMax BitsMax_
+
+data Int = Int Bits32_
+data Int8 = Int8 Bits8_
+data Int16 = Int16 Bits16_
+data Int32 = Int32 Bits32_
+data Int64 = Int64 Bits64_
+data Int128 = Int128 Bits128_
+data IntPtr = IntPtr BitsPtr_
+data IntMax = IntMax BitsMax_
hunk ./lib/jhc-prim/Jhc/Prim.hs 1
+module Jhc.Prim where
+
hunk ./lib/jhc-prim/jhc-prim.cabal 1
+Name: jhc-prim
+Version: 1.0
+
+Exposed-Modules:
+        Jhc.Prim.Bits
+        Jhc.Prim.Words
+        Jhc.Prim.IO
+        Jhc.Prim
+