Fix intmap bug for maps with only one element
[bpt/guile.git] / module / rnrs / enums.scm
index cd7e346..e97be46 100644 (file)
@@ -82,8 +82,8 @@
         (enum-set-subset? enum-set-2 enum-set-1)))
 
   (define (enum-set-union enum-set-1 enum-set-2)
-    (if (eq? (enum-set-universe enum-set-1) 
-            (enum-set-universe enum-set-2))
+    (if (equal? (enum-set-universe enum-set-1) 
+                (enum-set-universe enum-set-2))
        (make-enum-set (enum-set-universe enum-set-1)
                       (lset-union eq? 
                                   (enum-set-set enum-set-1) 
@@ -91,8 +91,8 @@
        (raise (make-assertion-violation))))
 
   (define (enum-set-intersection enum-set-1 enum-set-2)
-    (if (eq? (enum-set-universe enum-set-1) 
-            (enum-set-universe enum-set-2))
+    (if (equal? (enum-set-universe enum-set-1) 
+                (enum-set-universe enum-set-2))
        (make-enum-set (enum-set-universe enum-set-1)
                       (lset-intersection eq? 
                                          (enum-set-set enum-set-1) 
        (raise (make-assertion-violation))))
 
   (define (enum-set-difference enum-set-1 enum-set-2)
-    (if (eq? (enum-set-universe enum-set-1) 
-            (enum-set-universe enum-set-2))
+    (if (equal? (enum-set-universe enum-set-1) 
+                (enum-set-universe enum-set-2))
        (make-enum-set (enum-set-universe enum-set-1)
                       (lset-difference eq? 
                                        (enum-set-set enum-set-1) 
         (define-syntax constructor-syntax
           (lambda (s)
             (syntax-case s ()
-              ((_) (syntax #f))
               ((_ sym (... ...))
                (let* ((universe '(symbol ...))
                       (syms (syntax->datum #'(sym (... ...))))