Check is currently defined like this:
(mac check (x test (o alt)) (w/uniq gx `(let ,gx ,x (if (,test ,gx) ,gx ,alt))))
(mac check (test x (o alt)) (w/uniq gx `(let ,gx nil (if (,test (= ,gx ,x)) ,gx ,alt))))
-----