sqr = lambda x -> x * x; En Pexp cela donne Pcall("_=_", [Pvar(); Plambda()])
Selon où cela apparaît, c'est une erreur.
Au "top-level" d'un fichier, cela ne devrait pas donner un Pexp parce qu'un fichier n'est pas constitué d'une séquence d'expressions, mais d'une séquence de déclarations.
De même, pour
let sqr = lambda x -> x * x in sqr
qui ne devrait pas avoir de Pcall("_=_", [Pvar(); Plambda()]) dans sa représentation Pexp.
Devrais-je créer un nouveau type Lexp.Decl(Var, Lexp) pour différentier entre les deux plus facilement ?
Probablement qu'il faut corriger au niveau Pexp d'abord. Le problème pourrait venir directement de main.ml, en fait.
Stefan