diff --git a/trans.scm b/trans.scm index 93b10bc7..f952e338 100644 --- a/trans.scm +++ b/trans.scm @@ -163,16 +163,20 @@ (let ((kth (list-tail lst k))) (set-car! kth obj))) (define (reverse lst) (foldl cons '() lst)) + (define (boolean=? b1 b2 . bs) + (Cyc-obj=? boolean? b1 (cons b2 bs))) (define (symbol=? sym1 sym2 . syms) + (Cyc-obj=? symbol? sym1 (cons sym2 syms))) + (define (Cyc-obj=? type? obj objs) (and - (eq? sym1 sym2) + (type? obj) (call/cc (lambda (return) (for-each - (lambda (s) - (if (not (eq? s sym1)) + (lambda (o) + (if (not (eq? o obj)) (return #f))) - syms) + objs) #t)))) (define (error msg . args) (raise (cons msg args)))