
This can happen due to Chef's stupid approach to loading library files, which uses Kernel#load rather than #require. Consequently a library can get loaded twice: once by Chef::RunContext#load_libraries and once by another library file which depends on it. This is also the cause of the TYPE constants being redefined.