Select now uses decltype to deduce TResult, caller no longer has to provide it explicitly