proposition: Lemma cat_monad_bind_unit {A B : C} (f : C⟦A, (monad_endo M : _ ⟶ _) B⟧) : (monad_unit M : _ ⟹ _) A · monad_bind f = f.
proof: Proof. unfold monad_bind. etrans. { rewrite assoc. apply maponpaths_2. apply (!(nat_trans_ax ((monad_unit M : _ ⟹ _)) A _ f)). } etrans. 2: apply id_right. rewrite assoc'. apply maponpaths. apply (cat_monad_μη M). Qed.
imports: UniMath.Foundations.All UniMath.MoreFoundations.All UniMath.CategoryTheory.Core.Categories UniMath.CategoryTheory.Core.Functors UniMath.CategoryTheory.Core.Univalence UniMath.CategoryTheory.Core.NaturalTransformations UniMath.CategoryTheory.Core.Isos UniMath.CategoryTheory.PrecategoryBinProduct UniMath.Bicategories.Core.Bicat UniMath.Bicategories.Core.BicategoryLaws UniMath.Bicategories.Core.Invertible_2cells UniMath.Bicategories.PseudoFunctors.Display.PseudoFunctorBicat UniMath.Bicategories.PseudoFunctors.PseudoFunctor UniMath.Bicategories.PseudoFunctors.Examples.Identity UniMath.Bicategories.PseudoFunctors.Examples.Composition UniMath.Bicategories.PseudoFunctors.Examples.Projection UniMath.Bicategories.Transformations.PseudoTransformation UniMath.Bicategories.Transformations.Examples.AlgebraMap UniMath.CategoryTheory.DisplayedCats.Core UniMath.Bicategories.DisplayedBicats.DispBicat UniMath.Bicategories.Core.Unitors UniMath.Bicategories.Morphisms.Adjunctions UniMath.Bicategories.Core.Univalence UniMath.Bicategories.DisplayedBicats.DispAdjunctions UniMath.Bicategories.DisplayedBicats.DispUnivalence UniMath.Bicategories.DisplayedBicats.Examples.Algebras UniMath.Bicategories.DisplayedBicats.Examples.Add2Cell UniMath.Bicategories.DisplayedBicats.Examples.Prod UniMath.Bicategories.DisplayedBicats.Examples.FullSub UniMath.Bicategories.DisplayedBicats.Examples.Sigma UniMath.Bicategories.Core.Examples.BicatOfUnivCats UniMath.CategoryTheory.Equivalences.CompositesAndInverses