On voudrait faire rentrer la fonction "resolve" dans le serveur en faisant de "convert" une opération du module (L: LANG) qui est passée en argument à MultiEq.
Ça coince parce que le type de convert dépend de Deep.t, où Deep.t est défini comme MakeDeep(ME), où ME est le résultat de MultiEq.Make: on ne peut pas ajouter à l'entrée de MultiEq.Make un type qui dépend de sa sortie.
Idée, faire en deux étages:
MultiEq.MakeStructure, le MultiEq.Make actuel
ensuite MultiEq.MakeResolve, qui est paramétré par un type "deep" construit sur MakeStructure, et qui contient la logique de resolve
On voudrait faire rentrer la fonction "resolve" dans le serveur en faisant de "convert" une opération du module (L: LANG) qui est passée en argument à MultiEq.
Ça coince parce que le type de convert dépend de `Deep.t`, où `Deep.t` est défini comme `MakeDeep(ME)`, où `ME` est le résultat de `MultiEq.Make`: on ne peut pas ajouter à l'entrée de MultiEq.Make un type qui dépend de sa sortie.
Idée, faire en deux étages:
- `MultiEq.MakeStructure`, le `MultiEq.Make` actuel
- ensuite `MultiEq.MakeResolve`, qui est paramétré par un type "deep" construit sur MakeStructure, et qui contient la logique de `resolve`
On voudrait faire rentrer la fonction "resolve" dans le serveur en faisant de "convert" une opération du module (L: LANG) qui est passée en argument à MultiEq.
Ça coince parce que le type de convert dépend de
Deep.t
, oùDeep.t
est défini commeMakeDeep(ME)
, oùME
est le résultat deMultiEq.Make
: on ne peut pas ajouter à l'entrée de MultiEq.Make un type qui dépend de sa sortie.Idée, faire en deux étages:
MultiEq.MakeStructure
, leMultiEq.Make
actuelMultiEq.MakeResolve
, qui est paramétré par un type "deep" construit sur MakeStructure, et qui contient la logique deresolve
on a peut-être besoin d'un truc du genre (currification)