Docs menu

E025: That module function exists, but not for the arguments you gave it

What compiler error E025 means, and how to fix it.

Turf found the function you’re calling – the name is right – but none of its declared versions accept the arguments you passed. Some functions in Turf have more than one version (called overloads) so they can work with different types, and this error means none of those versions match what you gave it.

Example
math::abs(true);

math::abs exists, but it only knows how to take an int or a double – there’s no version that accepts a bool. Turf tells you it found abs, just not one that fits a boolean argument.

Example
math::abs(-5);      // works -- matches the int versionmath::abs(-5.0);     // works -- matches the double version

If this happens to you, the fix is almost always to double check what type you’re actually passing, and either pass a value of a type the function really supports, or convert your value first:

Example
mut flag: bool = true;mut as_number: int = 1;   // convert however makes sense for your casemath::abs(as_number);

One small syntax reminder while you’re here: module functions are always called with ::, like math::abs(...), never with a dot like math.abs(...) – a dot is only for accessing fields and methods on a struct instance you’re holding, not for module functions.

Run turf --explain E025 in a terminal to read this again.

Last updated: Oct 15, 2026Edit this page on GitHub

Esc

Type to search.