MakeP.P
type t = ReadWrite.t * Write.t
val is_top : t -> bool
val top : unit -> t
val is_bot : t -> bool
val bot : unit -> t
val hash : t -> int
val show : (ReadWrite.t * Write.t) -> string
val pretty : unit -> (ReadWrite.t * Write.t) -> Printable.Pretty.doc
val printXml : 'a BatInnerIO.output -> (ReadWrite.t * Write.t) -> unit
val to_yojson :
(ReadWrite.t * Write.t) ->
[> `Assoc of (string * Yojson.Safe.t) list ]
val arbitrary : unit -> (ReadWrite.t * Write.t) QCheck.arbitrary