lib/monadic/either.rb
def bind(proc=nil, &block)
      return self if failure?
      return concat(proc) if proc.is_a? Either

      begin
        Either(call(proc, block))
      rescue StandardError => error
        Failure(error)
      end
    end
def bind(proc=nil, &block)
      return self if failure?
      return concat(proc) if proc.is_a? Either

      begin
        Either(call(proc, block))
      rescue StandardError => error
        Failure(error)
      end
    end
Allows privileged access to the +Either+'s inner value from within a block.
 This block should return a +Success+ or +Failure+ itself. It will be coerced into #Either
 @return [Success, Failure]