{-# LANGUAGE CPP #-}
{-# LANGUAGE MagicHash #-}
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 #-}