"Given a function with a single parameter of tuple type `[P1, P2, ..., Pn]`, return a function with multiple parameters of type `P1`, `P2`, ..., `Pn`. That is, if `fun` has type `W([X,Y,Z])` then `flatten(fun)` has type `W(X,Y,Z)`." see(`function unflatten`) shared native Callable<Return,Args> flatten<Return,Args>(Return tupleFunction(Args tuple)) given Args satisfies Anything[]; "Given a function with parameter types `P1`, `P2`, ..., `Pn`, return a function with a single parameter of tuple type `[P1, P2, ..., Pn]`. That is, if `fun` has type `W(X,Y,Z)` then `unflatten(fun)` has type `W([X,Y,Z])`." see(`function flatten`) shared native Return unflatten<Return,Args>(Callable<Return,Args> flatFunction)(Args args) given Args satisfies Anything[];