Languages extending Xbase might want to contribute to the feature scope. Besides that one can of course change the whole implementation as it seems fit there is a special hook, which can be used to add so called extension methods to existing types.
Xbase itself comes with a standard library of such extension methods adding support for various operators for the common types, such as java.lang.String, java.util.List, etc.
These extension methods are declared in separate Java classes. There are various ways how extension methods can be added. The simplest is, that the language designer predefines, which extension methods are available. This means, that language users cannot add additional library functions using this mechanism.
Another alternative is to have them looked up by a certain naming convention. Also for more general languages it is possible to let users add extension methods using imports or the like. This approach can be seen in the language Xtend2, where extension methods are lexically imported through static imports and/or dependency injection.
The precedence of extension methods is always lower than real member methods, that is you cannot override member features. Also the extension members are not invoked polymorphic. If you have two extension methods on the scope (foo(Object) and foo(String)) the expression (foo as Object).foo would bind and invoke foo(Object).