Pour les structures récursives infinies, Caml se contente d'afficher
les premiers niveaux, puis termine par des points de suspension
évasifs, ce qui donne pour notre triangle fétiche :
triangle : image = Node [ref (Color Blanc); ref (Node [ref (Color Blanc);
ref (Node [ref (Color Blanc);
ref (Node [ref (Color Blanc); ref (Node [ref (Color Blanc); ref (Node [ref
(Color Blanc); ref (Node [ref
(Color Blanc); ref (Node [ref (Color Blanc); ref (Node [ref (Color Blanc);
ref (Node [ref (Color Blanc);
ref (Node [ref (Color Blanc); ref (Node [ref (Color Blanc); ref (Node [ref
(Color Blanc); ref (Node [ref
(Color Blanc); ref (Node [ref (Color Blanc); ref (Node [ref (Color Blanc);
ref (Node [ref (Color ...
On a donc utilisé la fonction new_printer pour
redéfinir cet affichage. On commence tout d'abord par numéroter
toutes les variables comme pour la surface, puis les variables sont
affichées sous la forme :
no (no du 1er fils ; no du 2e fils ; ... ; no du ne fils)
Bien sûr, si le fils est Blanc ou Noir, ce n'est pas son numéro
qui est affiché mais B ou N. Ce qui donne :
triangle : image = 0 : (B; 0; N; 0);