>>505
亀だがやってみた
Offってやつがそれ

import Foreign
import System.IO
import Control.Monad.State

main :: IO ()
main = do
  writeHoge file hoge
  hoge' <- readHoge file
  print $ hoge == hoge'
  where
  file = "hoge.txt"
  hoge = Hoge 3 5 [1,3..32]

-- 書き
writeHoge :: FilePath -> Hoge -> IO ()
writeHoge file hoge = do
  withBinaryFile file WriteMode $ \h -> do
    with hoge $ \p -> do
      hPutBuf h p $ sizeOf hoge

-- 読み
readHoge :: FilePath -> IO Hoge
readHoge file = do
  withBinaryFile file ReadMode $ \h -> do
    alloca $ \p -> do
      hGetBuf h p $ sizeOf (undefined :: Hoge)
      peek p
{-