rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
xd1le has quit [Quit: xd1le]
rgrinberg has joined #ocaml
azimut has quit [Ping timeout: 240 seconds]
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
meritamen has quit [Remote host closed the connection]
rgrinberg has joined #ocaml
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
meritamen has joined #ocaml
rgrinberg has joined #ocaml
trev has joined #ocaml
pi3ce has joined #ocaml
famubu has quit [Quit: leaving]
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
cr1901 has quit [Ping timeout: 245 seconds]
cr1901 has joined #ocaml
rgrinberg has joined #ocaml
rgrinberg has quit [Client Quit]
waleee has quit [Ping timeout: 252 seconds]
Serpent7776 has joined #ocaml
rgrinberg has joined #ocaml
hexology has quit [Quit: hex on you ...]
pi3ce has quit [Quit: No Ping reply in 180 seconds.]
pi3ce has joined #ocaml
bartholin has joined #ocaml
dnaq has quit [Remote host closed the connection]
dnaq has joined #ocaml
olle has joined #ocaml
dnaq has quit [Remote host closed the connection]
dnaq has joined #ocaml
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
rgrinberg has joined #ocaml
bartholin has quit [Quit: Leaving]
azimut has joined #ocaml
a51 has quit [Ping timeout: 245 seconds]
olle has quit [Quit: leaving]
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
neiluj has joined #ocaml
Tuplanolla has joined #ocaml
meritamen has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
meritamen has joined #ocaml
meritamen has quit [Remote host closed the connection]
<discocaml>
<JM> If you are using ocamlformat, it should remove the unnecessary parens for you. So while you are still learning, you can be generous with parens and let the tool guide you to the "proper" level of parens.
<reynir>
I find that ocamlformat sometimes adds unnecessary parens. That may be the configuration though (I don't know)
<theblatte>
it adds some that are considered non-obvious
meritamen has joined #ocaml
<discocaml>
<deepspacejohn> Running ocamlformat will also make it more clear when you forgot to use parens, for example by re-indenting code
Anarchos has joined #ocaml
Anarchos has quit [Quit: Vision[]: i've been blurred!]
alexherbo2 has joined #ocaml
yewscion has joined #ocaml
omegatron has joined #ocaml
yewscion has quit [Remote host closed the connection]
<neiluj>
Hi! what would be the closest equivalent to ocaml's functors in rust?
<companion_cube>
nothing, no equivalen
<companion_cube>
t
<neiluj>
sad, it's so handy, I can write code that depends on an abstract interface and instantiate it with whatever instance of that interface
<neiluj>
that's so handy
<neiluj>
thanks!
<Armael>
you'd do that with traits in rust
<Armael>
afaik
<companion_cube>
you wouldn't do it to the same scale though
<companion_cube>
same as functors not being a valid replacement for typeclasses
<neiluj>
well my understanding of trait is that they are a collection of function signatures to implement for each data type
<neiluj>
but you cannot write code that depends on a trait?
<neiluj>
oh
<companion_cube>
oh for sure, but it scales differently
<companion_cube>
using traits for the equivalent of ocamlgraph is kind of ugly
<companion_cube>
using functors for the equivalent of `Clone` is ugly
<neiluj>
yes you can, with functions generic over traits?
<neiluj>
why ugly?
<companion_cube>
cause you have to repeat the constraints in many places
<Armael>
the ergonomics are different but they both serve the purpose of writing generic code, that can be instantiated several times
<companion_cube>
sadly rust doesn't give you a block like `impl<T:X, U:Y> { … }` not attached to a particular type
<neiluj>
I see, thanks again!
<companion_cube>
the ergonomics are _very_ different, since functors can be instantiated however you want, but explicitly; and traits can be instantiated only once per type, but implicitly
rage has left #ocaml [#ocaml]
a51 has joined #ocaml
alexherbo2 has quit [Remote host closed the connection]
szkl has quit [Quit: Connection closed for inactivity]
alexherbo2 has joined #ocaml
neiluj has quit [Quit: neiluj]
a51 has quit [Quit: WeeChat 4.1.2]
waleee has joined #ocaml
meritamen has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Serpent7776 has quit [Ping timeout: 276 seconds]
a51 has joined #ocaml
bartholin has joined #ocaml
waleee has quit [Ping timeout: 256 seconds]
rgrinberg has joined #ocaml
<discocaml>
<aspizu> i like how the first thing i see here is the mention of Rust
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
rgrinberg has joined #ocaml
ansiwen has quit [Ping timeout: 276 seconds]
ansiwen has joined #ocaml
alexherbo2 has quit [Remote host closed the connection]
azimut has quit [Ping timeout: 240 seconds]
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
alexherbo2 has joined #ocaml
alexherbo2 has quit [Remote host closed the connection]
alexherbo2 has joined #ocaml
alexherbo2 has quit [Remote host closed the connection]
alexherbo2 has joined #ocaml
<discocaml>
<imposterishere> Lol
alexherbo2 has quit [Ping timeout: 250 seconds]
amk has quit [Remote host closed the connection]
amk has joined #ocaml
alexherbo2 has joined #ocaml
azimut has joined #ocaml
waleee has joined #ocaml
neiluj has joined #ocaml
neiluj has quit [Remote host closed the connection]
neiluj has joined #ocaml
szkl has joined #ocaml
alexherbo2 has quit [Remote host closed the connection]
azimut has quit [Remote host closed the connection]
azimut has joined #ocaml
azimut has quit [Remote host closed the connection]
azimut has joined #ocaml
trev has quit [Quit: trev]
alexherbo2 has joined #ocaml
Anarchos has joined #ocaml
oriba has joined #ocaml
alexherbo2 has quit [Remote host closed the connection]
hexology has joined #ocaml
bartholin has quit [Quit: Leaving]
cedric has joined #ocaml
Anarchos has quit [Quit: Vision[]: i've been blurred!]
cedric has quit [Quit: Konversation terminated!]
<discocaml>
<remexre> Is there an "eval bot" for Discord for OCaml?
<discocaml>
<._null._> You mean a bot to emulate a toplevel ?
<discocaml>
<remexre> yeah
<discocaml>
<._null._> Why not use a local one ?
<discocaml>
<._null._> (one: toplevel, I mean)
<discocaml>
<remexre> I'm helping to teach a course using OCaml that's using Discord in the upcoming semester; I think it'd be helpful to be able to quickly show things to students asking questions
omegatron has quit [Quit: Power is a curious thing. It can be contained, hidden, locked away, and yet it always breaks free.]
drakonis has quit [Quit: WeeChat 4.1.1]
drakonis has joined #ocaml
drakonis has quit [Quit: WeeChat 4.1.1]
drakonis has joined #ocaml
average has quit [Quit: Connection closed for inactivity]
<discocaml>
<Ada> learned lwt enough to add streaming into libcurl
<discocaml>
<froyo> there's a bot called compile that calls back to https://tio.run but the ocaml there is rather old: https://tio.run/##y09OzM35/7@gKDOvJD41LyUnMy9VIbiyWC8fJBFfllpUnJmf9/8/AA
<discocaml>
<froyo> actually there's another one that calls back to godbolt, godbolt runs ocaml 5