germ has quit [Read error: Connection reset by peer]
germ has joined #ocaml
wickedshell has quit [Ping timeout: 276 seconds]
<dmbaturin>
yawaramin: I feel kinda bad for being the harbinger of doom, but at least the next CI failure in Windows will not come as a surprise for you. ;)
<discocaml>
<yawaramin> haha. it got even more confusing when i pushed a tag, the OCaml 4 Windows build succeeds and the OCaml 5 build fails with a curl error
myrkraverk_ has joined #ocaml
myrkraverk has quit [Ping timeout: 252 seconds]
myrkraverk has joined #ocaml
myrkraverk_ has quit [Ping timeout: 252 seconds]
pi3ce has joined #ocaml
wickedshell has joined #ocaml
myrkraverk_ has joined #ocaml
myrkraverk has quit [Ping timeout: 276 seconds]
agentcasey has joined #ocaml
patrick_ is now known as patrick
patrick has quit [Changing host]
patrick_ has joined #ocaml
<discocaml>
<cod1r> hi
<discocaml>
<aguluman> It truly is.
<discocaml>
<aguluman> Opam update takes longer than on Windows than WSL.
<discocaml>
<aguluman> Its on of those things.
<discocaml>
<aguluman> Hi cod1r
Humean has quit [Ping timeout: 260 seconds]
myrkraverk has joined #ocaml
myrkraverk_ has quit [Ping timeout: 260 seconds]
Tuplanolla has joined #ocaml
YuGiOhJCJ has joined #ocaml
bartholin has joined #ocaml
hanker has joined #ocaml
dhil has joined #ocaml
Haudegen has joined #ocaml
myrkraverk_ has joined #ocaml
myrkraverk has quit [Ping timeout: 268 seconds]
<discocaml>
<deepspacejohn> Is it possible to expose that a module is an alias through the interface? Suppose I want to have `Map.Make (String)` compatible with `Map.Make (Foo.String_Alias)`. If there's no interface then the compiler can infer that these are equivalent.
<discocaml>
<froyo> `with module`
<discocaml>
<froyo> if I understood what you were saying, that you're sealing a module with an ascription but don't want to hide this particular equality
<discocaml>
<froyo> if you mean interface as in writing an mli file by hand, you could use `module type of <the functor application>` I guess
<discocaml>
<froyo> or re-expose only the type equalities you care about e.g. `with type key = ...`
myrkraverk has joined #ocaml
myrkraverk_ has quit [Ping timeout: 268 seconds]
<discocaml>
<froyo> the reason the two maps are compatible for compatible modules is because usual functors are applicative and the compiler knows it's safe to remember the whole application path (so remember the supplied module arguments and know they're aliases). the compiler can be made to forget. without knowing exactly how you made the compiler forget it's hard for me to share the exact solution. I guess the general advice is, you could always ask the compiler
YuGiOhJCJ has quit [Ping timeout: 264 seconds]
<discocaml>
<deepspacejohn> I don't think that's what I want. Here's code to illustrate what I'm wondering: https://ocaml.org/play#code=bW9kdWxlIEFsaWFzID0gc3RydWN0CiAgbW9kdWxlIFN0cmluZyA9IFN0cmluZwplbmQKCm1vZHVsZSBBbGlhc1dpdGhJbnRlcmZhY2UgOiBzaWcKICBtb2R1bGUgU3RyaW5nIDogbW9kdWxlIHR5cGUgb2YgU3RyaW5nCmVuZCA9IHN0cnVjdAogIG1vZHVsZSBTdHJpbmcgPSBTdHJpbmcKZW5kCgptb2R1bGUgTTEgPSBNYXAuTWFrZSAoU3RyaW5nKQptb2R1bGUgTTIgPSBNYXAuTWFrZSAoQWxpYXMuU3RyaW5nKQptb2R1bGUgTTMgPSBNYXAuT
<discocaml>
<octachron> `AliasWithInterface.String` is not an alias of `String` by definition.
<discocaml>
<octachron> Since you are explicitly stating that `AliasWithInterface.String` is just a module with the same interface as `String`.
<discocaml>
<deepspacejohn> Is there a signature annotation that will expose that it’s an alias?
<discocaml>
<octachron> `module type S = sig module String = String end`
<discocaml>
<octachron> Sorry, I missed that this was the question ^
<discocaml>
<deepspacejohn> Ah, perfect! thank you. I didn't realize that syntax was valid in interfaces.