** breaking changes **
- Evaluate variant match blocks in the match() caller's context
- Variant match blocks are passed the variant's values as arguments (first argument is no longer the variant instance)
- Variant matchers no longer accept arguments for naming the variant's values; the names are determined by the block's arguments.
- Make Ruby 1.9.3 compatible
- Add
Result#+ - Alias pipe with << for left association
- Make the None convenience wrapper always return instance
- Add global convenience typdef for Success, Failure
- Add
Option#value_to_a - Add
Option#+ - Make
Nonea real monad (little impact on the real world) - Add
Either - Add
Option#value_or None#valueis now private
- Fix backwards compatibility with Ruby < 2.0.0
- Add Option
- Nest
SuccessandFailureunderResult
** breaking changes **
- Remove
Either#<< - Rename
EithertoResult - Add
Result#pipeakaResult#** - Add
Result#mapandResult#map_err
** breaking changes **
- Remove
Either.attempt_allin favor ofEither#>>andEither#>=This greatly reduces the complexity and the code necessary.
- Introduce
Either#>>andEither#>=