Module type Protocol.Marshalable

module type Marshalable = sig .. end
Send or receive marshaled messages through Reader or Writer

type t 
the type of a message
val receive : Reader.t ->
[ `Eof | `Ok of t ] Deferred.t
receive and send receive and send messages. They will raise exceptions if the connection is broken or there was some kind of I/O failure (e.g. if the connection was unexpectedly terminated).
val send : Writer.t -> t -> unit