(* On construit une instance du module Set pour le type string *) module S = Set.Make (struct type t = string let compare = compare end);; let rec variables = function Const n -> S.empty | Produit (e1, e2) -> S.union (variables e1) (variables e2) | Somme (e1, e2) -> S.union (variables e1) (variables e2) | Var x -> S.singleton x;; (* Exemple *) S.elements (variables (Somme (Var "x", ex)));; |