[project @ 1998-02-02 17:27:26 by simonm]
[ghc-hetmet.git] / ghc / lib / exts / ByteArray.lhs
diff --git a/ghc/lib/exts/ByteArray.lhs b/ghc/lib/exts/ByteArray.lhs
new file mode 100644 (file)
index 0000000..d74c728
--- /dev/null
@@ -0,0 +1,40 @@
+%
+% (c) The AQUA Project, Glasgow University, 1994-1997
+%
+\section[ByteArray]{The @ByteArray@ interface}
+
+Immutable, read-only chunks of bytes, the @ByteArray@ collects
+together the definitions in @ArrBase@ and exports them as one.
+
+\begin{code}
+module ByteArray
+       (
+        ByteArray(..),  -- not abstract, for now.
+        Ix,
+
+        --Indexing of ordinary @Arrays@ is standard Haskell and isn't defined here.
+        indexCharArray,     --:: Ix ix => ByteArray ix -> ix -> Char 
+        indexIntArray,      --:: Ix ix => ByteArray ix -> ix -> Int
+        indexAddrArray,     --:: Ix ix => ByteArray ix -> ix -> Addr
+        indexFloatArray,    --:: Ix ix => ByteArray ix -> ix -> Float
+        indexDoubleArray,   --:: Ix ix => ByteArray ix -> ix -> Double
+        
+        --Indexing off @Addrs@ is similar, and therefore given here.
+        indexCharOffAddr,   --:: Addr -> Int -> Char
+        indexIntOffAddr,    --:: Addr -> Int -> Int
+        indexAddrOffAddr,   --:: Addr -> Int -> Addr
+        indexFloatOffAddr,  --:: Addr -> Int -> Float
+        indexDoubleOffAddr, --:: Addr -> Int -> Double
+
+        Addr,
+       Word
+
+       ) where
+
+import PrelArr
+import Ix
+import Foreign (Word)
+import Addr
+
+\end{code}
+