(def many-r (parser li acc act-acc) (iflet (parsed remaining actions) (parse parser li) (many-r parser remaining (lconc acc (copy parsed)) (if actions (join act-acc actions) act-acc)) (return (car acc) li (car act-acc))))
Personally I don't mind losing 'actions, it does seem that 'filt would be better ^^.