proposition: Theorem Codensity_Reader_State_iso : forall e a, Codensity (Reader e) a ≅ State e a.
proof: Proof. intros. unfold Codensity, Reader, State. rewrite <- (Cont_iso (a * e)), exp_exp_sym_dep_iso. apply iso_ext; intros. unfold Cont. rewrite exp_mul_iso, exp_exp_sym_iso. reflexivity. Qed.
imports: Hask.Ltac Hask.Prelude Hask.Control.Applicative Hask.Control.Monad Hask.Control.Monad.Cont Hask.Control.Monad.State Hask.Data.Functor.Contravariant Hask.Data.Functor.Identity Hask.Data.Functor.Kan Hask.Data.Functor.Yoneda Hask.Control.Lens Coq.Classes.Morphisms Coq.Setoids.Setoid Coq.Init.Datatypes Coq.Relations.Relation_Definitions FunctionalExtensionality