On Monday 14 March 2011 05:45:04, C K Kashyap wrote: > Thanks Brandon, > > data Endian = Big | Little > data Size = Eight | Sixteen | ThirtyTwo | SixtyFour > type EncTuple = (Int,Size,Endian) > > My requirement is to write encode :: [EncTuple] -> ByteString
Looks like a job for Data.Binary. > I'd like to use it with just the libraries that are part of the platform I don't know whether binary is in the platform, though (but I expect it to be). > - and I am not a fan of using the internal stuff :) > I'd appreciate it very much if you could give me a sample. instance Binary Endian where put Big = putWord8 0 put Little = putWord8 1 get = do w <- getWord8 case w of 0 -> return Big 1 -> return Little _ -> error ("Bad Endian tag: " ++ show w) instance Binary Size where put Eight = putWord8 8 put Sixteen = putWord8 16 ... get = do w <- getWord8 case w of 8 -> return 8 ... putAux Eight _ i = putWord8 (fromIntegral i) putAux Sixteen Big i = putWord16be (fromIntegral i) ... _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe