1 2 3 4 5 6 7 8 9
module type Handler = sig type t val apply: t -> State.t -> State.t end type t = E : 'a * (module Handler with type t = 'a) -> t