2 Assoc(..), Array(..), _ByteArray(..)
8 import PS ( _PackedString, _unpackPS )
11 data Assoc a b = a := b deriving ()
13 -- Report: we do not do this:
14 -- data {-(Ix a) =>-} Array a b = MkArray (a,a) (a -> b) deriving ()
15 -- context omitted to match builtin version
17 -- Our version of a Haskell array:
18 data Array ix elt = _Array (ix, ix) (Array# elt)
20 -- And the companion "byte array" type:
21 data _ByteArray ix = _ByteArray (ix,ix) ByteArray#
23 instance _CCallable (_ByteArray ix)
25 {- ToDo: Unboxed arrays:
27 {- SPECIALIZE data a{Int#} b :: Assoc a b #-}
28 {- SPECIALIZE data a{Int#} b :: Array a b #-}