-- This example demonstrates using of UArray, IOUArray and STUArray import Control.Monad.ST import Data.ArrayBZ.Unboxed main = do -- This section demonstrates using of UArray test_UArray |> print -- This section demonstrates using of IOUArray test_IOUArray >>= print -- This section demonstrates using of STUArray runST test_STUArray |> print -- Using UArray test_UArray = let array = listArray (1,10) [1..10] :: UArray Int Double elements = elems array in (sum elements) -- Using IOUArray test_IOUArray = do array <- newListArray (1,10) [1..10] :: IO (IOUArray Int Double) elements <- getElems array return (sum elements) -- Using STUArray test_STUArray = do array <- newListArray (1,10) [1..10] :: ST s (STUArray s Int Double) elements <- getElems array return (sum elements) -- Helper operation a |> b = b a