     (let [[a b :as notes] (vary-pitch props)
           distance (js/Math.abs (- b a))]
       (js/console.log "start interval" (assoc props
-                        ::notes notes
-                        ::correct-answer (str distance)))
+                                         ::notes notes
+                                         ::correct-answer (str distance)))
       (assoc props
         ::notes notes
         ::correct-answer (str distance))))

   "Harmonic Minor" [2 1 2 2 1 3 1]
   "Chromatic"      [1 1 1 1 1 1 1 1 1 1 1 1 1]
   "Whole Tone"     [2 2 2 2 2 2]
   "Melodic Minor"  [[2 1 2 2 1 2 2] [1 2 2 2 2 1 2]]})

(s/def ::scale-offset (s/with-gen pos-int? #(s/gen #{1 2})))
(s/def ::scale (s/coll-of ::scale-offset :kind vector? :max-count 12))
(s/def ::full-scale (s/or :regular ::scale :irregular (s/tuple ::scale ::scale)))

(defn build-scale [tonic scale]
  (reduce
    (fn [notes offset]
      (conj notes (+ (last notes) offset)))
    [tonic]
    scale))

(om/defui ^:once Scales
  static uc/InitialAppState

(s/def ::description string?)
(s/def ::option (s/cat :value string? :label string?))
(s/def ::options (s/or :text #{::option-type-text}
                   :select (s/coll-of ::option :kind vector?)))

(s/def ::hints (s/coll-of ::template/fragment))
(s/def ::hints-used nat-int?)
