Variables accessed with the dot operator have their hashes evaluated at compile time, but those accessed with the struct accessor have to have them evaluated at runtime