packages feed

idris-0.9.6: lib/Data/Bits.idr

module Data.Bits

%access public
%default partial

infixl 5 .|.
infixl 7 .&.

class Num a => Bits a where
  (.|.) : a -> a -> a
  (.&.) : a -> a -> a

  xor : a -> a -> a
  complement : a -> a
  shiftL : a -> Int -> a
  shiftR : a -> Int -> a

instance Bits Int where
  (.|.) = prim__orInt
  (.&.) = prim__andInt

  xor = prim__xorInt
  complement = prim__complInt
  shiftL = prim__shLInt
  shiftR = prim__shRInt