regarding the constants, this is more for the "vm" (and type safety). actually enums, constants and symbols can prolly be implemented more or less the same.