Interestingly, I just made those and recompiled, etc. And what I found was:
Initially an error in the same place with the namespace issue. However I noticed the difference in the code was ONLY the:
directive in the head of the code!
It seems that I've traced this entire issue to some difference on my system (Nexcess hosting platform) with the php directive creating a problem with the compiler.
In case this is misunderstood, this is definitely a criticism of Nexcess - I love these folks and they have been incredible! It's just a notice that - apparently - there are subtle difference on different platforms where small things make a difference.
I'm not sure why, and I had thought that I understood how to create a basic module, but the problems I encountered caused me to question the basics. This is getting me back on track.
Now that I'm finding this, is there any explanation of why this small difference would cause such a large issue? Is it simply that the compiler is thrown off by the unnecessary directive?