def call(*args, &block)
      self.result = defined?(super) ? super(*args, &block) : to_proc.call(*args, &block)
    end
def call(*args, &block)
      self.result = defined?(super) ? super(*args, &block) : to_proc.call(*args, &block)
    end
calls super if defined? otherwise calls to_proc.call(*args, &block)
 @see    Proc#call
 @param  [Array] args
 @param  [Proc] block
 @return result