Section TranslateFacts.
Context {E F : Type -> Type}.
Context {R : Type}.
Context (h : E ~> F).
Global Instance eq_itree_translate' :
Proper (eq_itree eq ==> eq_itree eq) (@translate _ _ h R).
Global Instance eq_itree_translateF :
Proper (going (eq_itree eq) ==> eq_itree eq)
(translateF h (@translate _ _ h R)).
End TranslateFacts.

Lemma translate_bind : forall {E F R S} (h : E ~> F) (t : itree E S) (k : S -> itree E R),
translate h (x <- t ;; k x) ≅ (x <- (translate h t) ;; translate h (k x)).