I would think so, but I got the same failure when exercising the code by evaluating a manifest. What happens is when `commands` is called, `@commands` is nil, so it fails. This doesn't seem to be a problem when declaring providers with `Type#provide`, because [`genclass` ends up calling `initvars`][1], but subclassing `Provider` directly doesn't go through `genclass`.

  [1]: https://github.com/puppetlabs/puppet/blob/0296941039bcdfd85beff223861faf4ff8887aae/lib/puppet/util/classgen.rb#L193