module Ivory.BitData (
bitdata
, Bits(), Bit, BitArray(), BitRep()
, repToBits, bitsToRep, zeroBits
, bitLength, bitIx
, BitData(), BitDataField(), BitDataRep
, toBits, fromBits
, toRep, fromRep
, setBitDataBit, clearBitDataBit, getBitDataField, setBitDataField
, (#!)
, (#.)
, (#>)
, BitDataM(), runBits, withBits, withBitsRef
, clear, setBit, clearBit, setField
, bitToBool, boolToBit
) where
import Ivory.BitData.Bits
import Ivory.BitData.BitData
import Ivory.BitData.Array
import Ivory.BitData.Quote
import Ivory.BitData.Monad
import Ivory.Language
bitToBool :: Bit -> IBool
bitToBool b = (toRep b ==? 0) ? (false, true)
boolToBit :: IBool -> Bit
boolToBit b = b ? (fromRep 1, fromRep 0)