ctfeInterpret is not a type of interpret. It was just a name for optimize(WANTinterpret), the name is meaningless.

ctfeSemantic is an awful hack that we should get rid of. The proper way to do it (I think) would be to use a tree walker to check purity.