Clément Blaudeau

Results 48 comments of Clément Blaudeau

Its interesting also because it would disambiguate between : ```ocaml module F1 (Y : sig module type A module X : A end) = X module F2 (Y : sig...

Oups actually explicit strengthening `A with Y.X` would fix only the first case (`F1`). In the second one, the link with the argument `Y.X` should be lost.

Could it be achieved with `A with F2(Y)` ? Assuming you know the name of the functor (which is not always the case)

Overall, I think it is a nice addition to the module system, even if some of its use-cases might be partially overtaken by transparent ascription in the future. It is...

If I understand correctly, `include functor` for modules (not for signatures) is needed when the functor does not re-export its parameter. I.e, the pattern ```ocaml module F = functor (Y:S)...

It can save `T` by doing a functor call directly on the unnamed structure. To be more precise: What I had in mind was some new construct to mark functor...

Actually a key issue with the *re-export* pattern I was suggesting is that the functor can only re-export the field indicated in its parameter signature, which seems much more restricted...

The problem is still there in 5.3. It comes from a weird interaction of avoidance and type constraints. The example can be somewhat simplified to: ```ocaml module F (Y :...

Ok it turns out to be not related to avoidance, but more to the handling of type constraints ? This minimized example makes my top-level `ocaml` fail : ```ocaml type...

I think so ? A bit more investigation with @samsa1 revealed that it is probably not linked to levels, but to a side effect in the `expand_head` function in `ctype.ml`...