Hello, welcome to Dune's help macro!

Dune has two modes: interactive, and scripting.
In interactive mode, commands are interpreted in the following way:
1. If the command is an expression, it is evaluated.
2. If the result of the evaluation is an undefined symbol,
   Dune executes the program with that name.
3. If the result of the evaluation is the application of undefined symbol,
   Dune executes the program with that name, and gives it the arguments
   of the application.
4. If the result of the evaluation is a macro, Dune executes the macro
   with the argument of the current working directory.

In scripting mode, you MUST pass arguments to macros and programs explicitly.
For example, if you want to run the program `ls` with no arguments, you must
call it like so:

```
# Pass `None` to `ls`
ls ();
```

All statements in the script are also separated by semicolons.

```
echo \"Hmm!\";
if True {{
    echo \"True is True!\";
    # The last expression in a block statement does not need semicolons
    echo \"Hello, world!\"
}}
for i in 0 to 10 {{
    echo i
}}
# The last statement in a script does not require a semicolon either
echo \"Wow!\"
```
