Error message
In the message, %s marks a value that the engine fills in when it raises the error.
The story
Your project separates declaring from executing, and one of your call files broke the deal. Here is the arrangement. Files marked declare are where you define things: functions, modules, types. Files marked call are where you run things. A call file executes only what has already been declared. It declares nothing itself. So if a call file contains a fn, a module, or a type declaration, the engine refuses it. The message shows the offending declaration. Think of a restaurant with a clear split: the kitchen cooks, and the waiters serve. If a waiter starts cooking at the table, the whole system loses its shape. The benefit of this split is that you always know where to look. To find a definition, open the declare files. To find what actually happens, open the call files. The fix is simple. Move the declaration into a declare file, and keep the call file for calling. Each file does one job, and the project stays easy to read.
Text from the Rush engine's error catalogue.
