protected bool is_relaxed_reg(Expression expr, Type t, Mod mod) { if (expr == null) return false; if (!is_reg(expr)) return false; if (!expr.relaxed_agree(t)) return false; if (!expr.has_mod(mod)) return false; return true; }