I am not saying that your implementation of count+ is wrong. It meets the specs of srfi-1. But so did the previous implementation. And so does mine. And since there is otherwise no actual length operator of any kind working for dotted lists, I want one. The previous implementation was actually trivially the same as (define (length* lst) (catch 'wrong-type-arg (lambda () (length lst)) (lambda _ #f))) and consequently was trivial to write using existing length functions in the C API. And I need my variant of length+ to fix things like take-right which currently bomb out on large lists with a VM error and are _required_ to deal with _both_ proper and dotted lists. Which is awkward to do without a length operator working on both proper and dotted lists. -- David Kastrup