# File lib/facter/util/fact.rb, line 33
  def add(&block)
    raise ArgumentError, "You must pass a block to Fact<instance>.add" unless block_given?

    begin
      resolve = Facter::Util::Resolution.new(@name)

      resolve.instance_eval(&block)

      @resolves << resolve

      # Immediately sort the resolutions, so that we always have
      # a sorted list for looking up values.
      @resolves.sort! { |a, b| b.weight <=> a.weight }

      resolve
    rescue => e
      Facter.warn "Unable to add resolve for #{@name}: #{e}"
      nil
    end
  end