Dan Killebrew: >and had to implement my own prime sieve, isPrime range,< The sieve is a range, but isPrime() is just a predicate function (possibly only logically pure, to store some precedent computation), it's not a range. Bye, bearophile