https://stevelosh.com/blog/2018/07/fun-with-macros-if-let/ is an excellent post on implementing if-let and when-let macros. It discusses the different ways you could expand the code, and ensuring the macro composes with other (Common) Lisp features. Really useful macro too, I'm a big fan of the elisp equivalent.