If the relevant code were just sitting there naked in your site manifest, I think you'd probably see a fairly simple parse-order dependency -- I think it's the fact that they're in defined types that's shifting things around. Actually, one of the core team surprised me the other week by telling me that defined types are somehow late-binding when creating their resources, in a way that classes aren't; I can't remember why they thought it had been implemented that way, though.
The point is, this is EXACTLY why we say to not use `defined()` like that, is because it can cause havoc for downstream users like you. I'm afraid you're going to have to fork b::b and go in and muck with its implementation if you want any certainty around this behavior. -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.