Notation client := nid (only parsing).
Definition value := nat.
Inductive request :=
| Update of client * epoch * value
| Read of client * epoch.
Definition request_eq (r1 r2 : request) : bool :=
match r1, r2 with
| Update x1, Update x2 => x1 == x2
| Read x1, Read x2 => x1 == x2
| _, _ => false
end.

(* Specifications: *)
Lemma request_eqP : Equality.axiom request_eq.
Canonical request_eqMixin := EqMixin request_eqP.