Arc has corrupted me to barely be able to tolerate all those parens.
(mac iflet (var condition . body)
`(let ,var ,condition
(if ,var ,@body)))
(mac whenlet (var condition . body)
`(iflet ,var ,condition (do ,@body)))