length.recursive() is newly defined.
tco()'s changes its break condition.
is.nil() newly is created. It returns TRUE if an argument is NULL or list().
totally revised