Hi
Currently, annotated-case-lambda and annotated-call gives me a good amount of detail. But it seems to get nuked/removed on some macro expansions.
Here is the most obvious one:
(define-syntax define-fx (lambda (x) (syntax-case x () [(_ (name formals ...) body body* ...) (with-syntax (((checks ...) (map (lambda (f) (with-syntax ((f f)) #'(unless (fixnum? f) (assertion-violation 'name "not a fixnum" f)))) #'(formals ...)))) #'(define (name formals ...) checks ... (let () body body* ...)))])))
(define-fx (fx+ x1 x2) (+ x1 x2))
I will add more as I find them, or can reproduce them.
Cheers
leppie
Hi
Currently, annotated- case-lambda and annotated-call gives me a good amount of detail. But it seems to get nuked/removed on some macro expansions.
Here is the most obvious one:
(define-syntax define-fx
(with- syntax (((checks ...)
(with- syntax ((f f))
#' (unless (fixnum? f)
(assertion- violation 'name "not a fixnum" f))))
#'(formals ...))))
checks ...
body body* ...)))])))
(lambda (x)
(syntax-case x ()
[(_ (name formals ...) body body* ...)
(map (lambda (f)
#'(define (name formals ...)
(let ()
(define-fx (fx+ x1 x2)
(+ x1 x2))
I will add more as I find them, or can reproduce them.
Cheers
leppie