bug fix for subset operators
Peter McGoron 25 May 2026 23:49 UTC
The wrappers for mapping operations don't supply value comparators, and
the incorrectly wrap the boolean output value.
diff --git a/srfi/153-impl.scm b/srfi/153-impl.scm
index fb7ad24..e572e0f 100644
--- a/srfi/153-impl.scm
+++ b/srfi/153-impl.scm
@@ -156,19 +156,19 @@
(map car (mapping->alist (M oset))))
(define (oset=? . osets)
- (S (apply mapping=? (map M osets))))
+ (apply mapping=? (make-eqv-comparator) (map M osets)))
(define (oset<? . osets)
- (S (apply mapping<? (map M osets))))
+ (apply mapping<? (make-eqv-comparator) (map M osets)))
(define (oset>? . osets)
- (S (apply mapping>? (map M osets))))
+ (apply mapping>? (make-eqv-comparator) (map M osets)))
(define (oset<=? . osets)
- (S (apply mapping<=? (map M osets))))
+ (apply mapping<=? (make-eqv-comparator) (map M osets)))
(define (oset>=? . osets)
- (S (apply mapping>=? (map M osets))))
+ (apply mapping>=? (make-eqv-comparator) (map M osets)))
(define (oset-union . osets)
(S (apply mapping-union (map M osets))))