La norme Common Lisp exige l'existence de plusieurs types de nombres : les ratios, les entiers et les complexes.
La norme Scheme est plus laxiste. Une implémentation Scheme peut être conforme sans entiers et sans ratios.
Pour le programmeur Scheme, cela pose des problèmes de portabilité. On ne peut pas miser sur ces fonctionnalités.
La solution habituelle en Scheme est de n'utiliser qu'une seule implémentation avec l'ensemble de ses extensions. Ceci permet aussi d'utiliser des fonctionnalités comme la programmation orientée-objets.
Mais, choisir une seule implémentation pose un problème de pérennité. Le coût peut être considérable si une implémentation arrête d'être maintenue.