The Main Function
The entry point of any Flix program is the main
function which must have the
signature:
def main(): Unit \ IO
That is, the main
function:
- must return
Unit
, and - must be marked as effectful (i.e. have the effect annotation
\ IO
).
The signature of main
does not specify any arguments, but the command line
arguments passed to the program can be accessed by calling
Environment.getArgs()
:
def main(): Unit \ IO =
let args = Environment.getArgs();
...
Flix requires main
to have the IO
effect. If main was pure there would be no
reason to run the program. Typically the effectful requirement is satisfied
because main
prints to the console or has another side-effect.