                     s#
                     (assoc v# i (reduce #(assoc %1 %2 v)
                                         (v# i)
-                                        (orbit ds [i j] D))))))
+                                        (orbit-elements ds [i j] D))))))
   (unspin [ds i j D]
           (do
             (assert-arg "i" i #(index? ds %) "an existing index")

            (DSymbol. dim
                      size
                      s#
                      (assoc v# i (reduce dissoc (v# i) (orbit ds [i j] D))))))
  Object
  (equals [self other]
          (and (satisfies? IDSymbol other)

  ([ds indices]
    (orbit-reps ds indices (elements ds))))

(defn orbit-elements [ds indices seed]
  (distinct (for [[D i] (traversal ds indices [seed])] D)))

(defn connected? [ds]
