let rec _Modification_Param ce_parametre liste_constr rang =
  match ce_parametre with
    Parametre(nomModule, id, Inconnu, sonRang) -> 
      (match liste_constr with
        [] -> raise Cas_impossible
      | cet_element::liste_restante -> 
          (match rang with 
            1 -> (match cet_element with
              Varia(_, sonType) -> 
                if sonType = Inconnu 
                then
                  (Parametre(nomModule, id, sonType, sonRang), false)
                else 
                  (Parametre(nomModule, id, sonType, sonRang), true)            
            | Binaire(_) -> 
                (Parametre(nomModule, id, Boolean, sonRang), true
            | Construct(_) -> 
                raise Cas_impossible
            | Unaire(_) -> 
                (Parametre(nomModule, id, Boolean, sonRang), true
            | Case(_) -> 
                raise Cas_impossible
            | Num(_) -> 
                (Parametre(nomModule, id, Boolean, sonRang), true)
            | Chaine(_) -> 
                (Parametre(nomModule, id, Enum([Chaine("")]), sonRang),true)
            | NotDet(_) -> 
                raise Cas_impossible
            | Ensemble(_) -> 
              raise Cas_impossible)
                | _ -> 
              _Modification_Param ce_parametre liste_restante (rang-1)))
  | Parametre(_) -> 
      raise MAUVAIS_PASSAGE_DE_PARAMETRES
  | Autre(_) -> 
      raise MAUVAIS_PASSAGE_DE_PARAMETRES