See the changes to the website for the full rationale.
Having a policy document that explains when to use what method of error handling in LLDB will make on-boarding new community members easier and help make sense of all the different options. Let me know if there is a better location for this text and/or if you disagree with the contents!
rdar://problem/49356014
This looks like it tries to specify when Expected<T> and when Optional<T> should be used, but its not really clear to me what the distinction is.
The way I see it, both "Expected" and "Optional" can be used for "invalid input" and "functions that may fail", and the difference is whether there is a need to attach a error message or error code to explain why the failure happened.