λ> :type EitherIO
EitherIO :: IO (Either e a) -> EitherIO e a
λ> :type runEitherIO
runEitherIO :: EitherIO e a -> IO (Either e a)
So already we have a way to go between our own type and the combination we used previously! That's gotta be useful somehow.
People say this sort of thing a lot, but it strikes me as unhelpful. The stigma against seeking help for mental health exists and is real, whether you think it's absurd or not. And that stigma often exists in the very people who need help, so just saying "oh you're being silly" is super not empathetic. It's actually not that different from the founder you mention.
Furthermore, 5 separate doctors will all concur that my arm is broken. But they will not concur that I have schizophrenia, or borderline personality disorder, or whatever. There are a number of reasons why that is, but my point is that none of this is as cut-and-dried as a fracture -- not the diagnosis, not the treatment, not the patient's acceptance that something is wrong.