Bools surfacing

So there's the Best Practice Software Engineering Design Pattern Boolean Blindness: Instead of returning useful things that can be used we often just go like yes-or-no.

I think of Parse, don’t validate as something along the same lines. There's some stuff in chapter 6 of Domain Modeling Made Functional as well.

Anyway I think one fun thing is: When you're using a piece of software, and there's a bit of bad user experience like a vague and uninformative message box, and you know: A boolean value was computed in the depths, it has floated up through some layers, and here it is in the form of an error message listing a number of things that could have caused this value to be false. "Such and such did not succeed for one or more of the following reasons: This thing, or that thing, or this other thing, or something else, ..."

(I think the list of possible reasons shown to the user is probably a little more likely to be up to date than a comment typically is, but not like a lot more likely.)