Instance RatRel_trans : 
  forall (R : Rat -> Rat -> Prop),
    RatRel R -> Transitive R.Instance RatRel_flip : 
  forall R,
    RatRel R ->
    RatRel (Basics.flip R).(* The class includes equality and inequality. *)

Instance eqRat_RatRel : RatRel eqRat.Instance leRat_RatRel : RatRel leRat.

Theorem evalDist_assoc : forall rel (A : Set)(c1 : Comp A)(B C : Set)(c2 : A -> Comp B)(c3 : B -> Comp C) x, RatRel rel -> rel (evalDist (Bind (Bind c1 c2) c3) x) (evalDist (Bind c1 (fun a => (Bind (c2 a) c3))) x).