Definition T: MonadTrans := Build_MonadTrans M lift.Definition NatAddMonoid: Monoid.Definition SimplyProfiled: Monad := MonoidMonadTrans.M NatAddMonoid IdMonad.ext.Definition cost {X: Set}: prod nat X -> nat := @fst _ _.Definition result X: SimplyProfiled X -> X := @snd _ _.

Lemma return_cost (T: Set) (x: T): cost (@ret SimplyProfiled T x) = 0.