Andrey Semashev wrote:
Also, IMHO, it's better to have libraries more focused and fine grained.
Why not have `expected` as a separate library?
expected is basically a variant, with a slightly different
interface.
To expand on that a bit... to implement expected you need an
underlying variant. You can either implement your own ad-hoc one, which is a
duplication of work; or you could use an existing variant, but then you
inherit its properties and have to reflect those in the specification of
`expected`. For instance, if the variant can be valueless, you need to
figure out what to do in `expected` when it gets into that state.
For those reasons, it makes most sense to develop `variant` and `expected`
in parallel, as parts of the same library.