import LIB/default.lm; (declare-simple-instruction-alias-binop-64( do-sub 'subq U64 )); g1 := 1_u64; g2 := 2_u64; f := λ(: l U64)(: r U64). (: ( (+( l r )) ) U64); main := λ. (: ( (let l1 1_u64) (let l2 2_u64) # L Constant (print(do-sub( 2_u64 1_u64 ))) (print(do-sub( 2_u64 l1 ))) (print(do-sub( 2_u64 g1 ))) (print(do-sub( 2_u64 (f( 1_u64 0_u64 )) ))) # L LocalVariable (print(do-sub( l2 1_u64 ))) (print(do-sub( l2 l1 ))) (print(do-sub( l2 g1 ))) (print(do-sub( l2 (f( 1_u64 0_u64 )) ))) # L GlobalVariable (print(do-sub( g2 1_u64 ))) (print(do-sub( g2 l1 ))) (print(do-sub( g2 g1 ))) (print(do-sub( g2 (f( 1_u64 0_u64 )) ))) # L Reg64 (print(do-sub( (f( 1_u64 1_u64 )) 1_u64 ))) (print(do-sub( (f( 1_u64 1_u64 )) l1 ))) (print(do-sub( (f( 1_u64 1_u64 )) g1 ))) (print(do-sub( (f( l1 l1 )) (f( l1 0_u64 )) ))) ) Nil);