# E3003

`init` and `main` function must have no arguments and no return value.

```{note}
The case of `fn main() -> Unit` is exceptionally accepted 
and can be corrected by the formatter.
```

## Erroneous example

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

## Suggestion

Remove the argument list and return type annotation, as:

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