module NHC.Binary
( {-class-} Binary(..)
) where
import BinHandle ({-type-}BinHandle)
import SeekBin (seekBin)
import BinPtr ({-type-}BinPtr)
class Binary a where
put :: BinHandle -> a -> IO (BinPtr a)
get :: BinHandle -> IO a
getF :: BinHandle -> BinPtr a -> (a, BinPtr b)
putAt :: BinHandle -> BinPtr a -> a -> IO ()
getAt :: BinHandle -> BinPtr a -> IO a
getFAt :: BinHandle -> BinPtr a -> a
putAt bh p x = seekBin bh p >> put bh x >> return ()
getAt bh p = seekBin bh p >> get bh
getFAt bh p = fst (getF bh p)
|