TypeScript is not able to understand that T & DepSafe is an "object type", and so using an element of an array obtained from Values.toArray in contexts such as a spread expression are disallowed. E.g. {...(vals.toArray()[0], k: v} is a type error and needs a cast. Is there anything to do to help tsc?