    (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--progn ()
   (should


       (if (eq 1 (length simplified-exprs))
           (car simplified-exprs)
         (list 'unknown `(progn ,@(--map (nth 1 it) simplified-exprs))))))
    
    ;; Eliminate or simplify a when statement if we can evaluate the
    ;; condition.

    (whatif--simplify 'x '((x . 42)))
    (list 'value 42))))

(ert-deftest simplify--if-by-condition ()
  "We should discard then THEN or the ELSE case
if we can evaluate the condition."
  (should
   (equal
    (whatif--simplify '(if x y z) nil)
