# E4106

Unknown binder in the for-loop steps. Binders in the steps must be declared in
the initialization block of the for-loop.

This error occurs when a variable name used in the update expressions (steps) of
a for-loop is not declared in the initialization block of that loop. In a
for-loop, you can only use variables in the update expressions that were
previously declared when initializing the loop.

## Erroneous example

```{literalinclude} /sources/error_codes/4106_error/top.mbt
:language: moonbit
```

## Suggestion

To fix this error, you can

- declare the variable `j` in the initialization block of the for-loop. For
  example,

```{literalinclude} /sources/error_codes/4106_fixed/top.mbt
:language: moonbit
```

- remove the variable `j` from the update expressions. For example,

```{literalinclude} /sources/error_codes/4106_fixed/top_1.mbt
:language: moonbit
```
