> What's funny about your example is that using a set in that situation would be an example of premature optimization. If your entire list of receipts fits into memory users won't notice a difference between a list and a set.
That's completely untrue if you're running this check often enough.
That's completely untrue if you're running this check often enough.