So now that I've pulled Future out, I'm thinking about how and where to put it back in.
(I know this message is a little disjointed; I'm at the "asking for opinions" stage more than the "here's what I'm doing" stage.)
Justin, is there a lowest-common-denominator Future that RxCocoa would want? Or is it better to keep it in a LlamaFuture module? Is it problematic to put Future in LlamaCore, noting that you can import individual types to avoid contamination (I don't know how well that works in practice).
To that end, I haven't yet figured out how to have multiple modules in a way that is convenient to consume. Has anyone really tried that. My current design of Future doesn't itself rely on anything (not even Result). My current thinking was to make Future<Result> be wrapped in something else, called Task (based on the scalaz-concurrent naming). I'm open to other good inspirations beyond Scala and scalaz-concurrent that fit cleanly into Swift and Result.
So starting the thread. I have a working impl here that should be considered baseline. I'm looking for comments:
I still have hanging out there the idea of a Promise, which is a manually completable Future (or possibly a Task). I separate Future from Promise because "future things" that represent computations are very different from "future things" that you are going to put your own value into.