analyze-like-jdbc-with (clj)



(analyze-like-jdbc-with {:keys [filename callstack], :as ctx} expr)* and next.jdbc/with-transaction are almost like a let binding: they accept a binding vector which has a single symbol, an expression, and an optional third expression (the options to apply). We check there are 2 or 3 forms in the first argument (the binding vector). We analyze the 3rd form if it is present (the options). We analyze the whole expression as a let, after modifying the binding expression to only have two children.