1 private@ 2 3 type A<T> = T 4 5 fun from_slice<T> (slice : Slice<T>) : A<T> where T : Number = 6 let mut sum = 0 7 for x in slice do 8 sum += x 9 10 A sum 11 12 do 13 let f<T> (a : A<T> @vararg) = a 14 let a = f<i32> 1 2 3 15 assert a.unwrap == 6 16 17 type B = 18 let s : String 19 let a : A<u32> @vararg 20 21 do 22 let b = B "s" 1 2 3 23 assert b.s == "s" && b.a.unwrap == 6 24