-- This example demonstrates using of Array, IOArray and STArray import Control.Monad.ST import Data.ArrayBZ.Boxed main = do -- This section demonstrates using of Array test_Array |> print -- This section demonstrates using of IOArray test_IOArray >>= print -- This section demonstrates using of STArray runST test_STArray |> print -- Using Array test_Array = let array = listArray (1,10) [1..10] :: Array Int Double elements = elems array in (sum elements) -- Using IOArray test_IOArray = do array <- newListArray (1,10) [1..10] :: IO (IOArray Int Double) elements <- getElems array return (sum elements) -- Using STArray test_STArray = do array <- newListArray (1,10) [1..10] :: ST s (STArray s Int Double) elements <- getElems array return (sum elements) -- Helper operation a |> b = b a