   (should
    (equal
     (whatif--simplify '(unless x y) '((y . 1)))
-    (list 'unknown '(unless x 1)))))
+    (list 'partial '(unless x 1)))))
 
 (ert-deftest simplify--known-fn-call ()
   "If we know we're calling a function, we should simplify its

  (should
   (equal
    (whatif--simplify '(if x y z) nil)
    (list 'unknown '(if x y z))))
  (should
   (equal
    (whatif--simplify '(if x y z) '((x . 42)))
    (list 'unknown 'y))))

(ert-deftest simplify--if-body ()
  "We should always simplify the THEN and ELSE."
  (should
   (equal
    (whatif--simplify '(if x y z) '((y . 42) (z . 41)))
    (list 'unknown '(if x 42 41)))))

(ert-deftest simplify--if-condition ()
  "We should always simplify the COND."
  (should
   (equal
    (whatif--simplify '(if (if t x a) y z) '((y . 42) (z . 41)))
    (list 'unknown '(if x 42 41)))))

(ert-deftest simplify--if-without-else ()
  (should
   (equal
    (whatif--simplify '(if t y) nil)
    (list 'unknown 'y)))
  (should
   (equal
    (whatif--simplify '(if nil y) nil)

  (should
   (equal
    (whatif--simplify '(when t x y) nil)
    (list 'partial '(progn x y))))
  (should
   (equal
    (whatif--simplify '(when x y) '((y . 1)))
    (list 'partial '(when x 1)))))

(ert-deftest simplify--unless ()
  (should
   (equal
    (whatif--simplify '(unless nil x y) nil)
    (list 'partial '(progn x y))))
  (should
   (equal
    (whatif--simplify '(unless t x y) nil)
