module Make:
Make (Event)
makes a a new binder.Parameters: |
|
type
event
type +'a
t
'a
.val empty : 'a t
val add : event list -> 'a -> 'a t -> 'a t
add events x bindings
binds events
to x
. It raises
Invalid_argument
if events
is empty.val remove : event list -> 'a t -> 'a t
remove events bindings
unbinds events
. It raises
Invalid_argument
if events
is empty.val fold : (event list -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
fold f set acc
executes f
on all sequence of set
,
accumulating a value.val bindings : 'a t -> (event list * 'a) list
bindings set
returns all bindings of set
.type 'a
resolver
'a
when a matching sequence is found.type 'a
pack
val pack : ('a -> 'b) -> 'a t -> 'b pack
pack f set
creates a pack.val resolver : 'a pack list -> 'a resolver
resolver packs
creates a resolver from a list of pack.type 'a
result =
| |
Accepted of |
(* |
The sequence is terminated and associated to the given
value.
| *) |
| |
Continue of |
(* |
The sequence is not terminated.
| *) |
| |
Rejected |
(* |
None of the sequences is prefixed by the one.
| *) |
val resolve : event -> 'a resolver -> 'a result
resolve event resolver
tries to resolve event
using
resolver
.