 
 (defun whatif--simplify (form bindings)
   "Simplify FORM in the context of BINDINGS using partial application.
-Loops are not executed and side-effecting functions are not run."
+Loops are not executed and side-effecting functions are not run.
+
+Returns a list ('value VALUE) if we could simplify the entire
+FORM to an expression, or a list ('unknown NEW-FORM) if some
+parts of FORM could not be simplified."
   (pcase form
     ;; nil and t evaluate to themselves.
     (`nil (list 'value nil))

       (`(value ,value)
        (if value then
          else))
       ;; Otherwise, return the if where we have simplified as much as
       ;; we can.
       (`(unknown ,_)
        (list 'unknown

     (if (assoc form bindings)
         (list 'value (alist-get form bindings))
       (list 'unknown form)))
    (`(if ,cond ,then)
     (whatif--simplify `(if ,cond ,then nil) bindings))
    (`(if ,cond ,then ,else)
     (setq cond (whatif--simplify cond bindings))
     (setq then (whatif--simplify then bindings))
