companion_cube changed the topic of #ocaml to: Discussion about the OCaml programming language | http://www.ocaml.org | OCaml 5.0 released(!!1!): https://ocaml.org/releases/5.0.0.html | Try OCaml in your browser: https://try.ocamlpro.com | Public channel logs at https://libera.irclog.whitequark.org/ocaml/
waleee has quit [Ping timeout: 256 seconds]
dnh_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<discocaml> <hockletock> looks like `assert%lwt` in place of `assert` and `[%lwt raise e]` instead of `raise e`
dnh has joined #ocaml
dnh has quit [Ping timeout: 255 seconds]
<dh`> that's not compositional and won't work in my context
<companion_cube> Hopefully we all move to eio or similar soon, so that this may not be an issue anymore
Tuplanolla has quit [Quit: Leaving.]
<dh`> on another topic, my first request for trying to write non-compiler code in ocaml would be: syntactic sugar for returning a value early from a function
<discocaml> <hockletock> isn't that an Effect use case?
<dh`> maybe but that sounds far more elaborate than necessary
<dh`> it's just syntax
<discocaml> <hockletock> you mean like "return x"?
<dh`> yes
<dh`> let f = match a with | B -> return c | D -> e in g becomes match a with | B -> c | D -> let f = e in g, modulo variable capture silliness
<dh`> and you want a slightly more advanced substitution to avoid duplicating code wildly but it still isn't hard
<dh`> in particular, let f' = match a with B -> Now c | D -> Continue e in match f' with Now c -> c | Continue e -> let f = e in g
edr has quit [Quit: Leaving]
terrorjack has quit [Quit: The Lounge - https://thelounge.chat]
terrorjack has joined #ocaml
kurfen has joined #ocaml
kurfen_ has quit [Ping timeout: 276 seconds]
bartholin has joined #ocaml
<companion_cube> dh`: oh I wish
<dh`> yeah
<dh`> like, _the_ worst thing is how checking errors at every step increases the indent
nmz has joined #ocaml
bartholin has quit [Quit: Leaving]
trev has joined #ocaml
nmz has left #ocaml [Ploop]
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
Serpent7776 has joined #ocaml
xd1le has joined #ocaml
dnh has joined #ocaml
dnh has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
dnh has joined #ocaml
dnh has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
dnh has joined #ocaml
azimut has quit [Ping timeout: 240 seconds]
dhil has joined #ocaml
Tuplanolla has joined #ocaml
anpad has quit [Quit: ZNC 1.8.2 - https://znc.in]
anpad has joined #ocaml
alexherbo2 has joined #ocaml
alexherbo2 has quit [Remote host closed the connection]
<reynir> if I have a .mli with: type t module Foo : sig type t val t_of_outer_t : t -> t end
<reynir> ^ so I want to refer to the outer type t but it is shadowed. What's a nice way to go about this?
<reynir> I know I can define in module Foo a type outer_t = t before defining type t
alexherbo2 has joined #ocaml
<reynir> ok I went with type t module T : sig type nonrec t = t end module Foo : sig type t val t_of_outer_t : T.t -> t end
tremon has joined #ocaml
xd1le has quit [Quit: xd1le]
alexherbo2 has quit [Remote host closed the connection]
<discocaml> <leviroth> You can also do `sig type outer := t` which lets you use `outer` as an alias in your signature without actually exposing the alias for users of the module. See https://v2.ocaml.org/manual/signaturesubstitution.html#ss%3Adestructive-substitution
waleee has joined #ocaml
edr has joined #ocaml
azimut has joined #ocaml
waleee has quit [Ping timeout: 255 seconds]
azimut has quit [Ping timeout: 240 seconds]
rgrinberg has joined #ocaml
bartholin has joined #ocaml
waleee has joined #ocaml
dnh has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
trev has quit [Quit: trev]
szkl has quit [Quit: Connection closed for inactivity]
dnh has joined #ocaml
alexherbo2 has joined #ocaml
bartholin has quit [Quit: Leaving]
cedric has joined #ocaml
cimento has joined #ocaml
cedric has quit [Client Quit]
dnh has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Serpent7776 has quit [Ping timeout: 256 seconds]
dnh has joined #ocaml
<xenu> /w 3
darchitect has joined #ocaml
<darchitect> is there anyone here who experimented with Gemini for generating implementations for type signatures + comments?
<darchitect> I tried with bard and it's not that great yet
dhil has quit [Ping timeout: 246 seconds]
<discocaml> <Kali> whatever gemini model they're using for bard now is barely any better than whatever bard used to be
<discocaml> <Kali> i tried it out and it just spits out nonsense and syntax error after syntax error
<discocaml> <Kali> if the biggest gemini model is as good as google claims, then maybe there's some potential in the future, but it's not accessible yet and what we have now cannot even do intermediate coding tasks with significant user help
<discocaml> <Kali> in short, it's not ready yet, and may not ever be ready
<discocaml> <Kali> google has been consistently putting out low-quality llms with promises of it getting better on some arbitrary benchmarks when they're still basically just as faulty for actual use cases as before
dnh has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<discocaml> <Kali> particularly egregious were the new videos showcasing gemini's capabilities (which was extremely edited and misleading in the impressive cases, and almost hilariously bad in the others)
<discocaml> <Kali> i digress; this channel is for ocaml
azimut has joined #ocaml
mal`` has quit [Quit: Leaving]
mal`` has joined #ocaml
tremon has quit [Quit: getting boxed in]