I am surprised to see an algorithm so "unfunctional", do we really want to modify the list at each call of .epsilon? If we add a new test calling .epsilon we could exhaust the list, is that on design?