support $!x as lvalue