MemoCyc: This algorithm based on ISet may work but it has a sketchy race between the cycle detector and the normal return path