(def filt (fun parser) (fn (remaining pass fail) (parser remaining (fn (parsed remaining actions) (pass (fun parsed) remaining actions)) fail)))
(let new-pass (fn (fun pass) (fn (parsed remaining actions) (pass (fun parsed) remaining actions))) (def filt (fun parser) (fn (remaining pass fail) (parser remaining (new-pass fun pass) fail))))