explicit_type_simple.adl
1 program test.alpha { 2 mapping foo: u32 => u32; 3 async transition main_inner(public a: u32, b: u32) -> (u32, Future<Fn(u32)>) { 4 let c: u32 = a + b; 5 let f: Future<Fn(u32)> = finalize(1u32); 6 return (c, f); 7 } 8 9 async function finalize(a:u32) { 10 Mapping::set(foo, a, 1u32); 11 } 12 } 13 14 // --- Next Program --- // 15 16 import test.alpha; 17 program basic.alpha { 18 async transition main(public a: u32, b: u32) -> (u32, Future<Fn(u32, u32, Future<Fn(u32)>)>) { 19 let c: u32 = a + b; 20 let (d, f1): (u32, Future<Fn(u32)>) = test.alpha/main_inner(1u32, 1u32); 21 let f:Future<Fn(u32, u32, Future<Fn(u32)>)> = finalize(a, c, f1); 22 return (c,f); 23 } 24 25 async function finalize(a: u32, b:u32, f: Future<Fn(u32)>) { 26 f.await(); 27 assert_eq(a, b); 28 } 29 }