-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Splitting/combining data structures to/from halves, quarters, eighths -- -- Splittingcombining data structures tofrom halves, quarters, -- eighths. @package halves @version 0.1.0.0 module Data.Halves.FiniteBits class FiniteBits b => AsFiniteBits a b | a -> b asFiniteBits :: AsFiniteBits a b => Iso' a b asFiniteBitsDefault :: (Integral a, Integral b) => Iso' a b instance Data.Halves.FiniteBits.AsFiniteBits GHC.Word.Word8 GHC.Word.Word8 instance Data.Halves.FiniteBits.AsFiniteBits GHC.Word.Word16 GHC.Word.Word16 instance Data.Halves.FiniteBits.AsFiniteBits GHC.Word.Word32 GHC.Word.Word32 instance Data.Halves.FiniteBits.AsFiniteBits GHC.Word.Word64 GHC.Word.Word64 instance Data.Halves.FiniteBits.AsFiniteBits GHC.Int.Int8 GHC.Word.Word8 instance Data.Halves.FiniteBits.AsFiniteBits GHC.Int.Int16 GHC.Word.Word16 instance Data.Halves.FiniteBits.AsFiniteBits GHC.Int.Int32 GHC.Word.Word32 instance Data.Halves.FiniteBits.AsFiniteBits GHC.Int.Int64 GHC.Word.Word64 module Data.Halves.Tuple tuple4 :: Iso' ((a, b), (c, d)) (a, b, c, d) tuple8 :: Iso' ((a, b, c, d), (e, f, g, h)) (a, b, c, d, e, f, g, h) module Data.Halves class Halves a b | a -> b, b -> a halves :: Halves a b => Iso' a (b, b) quarters :: (Halves a b, Halves b c) => Iso' a (c, c, c, c) eighths :: (Halves a b, Halves b c, Halves c d) => Iso' a (d, d, d, d, d, d, d, d) upperHalf :: (Halves a b) => Lens' a b lowerHalf :: (Halves a b) => Lens' a b swappedHalves :: (Halves a b) => Iso' a a chunkHalves :: (Halves a b) => Iso' [b] ([a], [b]) chunkQuarters :: (Halves a b, Halves b c) => Iso' [c] ([a], [c]) chunkEighths :: (Halves a b, Halves b c, Halves c d) => Iso' [d] ([a], [d]) collectHalves :: (Halves a b) => Lens' [b] [a] collectQuarters :: (Halves a b, Halves b c) => Lens' [c] [a] collectEighths :: (Halves a b, Halves b c, Halves c d) => Lens' [d] [a] finiteBitHalves :: forall a b c. (Integral a, Integral b, Integral c, Bits a, AsFiniteBits b c) => Iso' a (b, b) instance Data.Halves.Halves GHC.Word.Word16 GHC.Word.Word8 instance Data.Halves.Halves GHC.Word.Word32 GHC.Word.Word16 instance Data.Halves.Halves GHC.Word.Word64 GHC.Word.Word32 instance Data.Halves.Halves GHC.Int.Int16 GHC.Int.Int8 instance Data.Halves.Halves GHC.Int.Int32 GHC.Int.Int16 instance Data.Halves.Halves GHC.Int.Int64 GHC.Int.Int32