In Joy of Clojure, 2nd edition, page 217, we read:
You may have noticed that we've been using our own function
xseqthroughout the examples in this section, instead of Clojure'sseq. This shouldn't be necessary, because Clojure provides anISeqableinterface that itsseqfunction can use - all you need to do is to have your own type implementISeqable.
The text then proceeds to declare a type protocol-implementing an ISeq, more precisely
(deftype InfiniteConstant [i]
clojure.lang.ISeq
(seq [this]
(lazy-seq (cons i (seq this)))))
Apart from the mis-use of the the word "interface", which is a concept from the Java-level, instead of "protocol", which is a concept from the Clojure-level, is ISeqable a real concept or is it something that was left uncorrected during editing?
The index lists "ISeqable interface" only for that very page, and "ISeq interface" for another page.