<discocaml>
<pitagha> thanks for bringing up the topic of the OCaml Workshop 2024!! ๐ the accepted talks for the workshop [are public](https://icfp24.sigplan.org/home/ocaml-2024#event-overview) ! so, there you can also find the one you've mentioned about ChorCaml.
<discocaml>
<pitagha> btw, before I forget: the registration for the workshops and the whole conference [is open already](https://icfp24.sigplan.org/attending/registration). thereโs currently an early bird discount, which **ends on August 3rd**
chiselfuse has quit [Ping timeout: 260 seconds]
chiselfuse has joined #ocaml
chiselfuse has quit [Remote host closed the connection]
chiselfuse has joined #ocaml
<discocaml>
<lukstafi> Why do I get this signature (in Merlin)? Names redacted. `?x:< hidden > -> (module MT with type d = 'd) -> 'd array` The function is `let f (type d) ?(x : int option) (m : (module MT with type d = d)) = ...`
<discocaml>
<lukstafi> `let f (type d) ?(x : int option) (m : (module MT with type d = d)) : d array = ...`
<discocaml>
<lukstafi> Ah, moving the type fixes it: `let f ?(x : int option) (type d) (m : (module MT with type d = d)) : d array = ...`
<discocaml>
<._null._> I can't reproduce your issue
<discocaml>
<lukstafi> It's missing some detail. The body has `let module M = (val m : Backend_type with type device = d) in ...` and then the result has type `M.device array` .
<discocaml>
<._null._> Does it print the same type with a toplevel ?
<discocaml>
<lukstafi> BTW it's just a bit curious, not a problem.
<discocaml>
<octachron> Does the `<hidden>` part disappear by moving the `(type d)` argument?
<discocaml>
<lukstafi> Yes, it becomes the correct type when `(type d)` is to the right of it.
<discocaml>
<octachron> And by the `right type`, you mean that the option type is correctly printed?
<discocaml>
<lukstafi> Trying in the toplevel was too much effort, but the funny thing persists in the auto-generated interface file: `val f : ?x:<hidden> -> (module Backend_type with type device = 'd) -> 'd array`
tomku has quit [Ping timeout: 246 seconds]
<discocaml>
<lukstafi> Also, later, `f m` doesn't work but `let module M = (val m) in f (module M)` works -- note no extra type annotations.
tomku has joined #ocaml
<discocaml>
<octachron> The two are not equivalent if `m` is packed at a different module type.
Serpent7776 has quit [Ping timeout: 252 seconds]
infinity0_ has joined #ocaml
infinity0 has quit [Ping timeout: 246 seconds]
mbuf has quit [Quit: Leaving]
chrisz_ has quit [Ping timeout: 256 seconds]
chrisz has joined #ocaml
wagle has quit [Server closed connection]
wagle has joined #ocaml
copy has quit [Server closed connection]
copy has joined #ocaml
pi3ce has quit [Quit: No Ping reply in 180 seconds.]
pi3ce has joined #ocaml
<discocaml>
<coolccat> I want to process Java bytecode using OCaml. What's the best way to do this... and would it be recomended to just use a Java library + lang instead?
bacam has quit [Quit: reboot]
ocabot has quit [Server closed connection]
bacam has joined #ocaml
ocabot has joined #ocaml
<discocaml>
<sim642> Apparently there is javalib on opam, but I haven't tried it
companion_cube has quit [Server closed connection]
companion_cube has joined #ocaml
<discocaml>
<sim642> It doesn't seem entirely dead but also not too active, so its bytecode version support might be lagging
myrkraverk_ has quit [Read error: Connection reset by peer]
myrkraverk_ has joined #ocaml
germ has quit [Server closed connection]
germ has joined #ocaml
tomku has quit [Ping timeout: 272 seconds]
tomku has joined #ocaml
pieguy128 has quit [Server closed connection]
pieguy128 has joined #ocaml
infinity0_ has quit [Remote host closed the connection]