{-# OPTIONS_GHC -Wall -fno-warn-tabs #-} module Data.Bits.ToolsYj (checkBits, bitsList) where import Data.Bits checkBits :: Bits bs => bs -> bs -> Bool checkBits :: forall bs. Bits bs => bs -> bs -> Bool checkBits bs wnt = (bs -> bs -> Bool forall a. Eq a => a -> a -> Bool == bs wnt) (bs -> Bool) -> (bs -> bs) -> bs -> Bool forall b c a. (b -> c) -> (a -> b) -> a -> c . (bs -> bs -> bs forall a. Bits a => a -> a -> a .&. bs wnt) bitsList :: FiniteBits bs => bs -> [bs] bitsList :: forall bs. FiniteBits bs => bs -> [bs] bitsList bs bs = (bs -> Bool) -> [bs] -> [bs] forall a. (a -> Bool) -> [a] -> [a] filter (bs -> bs -> Bool forall a. Eq a => a -> a -> Bool /= bs forall a. Bits a => a zeroBits) ([bs] -> [bs]) -> [bs] -> [bs] forall a b. (a -> b) -> a -> b $ (Int -> bs) -> [Int] -> [bs] forall a b. (a -> b) -> [a] -> [b] map ((bs bs bs -> bs -> bs forall a. Bits a => a -> a -> a .&.) (bs -> bs) -> (Int -> bs) -> Int -> bs forall b c a. (b -> c) -> (a -> b) -> a -> c . Int -> bs forall a. Bits a => Int -> a bit) [Int 0 .. bs -> Int forall b. FiniteBits b => b -> Int finiteBitSize bs bs Int -> Int -> Int forall a. Num a => a -> a -> a - Int 1]