in reply to Infinite loop yet no loop

While we're deealing with basics ...

Without recursion, you enter the routine, get the first argument, and either create a SOMECLAS or else shove the argument back onto the argument list. Then you exit the routine.

If the recursion line were not commented, I would worry that at least one of the arguments failed the exists() condition. In that case, you would have an infinite loop: after all matching arguments had been processed, the argument list would contain only defective arguments.

But since there is not ( currently ) any recursion, and the routine is mostly linear, any looping must occur outside this routine.

--
TTTATCGGTCGTTATATAGATGTTTGCA