Note the error is basically something you'd encounter here as well: proc x(): int = echo "Something" return 5 x() Run
This will not compile because nim will throw the same error as you got. The reasoning is: If you call a proc that returns an output, the **vast majority** 99% of the time you actually want the value of that output. Ignoring that output is _typically_ a user-error. For the cases where it isn't, you have `discard` so you can explicitly say "I only want to execute this proc, I don't care for the output". So to make the example above work, you'd need to explicitly discard the return from x(): proc x(): int = echo "Something" return 5 discard x() Run