Zed_input.S

`sig
type event
type +'a t
val empty : 'a Zed_input.S.t
val add :
Zed_input.S.event list -> 'a -> 'a Zed_input.S.t -> 'a Zed_input.S.t
val remove : Zed_input.S.event list -> 'a Zed_input.S.t -> 'a Zed_input.S.t
val fold :
(Zed_input.S.event list -> 'a -> 'b -> 'b) ->
'a Zed_input.S.t -> 'b -> 'b
val bindings : 'a Zed_input.S.t -> (Zed_input.S.event list * 'a) list
type 'a resolver
type 'a pack
val pack : ('a -> 'b) -> 'a Zed_input.S.t -> 'b Zed_input.S.pack
val resolver : 'a Zed_input.S.pack list -> 'a Zed_input.S.resolver
type 'a result =
Accepted of 'a
| Continue of 'a Zed_input.S.resolver
| Rejected
val resolve :
Zed_input.S.event -> 'a Zed_input.S.resolver -> 'a Zed_input.S.result
end`