almost there... app interp getting a numV, with these:

(numV-n (interp (pre-process
                 (with (binding (quote apply)
                                (fun (quote (f x y)) (app (id (quote f)) (list (id (quote x)) (id (quote y))))))
                       (app (id (quote apply))
                            (list (fun (quote (a b)) (binop + (id (quote a)) (id (quote b))))
                                  (num 3)
                                  (num 4)))))))

(run '(with (apply (fun (f x y) (f x y)))
      (apply (fun (a b) (+ a b))
             3
             4)))