"the smart thing to do is to give integers zeros as their tag bits, because then, adding or subtracting two shifted integers remains a plain add or sub machine instruction"
this is brilliant, love it. stealing this idea immediately.
Ocalm also has 63bit integers in case you want other implementations in the wild.
Ocalm also has 63bit integers in case you want other implementations in the wild.