Definition respectful {X} (P : dist X -> Prop) : Prop :=
  forall d1 d2, d1 ==d d2 -> P d1 <-> P d2.

Lemma monad_left_id_resp {X Y} (x : X) (f : X -> dist Y) (P : dist Y -> Prop) : respectful P -> P (mbind (mreturn x) f) <-> P (f x).