|This, I think, is very wrong if one considers () and nil to be the same thing:|
Shouldn't both expressions evaluate to 0? Under what possible interpretation can the empty list have the same length as a list with one element?
arc> (len nil)
arc> (len '())
Something is very wrong here.
arc> (len '(1))