1type request = { 2 tid: int; 3 rid: int; 4 ty: Xenbus.Xb.Op.operation; 5 data: string; 6} 7 8type response = 9 | Ack of (unit -> unit) (* function is the action to execute after sending the ack *) 10 | Reply of string 11 | Error of string 12 13let response_equal a b = 14 match (a, b) with 15 | (Ack _, Ack _) -> true (* just consider the response, not the post-response action *) 16 | (x, y) -> x = y 17