;; When is a macro of (if .. do ..)
user=> (macroexpand '(when 1 2 3 4))
(if 1 (do 2 3 4))
;; if 1 is true, do will evaluate 2 3 4, but return values of 2 and 3 would be
;; ignored. Value of 4 (last value) would always be returned.
;; See https://clojuredocs.org/clojure.core/do for details
user=> (if 1 (do 2 3 4))
4