./53>
Oui je suis d'accord que ce n'est pas vraiment un problème au niveau sécurité (si ça foire, y a des chances qu'on ait droit à une erreur), mais par contre le fait que les définitions doivent impérativement se faire dans l'ordre est très chiant, surtout en cas de références croisées...
(let f x =
...
let x1 x =
...
module x2 =
...
let x3 x =
...
type x4 = ...
...
let g y =
...)
(et le tout éventuellement sur plusieurs fichiers si on veut s'amuser

)
s'il y a des références dans g à x42 (qui lui-même a besoin des autres x41 & co), et que je veux rajouter dans f une référence à g, je suis bien dans la merde... soit je passe tout en let...and (très chiant, et je sais même pas si c possible de mélanger les différents types de déclarations entre eux), soit je suis obligé de faire un prototype comme en C

(et ça, ça devient vite très chiant... tellement qu'ils ont fait un parsing en plusieurs passes en C++ alors que ça complique les choses, surtout pour un langage lourd comme C++)