(defmacro for-all (bindings &body body)
`(perform-random-testing
(list ,@(mapcar #'second bindings))
(lambda ,(mapcar #'first bindings)
(if (and ,@(delete-if #'null (mapcar #'third bindings)))
(progn ,@body)
(throw 'run-once
(list :guard-conditions-failed))))))Source Context