The Leo Language Reference
Statically Typed
Leo is a statically typed language, which means we must know the type of each variable before executing a circuit.
Leo does not support undefined or null values.  When creating a new variable, its type must be either:
- Explicitly stated using a type annotation, or
 - Automatically inferred by the compiler.
 
Pass by Value
Expressions in Leo are always passed by value, which means their values are always copied when they are used as function inputs or in right sides of assignments.