Allows to list element of a “stack” value (structure, array, map, tuple) Unstacking is always done in a binding match context. The unstack is done in order.

lstruct := {{*a: 42, *b: 18, *c: 31}}
arr := [2, 4, 6, 8]

f(arr...) // ko, arr.Length is not const+ so it may throw
// <=> f(arr.At(0), arr.At(1), arr.At(2), etc...)
f(arr!...) // ok
// <=> f(arr.At!(0), arr.At!(1), ...) <=> f(arr[0], arr[1], ...)
f(arr?...) // ko, impossible to let the incertitude in an unstack bind

arr := [2, 4, 6, 8] as+ [4]int // ok, dont in compile time
f(arr...) // ok, arr.Length is const+, so is arr.At(int)