aboutsummaryrefslogtreecommitdiff
path: root/lib/application/application.ml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/application/application.ml')
-rwxr-xr-xlib/application/application.ml12
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/application/application.ml b/lib/application/application.ml
index 789bd80..422aa4f 100755
--- a/lib/application/application.ml
+++ b/lib/application/application.ml
@@ -48,7 +48,7 @@ module Make(S:sig type t end) = struct
type t
- val update: t -> S.t -> S.t
+ val process: t -> S.t -> S.t
end
@@ -58,8 +58,16 @@ module Make(S:sig type t end) = struct
let run
: ?eq:(S.t -> S.t -> bool) -> S.t -> event Note.E.t -> S.t Note.S.t
= fun ?eq init event ->
- let action = Note.E.map (fun (E (t, (module Event))) st -> Event.update t st) event in
+ let action = Note.E.map (fun (E (t, (module Event))) st -> Event.process t st) event in
Note.S.accum ?eq init action
+
+ let dispatch
+ : (module Event with type t = 's) -> 's -> event
+ = fun (type s) (module M: Event with type t = s) v ->
+ E
+ ( v
+ , (module M : Event with type t = M.t ))
+
end