Set Implicit Arguments.
Set Strict Implicit.
(** The purpose of this tactic is to try to automatically derive morphisms ** for functions **)
intuition.
Qed.
intuition.
Qed.

Theorem respectful_if_bool T : forall (x x' : bool) (t t' f f' : T) eqT,
x = x' ->
eqT t t' -> eqT f f' ->
eqT (if x then t else f) (if x' then t' else f') .