program main enum Reading variant Empty variant Value i32 struct Measurement field amount: i32 field label: string fn bump(value: i32) -> i32 binary + : i32 var value : i32 int 1 : i32 fn make_counts(base: i32) -> (array i32 3) array : (array i32 3) var base : i32 binary + : i32 var base : i32 int 1 : i32 binary + : i32 var base : i32 int 2 : i32 fn pick_count(values: (array i32 3)) -> i32 index : i32 var values : (array i32 3) int 1 : i32 fn make_measure(amount: i32) -> Measurement construct Measurement : Measurement field amount var amount : i32 field label string "ok" : string fn measure_amount(measure: Measurement) -> i32 field-access amount : i32 var measure : Measurement fn maybe_amount(amount: i32) -> (option i32) some : (option i32) var amount : i32 fn maybe_empty() -> (option i32) none : (option i32) fn ok_amount(amount: i32) -> (result i32 i32) ok : (result i32 i32) var amount : i32 fn err_amount(code: i32) -> (result i32 i32) err : (result i32 i32) var code : i32 fn empty_counts() -> (vec i32) call std.vec.i32.empty : (vec i32) fn reading_value(amount: i32) -> Reading enum-variant Reading.Value #1 payload : Reading var amount : i32 fn reading_score(reading: Reading) -> i32 match : i32 subject var reading : Reading arm Reading.Empty int 0 : i32 arm Reading.Value amount var amount : i32 fn main() -> i32 local let values : unit call make_counts : (array i32 3) int 40 : i32 binary + : i32 call pick_count : i32 var values : (array i32 3) call measure_amount : i32 call make_measure : Measurement int 1 : i32 test "aliases erase through arrays and structs" binary = : bool call main : i32 int 42 : i32 test "aliases erase through option result vec and enum" local let maybe : unit call maybe_amount : (option i32) int 7 : i32 local let result : unit call ok_amount : (result i32 i32) int 8 : i32 if : bool is_some : bool var maybe : (option i32) if : bool is_ok : bool var result : (result i32 i32) if : bool binary = : bool call std.vec.i32.len : i32 call empty_counts : (vec i32) int 0 : i32 binary = : bool call reading_score : i32 call reading_value : Reading int 9 : i32 int 9 : i32 bool false : bool bool false : bool bool false : bool