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
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]
If it is a Failure it will return a new Failure with the provided value