Boost logo

Boost :

Subject: Re: [boost] Monad
From: Thomas Heller (thom.heller_at_[hidden])
Date: 2015-08-27 05:40:48

On 08/27/2015 04:43 AM, Niall Douglas wrote:
> On 26 Aug 2015 at 5:57, 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.
> Choice between the pan and the fire.
>> 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.
> That's exactly what it does. It's a framework for creating bespoke
> future and monad types. You define your policy implementations
> classes and feed them to basic_monad<Policy> or basic_future<Policy>
> as needed. The library itself provides three monad specialisations
> and six future specialisations by stamping out the nine policies for
> each of those.
> The idea is that no one ever need implement the Concurrency TS
> themselves ever again. Just pick up a copy of Boost.Monad/Outcome.
> Write your policy class for your custom variant. Profit.

Why not just call what it is? Future or FutureFactory or LightweightFuture?

> Niall
> _______________________________________________
> Unsubscribe & other changes:

Thomas Heller
Friedrich-Alexander-Universität Erlangen-Nürnberg
Department Informatik - Lehrstuhl Rechnerarchitektur
Martensstr. 3
91058 Erlangen
Tel.: 09131/85-27018
Fax:  09131/85-27912
Email: thomas.heller_at_[hidden]

Boost list run by bdawes at, gregod at, cpdaniel at, john at