diff --git a/pkgs/redex-pkgs/redex-lib/redex/private/enumerator.rkt b/pkgs/redex-pkgs/redex-lib/redex/private/enumerator.rkt index 219c879b00..0cef0ef5d9 100644 --- a/pkgs/redex-pkgs/redex-lib/redex/private/enumerator.rkt +++ b/pkgs/redex-pkgs/redex-lib/redex/private/enumerator.rkt @@ -1365,14 +1365,15 @@ [(cons factor '()) (prime-length-box-list/e es)] [(cons factor factors) + (define chunk-size (/ (length es) factor)) (define chunk/es - (for/list ([es (in-list (chunks-of es factor))]) + (for/list ([es (in-list (chunks-of es chunk-size))]) (loop factors es))) (map/e (λ (chunks) (apply append chunks)) (λ (xs) - (chunks-of xs factor)) + (chunks-of xs chunk-size)) (prime-length-box-list/e chunk/es))]))])) (define (prime-length-box-list/e es) diff --git a/pkgs/redex-pkgs/redex-test/redex/tests/enumerator-test.rkt b/pkgs/redex-pkgs/redex-test/redex/tests/enumerator-test.rkt index 69c9fb38df..fe7da32160 100644 --- a/pkgs/redex-pkgs/redex-test/redex/tests/enumerator-test.rkt +++ b/pkgs/redex-pkgs/redex-test/redex/tests/enumerator-test.rkt @@ -216,7 +216,10 @@ (check-bijection? nats*bool) (check-bijection? nats*nats) - (check-bijection? (list/e integer/e integer/e))) + (check-bijection? (list/e integer/e integer/e)) + (check-bijection? (apply list/e + (for/list ([i (in-range 24)]) + (map/e (curry cons i) cdr nat/e))))) ;; fair product tests