NaN-boxing
Pointers, gehele getallen en typetags onderbrengen in de bits die een kommagetal ongebruikt laat wanneer het een not-a-number voorstelt. Vrijwel elke snelle dynamisch getypeerde runtime doet het.
Een double-precision float kent een enorme verzameling bitpatronen die allemaal not-a-number betekenen: exponent louter enen en een mantisse die niet nul is. Dat laat grofweg tweeënvijftig vrije bits per waarde over, en omdat een pointer in de praktijk maar achtenveertig bits gebruikt, passen een pointer en een typetag er ruim in. Het voordeel is dat elke waarde in de taal precies acht bytes beslaat, dat een float direct wordt opgeslagen zonder heapallocatie en dat een typecontrole een paar machine-instructies kost. De nadelen: de code raakt vol maskers en shifts, debuggen wordt onaangenaam, en de aanname van achtenveertig bits is niet eeuwig. Systemen met diepere paginatabellen kunnen adressen uitdelen die niet meer passen, wat meestal wordt opgevangen door allocaties in het lage geheugen af te dwingen.