                                            :else value)]
                                [{param value}]))
                      (re-seq #"\G(!|\?|&|@|)(>+|<+|)(-?(?:[0-9]+|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)(?:[eE]-?[0-9]+)?|)" token)))
-         {:notes (rest notes)})
+         {:notes (vec-rest notes)})
         state))))
 
 (defn make-sequencer [& [sequence]]

              state (cond
                      (or (seq? (first notes)) (vector? (first notes)))
                      (merge (compose (first notes) sequencer state)
                             {:notes (rest notes)}
                             (if (vector? notes) {:position position} {}))
                      (map? (first notes))
                      (parse-state notes state)
                      (keyword? (first notes))
                      (parse-state (cons {(first notes) (first (rest notes))} (rest (rest notes))) state)
                      :else
                      (let [notes (:notes state)
                            state (parse-param (:notes state) state)

                                        1 3))
                                 3)
                   (:position state))))
          (merge state (first notes) {:notes (vec-rest notes)})))
      state)))

(defn parse-length [notes state]
