fromBitsDiff :: FromBits a => [Bool] -> ([a] -> [a], [Bool])
fromBitsDiff bs = case fromBits1 bs of
  (Nothing, rs) -> (id  ,              rs)
  (Just a , rs) -> case fromBitsDiff rs of
    (f, ss) -> ((a:) . f, ss)
fromBitsDiff :: FromBits a => [Bool] -> ([a] -> [a], [Bool])
fromBitsDiff bs = case fromBits1 bs of
  (Nothing, rs) -> (id  ,              rs)
  (Just a , rs) -> case fromBitsDiff rs of
    (f, ss) -> ((a:) . f, ss)
fromBitsDiff bs = case fromBits1 bs of
  (Nothing, rs) -> (id  ,              rs)
  (Just a , rs) -> case fromBitsDiff rs of
    (f, ss) -> ((a:) . f, ss)