type couleur = Pique | Trefle | Coeur | Carreau;; type carte = Roi of couleur | Dame of couleur | Cavalier of couleur | Valet of couleur | Petite of int * couleur | Atout of int | Excuse;; let suite_carte x = let rec suite i l = function |0 -> l |y -> (Petite (y, i)) :: (suite i l (y - 1)) in (Roi x)::(Dame x):: (Cavalier x) :: (Valet x) :: (suite x [] 10);; let conv_couleur = function |Pique -> "Pique" |Coeur -> "Coeur" |Carreau -> "Carreau" |Trefle -> "Trefle";; let conv_carte = function |(Roi x) -> "Roi de "^(conv_couleur x) |(Dame x) -> "Dame de "^(conv_couleur x) |(Cavalier x) -> "Cavalier de "^(conv_couleur x) |(Valet x) -> "Valet de "^(conv_couleur x) |(Petite (i, x)) -> (string_of_int i)^" de "^(conv_couleur x) |(Atout i) -> (string_of_int i)^" d'atout" |(Excuse) -> "Excuse";; type int_or_float = F of float | I of int;; let convEIF x = I x;; let convEIF x = F x;; type int_or_char_list = |Nil |Int_add of int * int_or_char_list |Char_add of char * int_or_char_list;;