I just noticed that typeof(:true) == Bool. I was expecting it to be Symbol.
I am fine with that, but was expecting that eval(symbol("true")) == true,
but the actual symbol("true") (as opposed to :true) does not mean anything.
This seems akin to the fact that typeof(:1) == Int.
My question is why are literals mapping directly to values, and not being
able to symbolised? No doubt there is a very deep reason for this! I can't
yet see why :true can't be a symbol that relates to a true literal.
