(deftype SeqFly [s] clojure.lang.ISeq (first [this] (first (split s))) (next [this] (SeqFly. (last (split s)))) clojure.lang.Seqable (seq [this] this) Object (toString [this] (str s)))