úÎ+å*æ     PupdateElems mutates every element in an array while avoiding all bounds checks. O(size of arr) 0arr <- newArray (1,10) 0 :: IO (IOArray Int Int)> -- Produces a 1 based array with 10 elements all set to 0.updateElems arr (+ 10)! -- Updates all elements to 10Update function  The array 7The same as updateElems but taking a monadic function. O(size of arr) =The same as updateElems, but also providing the index to the  mapping function. O(size of arr) 6The same updateElemsIx but taking a monadic function. O(size of arr) Takes an update function f and a tuple of indicies '(start, finish)', 5and applies the function to all elements returned by 'range (start, finish)'. XIf this is a 2D array, then the area updated will be the box bounded by these elements, 3and the rectangular prism area for a 3D array etc.  Throws an 8 exception if either of the indicies are out of bounds. Update function %The bounds within which to apply f.  The array  The same as  but taking a monadic function.  Throws an 8 exception if either of the indicies are out of bounds. Takes an update function f and a tuple of indicies '(start, finish)' O , and applies the function to all elements returned by range (start, finish).  Throws an 8 exception if either of the indicies are out of bounds.  The same as  but taking a monadic function.  Throws an 8 exception if either of the indicies are out of bounds. <Takes a mapping function, and a list of indicies to mutate.  Throws an & exception if any of the indicies are >out of bounds. In this case the array will be left unmutated.  O(length xs) Update function A list of indicies to update  The array <Takes a mapping function, and a list of indicies to mutate.  Throws an & exception if any of the indicies are ? out of bounds. In this case the array will be left unmutated.   O(length xs) FTakes a mapping function which takes an index, and a list of indicies  to mutate. Throws  exception as  updateElems' does.   O(length xs) FTakes a mapping function which takes an index, and a list of indicies  to mutate.  O(length xs) Throws  exception as  updateElems' does. CupdateElemsSlice mutates every element in an array between a start index and an end index. O(size of arr) 0arr <- newArray (1,10) 0 :: IO (IOArray Int Int)> -- Produces a 1 based array with 10 elements all set to 0.!updateElemsSlice arr (2,4) (+ 10)3 -- Updates elements at indexes 2, 3 and 4 to 10Update function *The start and end of the region to update  The array 7The same as updateElems but taking a monadic function. O(size of arr)          array-utils-0.1Data.Array.Util updateElems updateElemsM updateElemsIxupdateElemsIxMupdateElemsWithinupdateElemsWithinMupdateElemsWithinIxupdateElemsWithinIxM updateElemsOnupdateElemsOnMupdateElemsIxOnupdateElemsIxOnMupdateElemsSliceupdateElemsSliceMbaseGHC.IO.ExceptionIndexOutOfBoundsupdateupdateIxupdateM updateIxM