Skip to main content
Version: 4.4.0

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

Leo always passes expressions by value. Thus, it copies expression values when they are function inputs or appear on the right side of assignments.