Interesting points, but consider that, from http://www.devco.net/archives/2012/12/13/simple-puppet-module-structure-redux.php (which actually is a pattern I don't like so much, if not for some cases) modules around are using more install than package are the name for the class that installs a package.
Also I think that referring to a provider that is not really a provider (netinstall) leads to confusion.
Also, as a side note, I don't like the idea of having params for subclasses that are tied (and may be included) to the main class, but that's now something I'd enforce in the naming standards, so, the $ensure would be referred to the whole class and there it makes more sense, imho.


Please give your advice also on the other outstanding points, what do you think about these other open alternatives:
package (package_name?) (1)
file (file_path? config_file? config?) (1)
file_source (source? config_file_source? config_source?)
file_template (template? config_file_template? config_template?...)