   (assert (generator? generator) "First arg to list must be a generator")
   (gen-bind (sized #(choose 0 %))
             (fn [num-elements-rose]
-              (gen-bind (gen-seq->seq-gen
-                         (repeat (rose/root num-elements-rose)
-                                 generator))
+              (gen-bind (gen-tuple (repeat (rose/root num-elements-rose)
+                                           generator))
                         (fn [roses]
                           (gen-pure (rose/shrink core/list
                                                  roses)))))))

   (gen-bind
     (choose min-elements max-elements)
     (fn [num-elements-rose]
       (gen-bind (gen-seq->seq-gen
                  (repeat (rose/root num-elements-rose)
                          generator))
                 (fn [roses]
                   (gen-bind
                     (gen-pure (rose/shrink core/vector

  [& generators]
  (assert (every? generator? generators)
          "Args to tuple must be generators")
  (gen-bind (gen-tuple generators)
            (fn [roses]
              (gen-pure (rose/zip core/vector roses)))))

