-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | read/write binary file -- -- See example directory's sample code. -- --
--   runghc -XQuasiQuotes -XTypeFamilies -XFlexibleInstances exam.hs some.bmp
--   
-- -- exam.hs: -- --
--   import File.Binary
--   import File.Binary.Instances
--   import File.Binary.Instances.LittleEndian
--   import System.Environment
--   import Data.ByteString.Lazy as BSL
--   
--   main = do
--   [inf] <- getArgs
--     cnt <- BS.readFile inf
--   let (bmp, rest) = fromBinary () cnt :: (Bitmap, String)
--   print bmp
--   
--   instance Field (Int, Int, Int) where
--      type FieldArgument (Int, Int, Int) = ()
--      fromBinary _ s = let
--          (b, rest) = toType 1 s
--          (g, rest') = toType 1 rest
--          (r, rest'') = toType 1 rest' in
--          ((b, g, r), snd $ getBytes 1 1 rest'')
--      toBinary _ (b, g, r) = concatBinary [
--          fromType 1 b, fromType 1 g, fromType 1 r,
--          makeBinary $ BSL.singleton 0]
--   
--   [binary|
--   
--   Bitmap
--   
--   2: "BM"
--   4: file_size
--   2: 0
--   2: 0
--   4: offset
--   
--   4: 40
--   4: width
--   4: height
--   2: 1
--   2: bits_per_pixel
--   4: compression
--   4: image_size
--   4: resolutionH
--   4: resolutionV
--   4: color_num
--   4: important_color_num
--   ((), Just color_num)[OPENBRACKET](Int, Int, Int)[CLOSEBRACKET]: colors
--   ((), image_size)[OPENBRACKET]String[CLOSEBRACKET]: image
--   
--   |]
--   
@package binary-file @version 0.14.1 module File.Binary.Instances.LittleEndian wordsToInt :: Integral i => [Word8] -> i intToWords :: Integral i => Int -> i -> [Word8] instance Field Integer instance Field Int module File.Binary.Instances.BigEndian intToWords :: Integral i => Int -> i -> [Word8] instance Field Integer instance Field Int module File.Binary.Instances instance Binary ByteString instance Binary ByteString instance Binary String instance Field r => Field [r] instance Field Char instance Field ByteString module File.Binary readBinaryFile :: FilePath -> IO String writeBinaryFile :: FilePath -> String -> IO () binary :: QuasiQuoter class Field r where type family FieldArgument r fromBinary :: (Field r, Binary s) => FieldArgument r -> s -> (r, s) toBinary :: (Field r, Binary s) => FieldArgument r -> r -> s class (Eq b, Monoid b) => Binary b getBytes :: Binary b => Int -> b -> (ByteString, b) makeBinary :: Binary b => ByteString -> b