module App = Application.Make(struct type t = State.t end) (* let dispatch : (module App.Event with type t = 's) -> 's -> App.event = fun (type s) (module M: App.Event with type t = s) v -> App.E ( v , (module M : App.Event with type t = M.t )) *) include App