Use :when instead of :pre

  :when is more appropriate here as it is used similarly in a 'for'

  :pre (as in pre-conditions) that are already in Clojure work differently in that they raise exceptions
Minor refactor of the 'wrap' fn

Short circuit earlier and declare bindings closer to where they are used