L'implémentation la plus simple utilise une liste doublement chaînée (voir section 23.3.1). La voici :
double-file.lisp
Comme pour la file simple, cette implémentation n'est pas très économique. Elle utilise une structure pour chaque élément, ce qui donne un surcoût d'au moins deux pointeurs (probablement plus) par élément. Elle a aussi le même inconvénient par rapport au ramasse-miettes.
Le vecteur avec trou (voir section 23.3.4) peut encore améliorer la situation.