Suppose I am on the beach looking for shells. I am interested in finding as many different *types* of shell as possible, rather than shells themselves. Assuming $T_1, T_2, \dots$ are the types of shell $1, 2,$ etc, and $C_i = |\{T_j: j \le i\}|$ is the number of types of shells for shells $1, 2, \dots j$. How might I model $C_i$ and assuming a suitable model, when should I stop searching because the number of new shells I need to pick up to be likely to find a new types becomes very large. Is there some code to implement this. Thoughts: * I think it would make sense to represent the types of shell as some sort of power law. So we have shell types $S_1, S_2\dots$ such that $P(T=S_j) = k r^j$. Is there a more natural distribution for shell types. * We might have finite set of types $S_1, S_2, \dots S_n$ with a power law distribution. It would be nice to find the $n$ that maximizes the likehood of our observations. * I think the result for this might like inside https://en.wikipedia.org/wiki/Search_theory or https://en.wikipedia.org/wiki/Optimal_stopping.