úÎop     wupdateAll mutates every element in an array while avoiding all bounds checks. Think of it as a mutable version of map. 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.updateAll arr (+ 10)! -- Updates all elements to 10Update function  The array 5The same as updateAll but taking a monadic function. O(size of arr) ;The same as updateAll, but also providing the index to the  mapping function. O(size of arr) 4The same updateAllIx 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 <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 >updateSlice 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.updateSlice 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          array-utils-0.3Data.Array.Util updateAll updateAllM updateAllIx updateAllIxM updateWithin updateWithinMupdateWithinIxupdateWithinIxMupdateOn updateOnM updateOnIx updateOnIxM updateSlice updateSliceMbaseGHC.IO.ExceptionIndexOutOfBoundsupdateupdateIxupdateM updateIxM