module Data.Binary.Put.Machine where

import Data.ByteString.Lazy (ByteString)
import Data.Binary.Put (Put, runPut)
import Data.Machine

processPut :: Monad m => (a -> Put) -> ProcessT m a ByteString
processPut f = repeatedly $ await >>= g where g = yield . runPut . f