     (fn [new o1 o2 lat]
       (cond (null? lat) '()
             (or (eq? (car lat) o1)
-                (eq? (car lat) o2)) (cons new (cdr lat))
-            :else (cons (car lat) (subst2 new o1 o2 (cdr lat))))))
+                (eq? (car lat) o2)) (conss new (cdr lat))
+            :else (conss (car lat) (subst2 new o1 o2 (cdr lat))))))
 
   (is (= (subst2 'vanilla 'chocolate 'banana '())
          '()))

  (def multiinsertL
    (fn [new old lat]
      (cond (null? lat) '()
            (eq? (car lat) old) (cons new (cons old (multiinsertL new old (cdr lat))))
            :else (cons (car lat) (multiinsertL new old (cdr lat))))))

  (is (= (multiinsertL 'new 'old '())

  (def multiinsertR
    (fn [new old lat]
      (cond (null? lat) '()
            (eq? (car lat) old) (conss old (conss new (multiinsertR new old (cdr lat))))
            :else (conss (car lat) (multiinsertR new old (cdr lat))))))

  (is (= (multiinsertR 'new 'old '())
         '()))
