 	(recur (+ idx 1) pred (rest coll)))))
   (inner-index 0 pred coll))
 
-(defn unqualify-symbol [sym]
-  (let [sym-ns (namespace sym)]
-    (if sym-ns
-      (symbol (subs (str sym) (+ 1 (count sym-ns))))
-      sym)))
-
 (defn #^{:doc "Encode a VM instruction to bytes"}
   encode-inst [inst]
-  (let [inst-name (unqualify-symbol (first inst)),
+  (let [inst-name (first inst),
 	inst-operand (or (second inst) 0),
 	inst-spec (some (fn [inst-spec] (= inst-name (first inst-spec)))
 			*vm-inst-list*)]

				      end-label (gensym)]
				  `(~retry-label
				    ~@(compile-pass1 pred)
				    (VM_BIFN ~end-label)
				    ~@(apply concat (map compile-pass1 body))
				    (VM_JMP ~retry-label)
				    ~end-label))
	  ;;
	  ('dotimes (var num) & body)
	  (let [end-label (gensym),
		retry-label (gensym)]
	    `((VM_IVAL ~(make-num 0))
	      (VM_BIND ~(make-sym var))
	      ~retry-label
	      ~@(apply concat (map compile-pass1 body))
	      (VM_VREF ~(make-sym var))
	      (VM_PUSH)
	      (VM_IVAL ~(make-num 1))
	      (VM_PLUS)
	      (VM_VSET ~(make-sym var))
	      (VM_VREF ~(make-sym var))
	      (VM_PUSH)
	      (VM_IVAL ~(make-num num))
	      (VM_LE)
	      (VM_BIF ~end-label)
	      (VM_JMP ~retry-label)
	      ~end-label
	      (VM_UNBIND 1)))
	  ;;
	  _	(compile-funcall (first exp) (rest exp)))
   ;;

(defn pp-program [insts]
  (dotimes [i (count insts)]
    (let [inst (nth insts i),
	  inst-name (first inst)
	  inst-spec (some (fn [spec] (and (= inst-name (first spec)) spec))
			  *vm-inst-list*)
	  inst-operand (second inst)
