I am trying to use the Cont in Control.Monad.Cont but it seems to be missing
Prelude> import Control.Monad.Cont
Prelude Control.Monad.Cont> :t Cont
It's gone; try "cont" (lowercase).
mtl2 replaced the old standalone monads with monad transformers over the Identity monad (so Cont is a type alias for ContT Identity); however, it's not possible to create data constructors for type aliases, so the Cont data constructor is gone and a "cont" smart constructor has taken its place.
Prelude Control.Monad.Cont> :t cont
cont :: ((a -> r) -> r) -> Cont r a
The same is true of State, Reader, and Writer.
--