(#:return
- ((_ . x)
- `(,(fluid-ref return) ,@(map (g vs exp) x))))
+ ((_ x)
+ (if x
+ `(,(fluid-ref return) ,@(map (g vs exp) x))
+ `(,(fluid-ref return)))))
+
(#:dict
((_ . #f)
(define-syntax boolit
- (syntax-rules (and or not)
+ (syntax-rules (and or not < <= > >=)
((_ (and x y)) (and (boolit x) (boolit y)))
((_ (or x y)) (or (boolit x) (boolit y)))
((_ (not x )) (not (boolit x)))
+ ((_ (< x y)) (< x y))
+ ((_ (<= x y)) (<= x y))
+ ((_ (> x y)) (> x y))
+ ((_ (>= x y)) (>= x y))
((_ #t) #t)
((_ #f) #f)
((_ x ) (bool x))))