On 8/26/2015 7:57 AM, Glen Fernandes wrote:
Paul wrote:
these are all *outcomes* - of varying types of varying and unspecified Thingy.
Niall wrote:
I like Boost.Outcome and boost::outcome::basic_outcome<Policy>. Do these make sense however: outcome<T>: Can be empty/T/error_code/exception_ptr. result<T>: Can be empty/T/error_code. option<T>: Can be empty/T.
Isn't "Outcome" no less generic and unspecific as "Result"? All of Boost.Monad, Boost.Outcome, or Boost.Result, seem like terrible names to me.
We already name specific result types for the kind of result they are (I'm glad boost::optional is not boost::result). Why not name monad types for the specific kind of monad they are?
Unless this "Monad" library isn't about offering a concrete type called "boost::monad" but instead is just a library to enable someone write their own monad types.
A link to this thread should appear next to bikeshedding in the dictionary. At this point I'd change the name to Outcome just in the hopes that all the people that have made their opinions known about the name of this utility could move their focus to the library under review. For my 2cents if I can live with names like Qi Hana Spirit Wave and std::vector I think I can manage with monad as is.