Definition functor_to_kleisli_cat_incl_nat_trans {C : category} (m : Monad C) : kleisli_incl m ⟹ Left_Kleisli_functor m ∙ functor_to_kleisli_cat m. Proof. use make_nat_trans. - refine (λ x, make_mor_eilenberg_moore _ (identity _) _ ,, tt). abstract (cbn ; rewrite functor_id, id_left, id_right ; apply idpath). - abstract (intros x y f ; use eq_mor_kleisli_cat ; cbn ; rewrite id_left, id_right ; rewrite functor_comp ; rewrite !assoc' ; refine (!_) ; refine (_ @ id_right _) ; apply maponpaths ; apply Monad_law2). Defined.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.CategoryTheory.Core.Functors. Require Import UniMath.CategoryTheory.Core.NaturalTransformations. Require Import UniMath.CategoryTheory.Core.Isos. Require Import UniMath.CategoryTheory.Core.Univalence. Require Import UniMath.CategoryTheory.Categories.EilenbergMoore. Require Import UniMath.CategoryTheory.Subcategory.Core. Require Import UniMath.CategoryTheory.Subcategory.Full. Require Import UniMath.CategoryTheory.Monads.Monads. Require Import UniMath.CategoryTheory.Monads.KleisliCategory. Require Import UniMath.CategoryTheory.whiskering. Require Import UniMath.CategoryTheory.PrecompEquivalence.