(local { : view } (require :fennel)) (local { : Gdk } (require :lgi)) (local keymap (require :keymap)) (local Mod Gdk.ModifierType) (local km {"a" {"a" #1 "b" #2} "b" {"z" #3} "c" #4 }) (fn fake-key-event [c] {:keyval (string.byte c) :state {} }) (let [s (keymap._.keychord->spec "q")] (match s {:keyval 113 :modmask 0} true _ (assert false (view s)))) (let [s (keymap._.keychord->spec "C-a")] (match s {:keyval 97 :modmask 4} true _ (assert false (view s)))) (let [s (keymap._.keychord->spec "C-M-Z")] (match s {:keyval 122 :modmask 13} true _ (assert false (view s)))) (let [r (keymap.recogniser km) (ok err) (match (r:accept-event (fake-key-event "c")) (where f (= (f) 4)) true x (values false (view x)) nil (values false "???"))] (assert ok err))