Is it fair to think of IDEs that include language-specific refactoring capabilities as a providing a developer abstraction over AST editing?