import Data.ByteString.Lazy (fromStrict, fromChunks, toStrict)
import qualified Data.ByteString.Char8 as BC (replicate, pack)
import Control.Monad (replicateM, liftM)
-import Control.Applicative ((<$>), liftA3)
+import Control.Applicative (liftA3)
import Data.Binary (Binary(..), decode, encode)
import Data.Binary.Put (putWord32be, putWord16be, putWord8)