{-# LANGUAGE CPP #-}
module Data.Bits.Pdep
  ( Pdep(..)
  , fastPdepEnabled
  ) where
import GHC.Word
import qualified Data.Bits.Pdep.Prim as P
class Pdep a where
  pdep :: a -> a -> a
instance Pdep Word where
  pdep = P.primPdep
  {-# INLINE pdep #-}
instance Pdep Word8 where
  pdep = P.primPdep8
  {-# INLINE pdep #-}
instance Pdep Word16 where
  pdep = P.primPdep16
  {-# INLINE pdep #-}
instance Pdep Word32 where
  pdep = P.primPdep32
  {-# INLINE pdep #-}
instance Pdep Word64 where
  pdep = P.primPdep64
  {-# INLINE pdep #-}
fastPdepEnabled :: Bool
fastPdepEnabled = P.fastPdepEnabled
{-# INLINE fastPdepEnabled #-}