Definition essentially_surjective_functor_to_kleisli_cat {C : category} (m : Monad C) : essentially_surjective (functor_to_kleisli_cat m). Proof. intro x. induction x as [ x Hx ]. revert Hx. use factor_dep_through_squash. - intro. apply isapropishinh. - intros Hx. apply hinhpr. refine (pr1 Hx ,, _). use z_iso_kleisli_cat. exact (pr2 Hx). 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.