I'm writing a NIF-based circular array library and experiencing a strange behaviour of atoms in there. I have a NIF that should return an atom. It's fairly simple, but I get different atoms when calling this NIF from different places. Here is an issue with quite comprehensive explanation, please take a look at it at github: <a href="https://github.com/band115/ecirca/issues/31">https://github.com/band115/ecirca/issues/31</a> I've tried to compare atoms that are returned by printf'ing them, but they seems identical in despite of obvious difference in shell.