Is it because the random is pure? It will return a different value for the second branch and the set won’t it?