Generalizable Variables A.(** A setoid wraps an equivalence. *)

Class Setoid A := {
  equiv : relation A ;
  #[global] setoid_equiv :: Equivalence equiv }.(** A setoid wraps an equivalence. *)

Class Setoid A := {
  equiv : relation A ;
  #[global] setoid_equiv :: Equivalence equiv }.(** A setoid wraps an equivalence. *)

Class Setoid A := {
  equiv : relation A ;
  #[global] setoid_equiv :: Equivalence equiv }.

(* Specifications: *)
Lemma setoid_refl `(sa : Setoid A) : Reflexive equiv.
Lemma setoid_sym `(sa : Setoid A) : Symmetric equiv.
Lemma setoid_trans `(sa : Setoid A) : Transitive equiv.