State.T2
module M : Monad
type 'a m = 'a M.t
type ('a, 'e) t = (('a, 'e) storage m, 'e) state
type ('a, 'e) e = 'e -> ('a * 'e) m