Some functions, for certain arguments/values, will convert anything you give them to strings.

These include regex functions (for the string to match), such as match() and replace(), as well as regex used in given expressions, and when used to compare against a regex by functions such as any(), good(), etc.

The functions that write to standard out or standard error (write(), writeln(), writeErr(), writelnErr()) also use auto-stringification.

Auto-stringification does not affect return values. It only applies to arguments.

The join() function uses auto-stringification on each value of the array passed. This allows you to write something like the following without explicitly mapping the values to strings first.

join "|", series 1..7 # result: "1|2|3|4|5|6|7"