Missunderstanding module functionality with operators?

Operators are imported and exported the same way as predicates. The test2 module only exposes test2/1. :=/2 and the two operators are only imported into test2. So, to make these operators available from the user module you should also import test into user or you should also export the operators from test2.

If you want to make stuff from multiple modules available for interactive use you’ll generally need a non-module file that imports the modules you want to have visible.