|
|
|
@ -275,7 +275,7 @@ cases where handlers are dynamically installed.
|
|
|
|
|
walk-edge h node n_pop n_index (s:shapes) =
|
|
|
|
|
let (n_pop', node') = walk-node h node n_pop n_index s
|
|
|
|
|
let n_index' = n_index + 1
|
|
|
|
|
let h' = update-path h 1 n_index'
|
|
|
|
|
let h' = (dropRight h 1) ++ [n_index']
|
|
|
|
|
walk-edge h' node' n_pop' n_index' shapes
|
|
|
|
|
|
|
|
|
|
walk-node :: H -> Node -> 𝐍 -> 𝐍 -> S -> (𝐍,Node)
|
|
|
|
@ -295,13 +295,9 @@ cases where handlers are dynamically installed.
|
|
|
|
|
classof (project v h) = class }
|
|
|
|
|
edges[selector][class] := ((innercache, {}), {})
|
|
|
|
|
let node' = edges[selector][class]
|
|
|
|
|
let h' = update-path h 0 0
|
|
|
|
|
let h' = h ++ [0]
|
|
|
|
|
walk-edge h' node' 0 0 [s_0, ..., s_i]
|
|
|
|
|
|
|
|
|
|
update-path :: H -> 𝐍 -> 𝐍 -> H
|
|
|
|
|
update-path h n_pop n_index =
|
|
|
|
|
(dropRight h n_pop) ++ [n_index]
|
|
|
|
|
|
|
|
|
|
**Definition.** The `addHandler` procedure installs into an index an
|
|
|
|
|
event handler callback `f` expecting values matching and captured by
|
|
|
|
|
the given skeleton `k`. It then invokes `f` once for each distinct
|
|
|
|
|