+ (($ $callk k* proc (arg ...))
+ ;; We don't check that k* is in scope; it's actually inside some
+ ;; other function, probably. We rely on the transformation that
+ ;; introduces the $callk to be correct, and the linker to resolve
+ ;; the reference.
+ (check-var proc v-env)
+ (for-each (cut check-var <> v-env) arg))
+ (($ $branch kt ($ $primcall (? symbol? name) (arg ...)))
+ (check-var kt k-env)
+ (for-each (cut check-var <> v-env) arg))
+ (($ $branch kt ($ $values (arg ...)))
+ (check-var kt k-env)
+ (for-each (cut check-var <> v-env) arg))
+ (($ $primcall (? symbol? name) (arg ...))