Out parameter unpacking would indeed be nice. I'd also like the ability to just return an "anonymous" type like so:

public { string cacheKey, object[] arguments, ... } ParseExpression(expression) { return new { cacheKey = "a", ... }; }