-- 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.Data.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)<[(Int, Int, Int)]>: colors
--   ((), image_size)<String>: image
--   
--   |]
--   
@package binary-file @version 0.13.2 module File.Binary.Data.LittleEndian instance Field Int module File.Binary.Data.BigEndian lintToBin :: Int -> Integer -> String instance Field Int 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 Binary a getBytes :: Binary a => Int -> a -> (ByteString, a) makeBinary :: Binary a => ByteString -> a concatBinary :: Binary a => [a] -> a emptyBinary :: Binary a => a -> Bool tii :: Binary a => Int -> a -> (Int, a) fii :: Binary a => Int -> Int -> a