import cpp from Expr e, string pure, string impure, string globalimpure where if e.isPure() then pure = "isPure" else pure = "" and if e.mayBeImpure() then impure = "mayBeImpure" else impure = "" and if e.mayBeGloballyImpure() then globalimpure = "mayBeGloballyImpure" else globalimpure = "" select e, pure, impure, globalimpure