+ {-# INLINE newArray #-}
+ newArray (l,u) init = ST $ \s1# ->
+ case rangeSize (l,u) of { I# n# ->
+ case newByteArray# (bOOL_SCALE n#) s1# of { (# s2#, marr# #) ->
+ case bOOL_WORD_SCALE n# of { n'# ->
+ let loop i# s3# | i# ==# n'# = s3#
+ | otherwise =
+ case writeWordArray# marr# i# e# s3# of { s4# ->
+ loop (i# +# 1#) s4# } in
+ case loop 0# s2# of { s3# ->
+ (# s3#, STUArray l u marr# #) }}}}
+ where
+ W# e# = if init then maxBound else 0