(deftype SeqFly [s] clojure.lang.ISeq (first [this] (first (split s))) (next [this] (SeqFly. (last (split s)))) (more [this] (next this)) (cons [this other] '()) (equiv [this other] true) clojure.lang.Seqable (seq [this] this) Object (toString [this] (str s)))