-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | read/write binary file -- --
--   runghc -XQuasiQuotes exam.hs some.bmp out.bmp
--   
-- -- exam.hs: -- --
--   import File.Binary
--   import File.Binary.Data.LittleEndian
--   import System.Environment
--   import Data.ByteString as BS
--   
--   main = do
--   [inf, outf] <- getArgs
--   
--     cnt <- BS.readFile inf
--   let bmp = readBitmap $ cnt `BS.append` replicate 20 ' '
--   print bmp
--   
--   let out = writeBitmap bmp
--   	authorFirst = "Yoshikuni ",
--   	authorSecond = "Jujo      "
--   
--     BS.writeFile outf out
--   
--   instance RetType (Int, Int, Int) where
--      type Argument (Int, Int, Int) = ()
--      fromType _ (b, g, r) = cc $ [
--          fromType 1 b, fromType 1 g, fromType 1 r, zero]
--      toType _ str = let
--          (b, rest) = toType 1 str
--          (g, rest') = toType 1 rest
--          (r, rest'') = toType 1 rest' in
--          ((b, g, r), dp 1 rest'')
--   
--   [binary|
--   
--   Bitmap
--   
--   2: "BM"
--   4: fileSize
--   2: 0
--   2: 0
--   4: offset
--   
--   4: 40
--   4: bitmapWidth
--   4: bitmapHeight
--   2: 1
--   2: bitsPerPixel
--   4: compressionMethod
--   4: imageSize
--   4: horizontalResolution
--   4: verticalResolution
--   4: numberOfColors
--   4: importantColors
--   ((), Just numberOfColors)<[(Int, Int, Int)]>: colors
--   imageSize<BS.ByteString>: image
--   
--   10<String>: authorFirst
--   10<String>: authorSecond
--   
--   |]
--   
@package binary-file @version 0.12.6 module File.Binary.Data.LittleEndian instance RetType Int module File.Binary.Data.BigEndian instance RetType Int module File.Binary readBinaryFile :: FilePath -> IO String writeBinaryFile :: FilePath -> String -> IO () binary :: QuasiQuoter class RetType r where type family Argument r fromType :: (RetType r, Str s) => Argument r -> r -> s toType :: (RetType r, Str s) => Argument r -> s -> (r, s) class Str a tk :: Str a => Int -> a -> a dp :: Str a => Int -> a -> a ts :: Str a => a -> String fs :: Str a => String -> a fbs :: Str a => ByteString -> a tbs :: Str a => a -> ByteString ti :: Str a => a -> Integer fi :: Str a => Int -> Integer -> a tiBE :: Str a => a -> Integer fiBE :: Str a => Int -> Integer -> a cc :: Str a => [a] -> a zero :: Str a => a len :: Str a => a -> Int empty :: Str a => a -> Bool rev :: Str a => a -> a tii :: Str a => Int -> a -> (Int, a) tiiBE :: Str a => Int -> a -> (Int, a) fii :: Str a => Int -> Int -> a fiiBE :: Str a => Int -> Int -> a