def or(value=nil, &block)
      return Failure(block.call(@value)) if failure? && block_given?
      return Failure(value) if failure?
      return self
    end
def or(value=nil, &block)
      return Failure(block.call(@value)) if failure? && block_given?
      return Failure(value) if failure?
      return self
    end
If it is a Failure it will return a new Failure with the provided value
 @return [Success, Failure]