-- | -- Module : Data.Unicode.Properties.BitArray -- Copyright : (c) 2017 Harendra Kumar -- -- License : BSD-style -- Maintainer : harendra.kumar@gmail.com -- Stability : experimental -- module Data.Unicode.Properties.BitArray (bitArraySetBits) where import Control.Monad import Control.Monad.ST import Data.BitArray.ST import Data.BitArray (BitArray) -- | Initialize a bitarray with default bits as False and bits supplied in the -- list argument set as True. -- bitArraySetBits :: (Int,Int) -> [Int] -> BitArray bitArraySetBits range xs = runST $ do ar <- newBitArray range False forM_ xs $ \i -> do writeBit ar i True unsafeFreezeBitArray ar