diff --git a/collects/typed-scheme/private/extra-procs.rkt b/collects/typed-scheme/private/extra-procs.rkt index 6cd86438..b4a74b03 100644 --- a/collects/typed-scheme/private/extra-procs.rkt +++ b/collects/typed-scheme/private/extra-procs.rkt @@ -1,8 +1,10 @@ #lang scheme/base (provide assert) -(define (assert v [pred values]) - (unless (pred v) - (error "Assertion failed")) - v) - +(define-syntax assert + (syntax-rules () + ((assert v) + (or v (error "Assertion failed"))) + ((assert v pred) + (let ((val v)) + (if (pred val) val (error "Assertion failed"))))))