encoding/Data/Array/Static.hs
Daniel Wagner 3f8c3bbb26 whitespace: eol marker at end of all files
Ignore-this: 3b03abece3edb25c656f84db9cef7734

darcs-hash:20121017171258-76d51-76a4e9057c0a4c3c1370485f3dc072c18caafddf
2012-10-17 10:12:58 -07:00

16 lines
403 B
Haskell

{-# LANGUAGE MagicHash #-}
module Data.Array.Static where
import Data.Static
import GHC.Exts
import Data.Ix
data StaticArray i e = StaticArray i i Addr#
bounds :: Ix i => StaticArray i e -> (i,i)
bounds (StaticArray s e _) = (s,e)
(!) :: (StaticElement e,Ix i) => StaticArray i e -> i -> e
(!) (StaticArray s e addr) i = let (I# ri) = index (s,e) i
in extract addr ri