immutable has quit [Write error: Connection reset by peer]
toastal has quit [Remote host closed the connection]
philipwhite has quit [Remote host closed the connection]
patrick has quit [Remote host closed the connection]
ymherklotz has quit [Remote host closed the connection]
ohperitel has joined #ocaml
nfc has joined #ocaml
mstevens has joined #ocaml
oisota has joined #ocaml
landonf has joined #ocaml
whereiseveryone has joined #ocaml
henrytill has joined #ocaml
jakzale has joined #ocaml
seeg has joined #ocaml
ggb has joined #ocaml
_alix has joined #ocaml
pluviaq has joined #ocaml
richardhuxton has joined #ocaml
m5zs7k has joined #ocaml
energizer has joined #ocaml
b0o has joined #ocaml
sleepydog has joined #ocaml
grobe0ba has joined #ocaml
Ankhers has joined #ocaml
philipwhite has joined #ocaml
patrick has joined #ocaml
ggb_ has joined #ocaml
richardhuxton_ has joined #ocaml
pluviaq_ has joined #ocaml
patrick has quit [Changing host]
patrick has joined #ocaml
toastal has joined #ocaml
ymherklotz has joined #ocaml
_alix has quit [Read error: Connection reset by peer]
sleepydog has quit [Read error: Connection reset by peer]
whereiseveryone has quit [Max SendQ exceeded]
Ankhers has quit [Max SendQ exceeded]
pluviaq has quit [Read error: Connection reset by peer]
henrytill has quit [Read error: Connection reset by peer]
seeg has quit [Read error: Connection reset by peer]
richardhuxton has quit [Read error: Connection reset by peer]
b0o has quit [Read error: Connection reset by peer]
ggb has quit [Read error: Connection reset by peer]
jakzale has quit [Read error: Connection reset by peer]
richardhuxton_ is now known as richardhuxton
pluviaq_ is now known as pluviaq
_alix_ has joined #ocaml
_alix_ is now known as _alix
immutable has joined #ocaml
henrytill_ has joined #ocaml
ggb_ is now known as ggb
henrytill_ is now known as henrytill
whereiseveryone has joined #ocaml
jakzale has joined #ocaml
seeg has joined #ocaml
b0o has joined #ocaml
sleepydog has joined #ocaml
Ankhers has joined #ocaml
mstevens has quit [*.net *.split]
ohperitel has quit [*.net *.split]
nfc has quit [*.net *.split]
oisota has quit [*.net *.split]
m5zs7k has quit [*.net *.split]
energizer has quit [*.net *.split]
grobe0ba has quit [*.net *.split]
landonf has quit [*.net *.split]
mstevens has joined #ocaml
nfc has joined #ocaml
ohperitel has joined #ocaml
oisota has joined #ocaml
landonf has joined #ocaml
energizer has joined #ocaml
m5zs7k has joined #ocaml
grobe0ba has joined #ocaml
gwizon has joined #ocaml
gwizon has quit [*.net *.split]
amk has quit [*.net *.split]
noonien has quit [*.net *.split]
dstein64 has quit [*.net *.split]
sadiq has quit [*.net *.split]
dmbaturin has quit [*.net *.split]
towel has quit [*.net *.split]
lilata has quit [*.net *.split]
gwizon has joined #ocaml
noonien has joined #ocaml
towel has joined #ocaml
amk has joined #ocaml
sadiq has joined #ocaml
lilata has joined #ocaml
dstein64 has joined #ocaml
dmbaturin has joined #ocaml
Ekho has quit [*.net *.split]
tomku has quit [*.net *.split]
ns12 has quit [*.net *.split]
gahr has quit [*.net *.split]
Fardale has quit [*.net *.split]
vsiles has quit [*.net *.split]
ski has quit [*.net *.split]
rom1504 has quit [*.net *.split]
copy has quit [*.net *.split]
nore has quit [*.net *.split]
omni has quit [*.net *.split]
fds has quit [*.net *.split]
johnel has quit [*.net *.split]
micro has quit [*.net *.split]
bacam has quit [*.net *.split]
kronicma1 has quit [*.net *.split]
tomku has joined #ocaml
ski has joined #ocaml
omni has joined #ocaml
gahr has joined #ocaml
nore has joined #ocaml
johnel has joined #ocaml
fds has joined #ocaml
bacam has joined #ocaml
Ekho has joined #ocaml
ns12 has joined #ocaml
vsiles has joined #ocaml
copy has joined #ocaml
Fardale has joined #ocaml
rom1504 has joined #ocaml
kronicma1 has joined #ocaml
micro has joined #ocaml
Ekho has quit [*.net *.split]
tomku has quit [*.net *.split]
ns12 has quit [*.net *.split]
gahr has quit [*.net *.split]
Fardale has quit [*.net *.split]
vsiles has quit [*.net *.split]
ski has quit [*.net *.split]
rom1504 has quit [*.net *.split]
copy has quit [*.net *.split]
nore has quit [*.net *.split]
omni has quit [*.net *.split]
fds has quit [*.net *.split]
johnel has quit [*.net *.split]
micro has quit [*.net *.split]
bacam has quit [*.net *.split]
kronicma1 has quit [*.net *.split]
gwizon has quit [*.net *.split]
amk has quit [*.net *.split]
noonien has quit [*.net *.split]
dstein64 has quit [*.net *.split]
sadiq has quit [*.net *.split]
dmbaturin has quit [*.net *.split]
towel has quit [*.net *.split]
lilata has quit [*.net *.split]
mstevens has quit [*.net *.split]
ohperitel has quit [*.net *.split]
nfc has quit [*.net *.split]
oisota has quit [*.net *.split]
m5zs7k has quit [*.net *.split]
energizer has quit [*.net *.split]
grobe0ba has quit [*.net *.split]
landonf has quit [*.net *.split]
_alix has quit [*.net *.split]
toastal has quit [*.net *.split]
ymherklotz has quit [*.net *.split]
richardhuxton has quit [*.net *.split]
pluviaq has quit [*.net *.split]
gentauro has quit [*.net *.split]
berberman has quit [*.net *.split]
Ankhers has quit [*.net *.split]
sleepydog has quit [*.net *.split]
b0o has quit [*.net *.split]
jakzale has quit [*.net *.split]
seeg has quit [*.net *.split]
whereiseveryone has quit [*.net *.split]
immutable has quit [*.net *.split]
henrytill has quit [*.net *.split]
ggb has quit [*.net *.split]
philipwhite has quit [*.net *.split]
patrick has quit [*.net *.split]
chrisz has quit [*.net *.split]
wagle has quit [*.net *.split]
motherfsck has quit [*.net *.split]
dh` has quit [*.net *.split]
hackinghorn has quit [*.net *.split]
TrillionEuroNote has quit [*.net *.split]
midgard has quit [*.net *.split]
terrorjack has quit [*.net *.split]
leah2 has quit [*.net *.split]
farn has quit [*.net *.split]
Leonidas has quit [*.net *.split]
Boarders___ has quit [*.net *.split]
troydm has quit [*.net *.split]
tizoc has quit [*.net *.split]
cedb has quit [*.net *.split]
ansiwen has quit [*.net *.split]
thizanne has quit [*.net *.split]
Wojciech_K has quit [*.net *.split]
conjunctive has quit [*.net *.split]
h0rror has quit [*.net *.split]
CalimeroTeknik has quit [*.net *.split]
rwmjones has quit [*.net *.split]
reynir has quit [*.net *.split]
Soni has quit [*.net *.split]
brettgilio has quit [*.net *.split]
Absalom has quit [*.net *.split]
kitzman has quit [*.net *.split]
pukkamustard has quit [*.net *.split]
ds-ac has quit [*.net *.split]
curium has quit [*.net *.split]
rak has quit [*.net *.split]
hexology has quit [*.net *.split]
deadmarshal_ has quit [*.net *.split]
end^ has quit [*.net *.split]
czy has quit [*.net *.split]
hsw has quit [*.net *.split]
dinosaure has quit [*.net *.split]
jsoo has quit [*.net *.split]
daimrod1 has quit [*.net *.split]
JSharp has quit [*.net *.split]
greenbagels has quit [*.net *.split]
mal``` has quit [*.net *.split]
azimut has quit [*.net *.split]
sim642 has quit [*.net *.split]
John_Ivan has quit [*.net *.split]
kurfen_ has quit [*.net *.split]
adrien has quit [*.net *.split]
pippijn has quit [*.net *.split]
pieguy128 has quit [*.net *.split]
haesbaert has quit [*.net *.split]
xenu has quit [*.net *.split]
justache has quit [*.net *.split]
remexre has quit [*.net *.split]
dme2 has quit [*.net *.split]
asm has quit [*.net *.split]
companion_cube has quit [*.net *.split]
discocaml has quit [*.net *.split]
Johann_ has quit [*.net *.split]
ocabot has quit [*.net *.split]
lobo has quit [*.net *.split]
Exa has quit [*.net *.split]
lobo[m] has quit [*.net *.split]
octachron has quit [*.net *.split]
zozozo has quit [*.net *.split]
SquidDev has quit [*.net *.split]
delyan_ has quit [*.net *.split]
quernd8 has quit [*.net *.split]
jyc has quit [*.net *.split]
lisq has quit [*.net *.split]
xgqt has quit [*.net *.split]
ebb has quit [*.net *.split]
slothby has quit [*.net *.split]
welterde has quit [*.net *.split]
theblatte has quit [*.net *.split]
reynir[m] has quit [*.net *.split]
Duns_Scrotus__ has quit [*.net *.split]
caasih has quit [*.net *.split]
Riviera has quit [*.net *.split]
pgiarrusso has quit [*.net *.split]
buoy49_ has quit [*.net *.split]
mclovin has quit [*.net *.split]
zebrag[m] has quit [*.net *.split]
jmcantrell has quit [*.net *.split]
pie_ has quit [*.net *.split]
xx_lalo_xx[m] has quit [*.net *.split]
Geekingfrog has quit [*.net *.split]
Armael has quit [*.net *.split]
cbarrett has quit [*.net *.split]
czy has joined #ocaml
pie_ has joined #ocaml
rak has joined #ocaml
toastal has joined #ocaml
kronicma1 has joined #ocaml
bacam has joined #ocaml
micro has joined #ocaml
johnel has joined #ocaml
fds has joined #ocaml
omni has joined #ocaml
nore has joined #ocaml
rom1504 has joined #ocaml
copy has joined #ocaml
ski has joined #ocaml
vsiles has joined #ocaml
Fardale has joined #ocaml
gahr has joined #ocaml
ns12 has joined #ocaml
tomku has joined #ocaml
Ekho has joined #ocaml
lilata has joined #ocaml
towel has joined #ocaml
dmbaturin has joined #ocaml
dstein64 has joined #ocaml
sadiq has joined #ocaml
amk has joined #ocaml
noonien has joined #ocaml
gwizon has joined #ocaml
landonf has joined #ocaml
grobe0ba has joined #ocaml
energizer has joined #ocaml
m5zs7k has joined #ocaml
nfc has joined #ocaml
ohperitel has joined #ocaml
mstevens has joined #ocaml
oisota has joined #ocaml
lisq has joined #ocaml
zozozo has joined #ocaml
xgqt has joined #ocaml
dme2 has joined #ocaml
remexre has joined #ocaml
ebb has joined #ocaml
slothby has joined #ocaml
discocaml has joined #ocaml
companion_cube has joined #ocaml
ocabot has joined #ocaml
asm has joined #ocaml
welterde has joined #ocaml
lobo has joined #ocaml
Johann_ has joined #ocaml
caasih has joined #ocaml
Duns_Scrotus__ has joined #ocaml
Exa has joined #ocaml
Geekingfrog has joined #ocaml
Riviera has joined #ocaml
cbarrett has joined #ocaml
octachron has joined #ocaml
greenbagels has joined #ocaml
mal``` has joined #ocaml
JSharp has joined #ocaml
daimrod1 has joined #ocaml
dinosaure has joined #ocaml
deadmarshal_ has joined #ocaml
hexology has joined #ocaml
mclovin has joined #ocaml
jsoo has joined #ocaml
curium has joined #ocaml
ds-ac has joined #ocaml
haesbaert has joined #ocaml
h0rror has joined #ocaml
pieguy128 has joined #ocaml
conjunctive has joined #ocaml
Absalom has joined #ocaml
Wojciech_K has joined #ocaml
brettgilio has joined #ocaml
thizanne has joined #ocaml
Soni has joined #ocaml
pippijn has joined #ocaml
quernd8 has joined #ocaml
pgiarrusso has joined #ocaml
delyan_ has joined #ocaml
buoy49_ has joined #ocaml
reynir has joined #ocaml
rwmjones has joined #ocaml
Armael has joined #ocaml
CalimeroTeknik has joined #ocaml
kitzman has joined #ocaml
adrien has joined #ocaml
kurfen_ has joined #ocaml
cedb has joined #ocaml
ansiwen has joined #ocaml
tizoc has joined #ocaml
troydm has joined #ocaml
Boarders___ has joined #ocaml
SquidDev has joined #ocaml
John_Ivan has joined #ocaml
Leonidas has joined #ocaml
sim642 has joined #ocaml
farn has joined #ocaml
leah2 has joined #ocaml
midgard has joined #ocaml
dh` has joined #ocaml
motherfsck has joined #ocaml
azimut has joined #ocaml
berberman has joined #ocaml
TrillionEuroNote has joined #ocaml
wagle has joined #ocaml
chrisz has joined #ocaml
gentauro has joined #ocaml
terrorjack has joined #ocaml
philipwhite has joined #ocaml
hackinghorn has joined #ocaml
ggb has joined #ocaml
patrick has joined #ocaml
richardhuxton has joined #ocaml
hsw has joined #ocaml
jyc has joined #ocaml
theblatte has joined #ocaml
xx_lalo_xx[m] has joined #ocaml
end^ has joined #ocaml
jmcantrell has joined #ocaml
zebrag[m] has joined #ocaml
justache has joined #ocaml
pukkamustard has joined #ocaml
pluviaq has joined #ocaml
reynir[m] has joined #ocaml
ymherklotz has joined #ocaml
_alix has joined #ocaml
seeg has joined #ocaml
henrytill has joined #ocaml
jakzale has joined #ocaml
whereiseveryone has joined #ocaml
immutable has joined #ocaml
b0o has joined #ocaml
sleepydog has joined #ocaml
Ankhers has joined #ocaml
lobo[m] has joined #ocaml
xenu has joined #ocaml
cross has quit [Max SendQ exceeded]
gwizon_ has joined #ocaml
gwizon has quit [Ping timeout: 252 seconds]
cross has joined #ocaml
gwizon_ has quit [Ping timeout: 250 seconds]
gwizon has joined #ocaml
gwizon has quit [Ping timeout: 260 seconds]
tomku has quit [Ping timeout: 258 seconds]
bgs has joined #ocaml
tomku has joined #ocaml
welterde has quit [Server closed connection]
welterde has joined #ocaml
azimut has quit [Ping timeout: 240 seconds]
<greenbagels>
if i want to use Lwt to start a function that executes some code on an infinite timed loop concurrently with other code (i.e. without blocking), what would be the best way to do it?
<greenbagels>
my first thought is i need the function call to not block (so there's some Lwt primitive i need there) and to have an infinite loop (or tail recursion) in the function with Lwt.sleep in the body
bgs has quit [Remote host closed the connection]
<greenbagels>
i guess i could bind a tail-recursive function to a fulfilled promise (to start executing immediately) and sleep inside the function...
Guest17 has joined #ocaml
ridcully has quit [Ping timeout: 240 seconds]
ridcully has joined #ocaml
bartholin has joined #ocaml
kakadu has joined #ocaml
Serpent7776 has joined #ocaml
bartholin has quit [Quit: Leaving]
Guest17 has quit [Quit: Client closed]
Tuplanolla has joined #ocaml
hackinghorn has quit [Ping timeout: 250 seconds]
<companion_cube>
Lwt futures run immediately anyway
<companion_cube>
Try to Lwt.async a function that just calls itself in a loop, with a sleep in the middle
<discocaml>
<galacticcolourisation> ive seen ocaml kind of split between people who
<discocaml>
<galacticcolourisation> 1. dont want modular implicits, either because they dont want overloading to complicate the language, or they think implicits are too bad or tl
<discocaml>
<galacticcolourisation> ive seen ocaml kind of split between people who
<discocaml>
<galacticcolourisation> 1. dont want modular implicits, either because they dont want overloading to complicate the language, or they think implicits are too bad
<discocaml>
<galacticcolourisation>
<discocaml>
<galacticcolourisation> 2. do want them, despite the crticisms
<discocaml>
<galacticcolourisation> im interested in what everyone here's opinion is, whether they want to go with or without them and why
Guest5 has joined #ocaml
<companion_cube>
They're not going to happen any time soon, so... 🤷
spip has joined #ocaml
<discocaml>
<galacticcolourisation> yeah but im still very interested in people's thoughts
<companion_cube>
I mean on paper I'd like it
<zozozo>
for simple things (such as printing, comparison, arithmetic operations), I think they might be useful *if* it's within some kind of convention (e.g. every type defines a `print` function, so that you can always `print` some type and have modular implicit find the right function), but for complex examples, I think i'll always want to be explicit about which functions to call
hackinghorn has joined #ocaml
pie_ has quit []
pie_ has joined #ocaml
bartholin has joined #ocaml
kakadu has quit [Quit: Konversation terminated!]
<discocaml>
<bluddy5> it's science fiction at this point. not worth thinking about.
cbarrett has quit [Server closed connection]
cbarrett has joined #ocaml
<companion_cube>
Yeah exactly
hackinghorn has quit [Read error: Connection reset by peer]
hackhorn has joined #ocaml
Armael has quit [Server closed connection]
Armael has joined #ocaml
dh` has joined #ocaml
dh` has quit [Changing host]
zozozo has quit [Server closed connection]
zozozo has joined #ocaml
infinity0 has joined #ocaml
hackhorn has quit [Remote host closed the connection]
<discocaml>
<xavierm02> @octachron Thanks!
hornhack has joined #ocaml
hornhack has quit [Remote host closed the connection]
hornhack has joined #ocaml
hornhack is now known as hackinghorn
bgs has joined #ocaml
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ocaml
slothby has quit [Server closed connection]
slothby has joined #ocaml
perrierjouet has quit [Quit: WeeChat 3.8]
perrierjouet has joined #ocaml
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ocaml
gareppa has joined #ocaml
gareppa has quit [Client Quit]
Serpent7776 has quit [Ping timeout: 250 seconds]
waleee has joined #ocaml
infinity0 has quit [Remote host closed the connection]
<discocaml>
<elliottcable> Hrm. I think I need some help with generative records. (I'm intellectually aware that they're not structurally typed, lol, but I always seem to struggle with that in practice … 😩)
<discocaml>
<elliottcable> the issue being that post-transform, there's two, nominally unique, `type code_path` decls — and the entire point of the generated one is to "check" / constrain the other, user-provided one. can't quite puzzle out how to achieve that.
<discocaml>
<elliottcable> I briefly tried something with destructive substitution, but couldn't make that compile, either?
infinity0 has joined #ocaml
<discocaml>
<elliottcable> just to inline _something_, because clicking thru a link is annoying, but I also don't want to overwhelm the IRC bridge: the core is that the ppx inserts a `TRACE_SYNTAX_SIG__` module at the top, and then sth like `let module Throwaway : TRACE_SYNTAX_SIG__ = User_given_module` at the transform-site
<discocaml>
<elliottcable> but then the two records `TRACE_SYNTAX_SIG__.code_path` and `User_given_module.code_path`, despite equivalent structurally, are obviously nominally different. need to somehow declare them to be nominally equal, so their equality is properly checked by the typechecker
octachron has quit [Server closed connection]
octachron has joined #ocaml
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ocaml
Guest5 has quit [Quit: Client closed]
bartholin has quit [Quit: Leaving]
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ocaml
hackinghorn has quit [Ping timeout: 260 seconds]
hackhorn has joined #ocaml
hackhorn has quit [Remote host closed the connection]
hackhorn has joined #ocaml
hackhorn has quit [Remote host closed the connection]
hackhorn has joined #ocaml
hackhorn has quit [Remote host closed the connection]
infinity0 has quit [Ping timeout: 245 seconds]
infinity0 has joined #ocaml
infinity0 has quit [Ping timeout: 245 seconds]
infinity0 has joined #ocaml
infinity0 has quit [Ping timeout: 245 seconds]
<discocaml>
<deepspacejohn> if you want to re-declare a type but make it identical to an existing type, you can do `type a = b = ...` e.g. `type foo = {a: int} type bar = foo = {a: int}`.
<discocaml>
<deepspacejohn> if you want to re-declare a type but make it equal to an existing type, you can do `type a = b = ...` e.g. `type foo = {a: int} type bar = foo = {a: int}`.
infinity0 has joined #ocaml
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ocaml
mechap has joined #ocaml
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ocaml
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ocaml
azimut has joined #ocaml
bgs has quit [Remote host closed the connection]
azimut has quit [Ping timeout: 240 seconds]
azimut has joined #ocaml
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ocaml
<discocaml>
<xavierm02> Given an interface `S` that contains a type `t` (say `S = Monoid`), there are several ways of bundling a module `M : S` with a value `v : M.t`:
<discocaml>
<xavierm02> (1) We can add `v` to the module, i.e. define `type t_with_v = (module S_with_v)` where `module type S_with_v = sig include S val v : t end`
<discocaml>
<xavierm02> (2) We can use a module that contains `M` as a submodule alongside `v`, i.e. define `type t_with_v = (module M_and_v)` where `module type M_and_v = sig module M : S val v : t end`
<discocaml>
<xavierm02> (3) We can place `M` and `v` in a GADT with an existential type, i.e. define `type t_with_v = Constructor : (module S with type t = 'a) * 'a -> t_with_v`
<discocaml>
<xavierm02> Since there are often many different `v`s and few different `M`s, approach (1) seems subobptimal since it allows for less sharing between several `M_and_v`s that share the same `M`. The question is then, which approach is preferable between (2) and (3)? Here's a toy example using approach (3): https://pastebin.com/zsaP1Yjq And the previous version that uses approach (2): https://pastebin.com/1dEAa2ZP
czy has quit [Remote host closed the connection]
<discocaml>
<xavierm02> Option (3) seems a bit easier to use, but seems to somewhat awkwardly require putting whatever happens after matching the GADT in a separate function to allow naming the introduced types (i.e. maybe_reduce_aux can not be inlined?). In terms of runtime, from what I gather, modules are basically records, so there should be no meaningful difference (?)