1 files changed, 10 insertions(+), 6 deletions(-)
M contracts.scm
M contracts.scm => contracts.scm +10 -6
@@ 164,12 164,16 @@
;;> general.
(define-syntax define-contract
(syntax-rules (pre post)
- ((_ formals (pre c1 ...) (post c2 ...) e1 e2 ...)
- (define formals
- (verify-contracts
- c2 ...
- (return (begin (verify-contracts c1 ...)
- e1 e2 ...)))))
+ ((_ (name . ff) (pre c1 ...) (post c2 ...) e1 e2 ...)
+ (define name
+ (lambda-contract ff
+ (pre c1 ...) (post c2 ...)
+ e1 e2 ...)))
+ ((_ (name f ...) (pre c1 ...) (post c2 ...) e1 e2 ...)
+ (define name
+ (lambda-contract (f ...)
+ (pre c1 ...) (post c2 ...)
+ e1 e2 ...)))
((_ formals (post c2 ...) (pre c1 ...) e1 e2 ...)
(define-contract formals (pre c1 ...) (post c2 ...) e1 e2 ...))
((_ formals (pre c ...) e1 e2 ...)