record MyInt (value:Int);
// delegate any function called with a MyInt to be called on its Int value
[F] overload F(x:MyInt) = ..F(x.value);
where `..` must be used to extract multiple values in a single-value context. This could easily avoided using tuples.The only advantage of Matlab-style multiple values is that they allow a kind of return-value type overloading, i.e. some Matlab functions perform less work if you don't only consume 1 return value. But I believe that this could be easily solved with a first-class code pattern.