Definition kleisli_monad_nat_trans {C : category} (m : Monad C) : m ∙ Left_Kleisli_functor m ⟹ Left_Kleisli_functor m. Proof. use make_nat_trans. - exact (λ x, identity (m x)). - abstract (intros x y f ; cbn ; unfold bind ; rewrite functor_id, !id_left ; rewrite functor_comp ; rewrite !assoc' ; apply maponpaths ; exact (Monad_law1 _ @ !(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.Adjunctions.Core. Require Import UniMath.CategoryTheory.Monads.Monads. Require Import UniMath.CategoryTheory.whiskering.