sig
  type 'a t =
      Unit : unit Rpi.Mbox.Prop.t
    | Bytes : int *
        (Rpi.Mem.Map.bytes -> 'Rpi.result) -> 'Rpi.Mbox.Prop.t
    | Int32 : int *
        (Rpi.Mem.Map.int32s -> 'Rpi.result) -> 'Rpi.Mbox.Prop.t
    | Int64 : int *
        (Rpi.Mem.Map.int64s -> 'Rpi.result) -> 'Rpi.Mbox.Prop.t
  val unit : unit Rpi.Mbox.Prop.t
  val string : max:int -> string Rpi.Mbox.Prop.t
  val int : int Rpi.Mbox.Prop.t
  val int32 : int32 Rpi.Mbox.Prop.t
  val int64 : int64 Rpi.Mbox.Prop.t
  val int_pair : (int * int) Rpi.Mbox.Prop.t
  val int32_pair : (int32 * int32) Rpi.Mbox.Prop.t
  val int64_pair : (int64 * int64) Rpi.Mbox.Prop.t
  type args = int32 list
  type 'a req
  type ereq
  val req :
    ?args:Rpi.Mbox.Prop.args ->
    int32 -> resp:'Rpi.Mbox.Prop.t -> 'Rpi.Mbox.Prop.req
  val r : 'Rpi.Mbox.Prop.req -> Rpi.Mbox.Prop.ereq
  type resp
  val send : Rpi.Mbox.Prop.ereq list -> Rpi.Mbox.Prop.resp Rpi.result
  val find :
    Rpi.Mbox.Prop.resp -> 'Rpi.Mbox.Prop.req -> 'a option Rpi.result
end