Don't the tuples with named values do that for you?
(string first, string middle, string last) LookupName(long id) (string first, string middle, string last) LookupName(long id)