base-4.22.0.0: src/Data/Bits.hs
{-# LANGUAGE Safe #-}
-- |
--
-- Module : Data.Bits
-- Copyright : (c) The University of Glasgow 2001
-- License : BSD-style (see the file libraries/base/LICENSE)
--
-- Maintainer : libraries@haskell.org
-- Stability : stable
-- Portability : portable
--
-- This module defines bitwise operations for signed and unsigned
-- integers. Instances of the class 'Bits' for the 'Int' and
-- 'Integer' types are available from this module, and instances for
-- explicitly sized integral types are available from the
-- "Data.Int" and "Data.Word" modules.
--
module Data.Bits
(-- * Type classes
Bits((.&.), (.|.), xor, complement, shift, rotate, zeroBits, bit, setBit, clearBit, complementBit, testBit, bitSizeMaybe, bitSize, isSigned, shiftL, shiftR, unsafeShiftL, unsafeShiftR, rotateL, rotateR, popCount),
FiniteBits(finiteBitSize, countLeadingZeros, countTrailingZeros),
-- * Extra functions
bitDefault,
testBitDefault,
popCountDefault,
toIntegralSized,
oneBits,
(.^.),
(.>>.),
(.<<.),
(!>>.),
(!<<.),
-- * Newtypes
And(..),
Ior(..),
Xor(..),
Iff(..)
) where
import GHC.Internal.Data.Bits