This still depends on the key in `confine :key => :value` being a fact that has a value (https://github.com/dalen/facter/blob/55fd374495519aa3a268800d59af29ddb64f54c6/lib/facter/util/confine.rb#L32). This means the following would return false:

<pre>
confine => :true do
  true
end
</pre>

In Puppet, there's the `:confine :true => block` syntax, as follows:

<pre>
   confine :true => begin
      rpm('--version')
      rescue Puppet::ExecutionFailure
        false
      else
        true
      end
</pre>

Do we want to match that sort of syntax?

Alternately, what if the confine accepted a block, like so:

<pre>
confine do
  # ensure this fact will work
end
</pre>

This would be functionally equivalent to `confine :true => block` but might be a little simpler.

Thoughts on all of this?