proposition: Lemma adjoint_currry : curry_F X -| uncurry_F X.
proof: Proof. apply: (@AdjointFunctor.mk _ _ curry_eta curry_eps). by move=> A; rewrite /TriangularLaws.left; apply boolp.funext => -[]. move=> A; rewrite /TriangularLaws.right /uncurry_F /curry_eps /curry_eta /uncurry_M. by rewrite /= /uncurry_f /= /comp /=; apply boolp.funext => f; apply boolp.funext. Qed.
imports: ssrmatching mathcomp(all_ssreflect) monae_lib HB(structures) hierarchy