Why are you expecting value to be really Hash? Have you ever heard of "Duck typing"?
There are different kinds of hashes, some of them support order, some enable keys to be string or symbol, but they are still hashes.
The same regarding Arrays. Actually File behaves exactly like Array, so why would you disable it?