NaN boxing
Enfiar ponteiros, inteiros e tags de tipo nos bits que um número de ponto flutuante não usa quando representa um not-a-number. Quase todo runtime dinâmico rápido faz isso.
Um double tem um conjunto enorme de padrões de bits que significam not-a-number: expoente todo em uns e mantissa diferente de zero. Sobram cerca de cinquenta e dois bits livres por valor e, como um ponteiro na prática usa só quarenta e oito, cabem tanto o ponteiro quanto a tag de tipo com folga. O ganho é que todo valor da linguagem tem exatamente oito bytes, que um float é guardado direto, sem alocação no heap, e que a checagem de tipo custa poucas instruções de máquina. Os custos: o código se enche de máscaras e deslocamentos, a depuração fica desagradável e a premissa dos quarenta e oito bits não é eterna, já que sistemas com tabelas de páginas mais profundas podem entregar endereços que não cabem mais, o que normalmente se resolve forçando as alocações para a memória baixa.