type 'a double = Gauche of 'a * 'a double | Droite of 'a double * 'a | Vide;; let d = Droite (Gauche (1, Droite (Gauche (2, Vide), 3)), 4);;