{-# OPTIONS_GHC -fno-warn-orphans #-} module Data.Bits.Compat ( module Base , Bits(..) ) where import Data.Bits as Base -- These instances are only valid if Bits isn't a subclass of Num (as Bool is -- not a Num instance), which is only true as of base-4.6.0.0 and later. #if MIN_VERSION_base(4,6,0) && !MIN_VERSION_base(4,7,0) import Prelude.Compat instance Bits Bool where (.&.) = (&&) (.|.) = (||) xor = (/=) complement = not shift x 0 = x shift _ _ = False rotate x _ = x bit 0 = True bit _ = False testBit x 0 = x testBit _ _ = False bitSize _ = 1 isSigned _ = False popCount False = 0 popCount True = 1 #endif