szkl has quit [Quit: Connection closed for inactivity]
<discocaml>
<edwardpryce0425> I'll help the first 10 people interested on how to start earning $100k or more within a week, but you will reimburse me 10% of your profits when you receive it. Note: only interested people should send a friend request or send me a dm! ask me (HOW) via Telegram username @Edward_Pryce1
<discocaml>
<edwardpryce0425>
<discocaml>
<edwardpryce0425> Or use the telegram link in my bio
itszor has joined #ocaml
zor has quit [Ping timeout: 248 seconds]
casastorta has quit [Ping timeout: 252 seconds]
casastorta has joined #ocaml
steenuil has quit [Remote host closed the connection]
steenuil has joined #ocaml
casastortaAway has quit [Quit: ZNC 1.10.1 - https://znc.in]
agentcasey has quit [Quit: ZNC 1.10.x-git-82-9ab81d1d - https://znc.in]
agentcasey has joined #ocaml
myrkraverk has joined #ocaml
myrkraverk_ has quit [Ping timeout: 276 seconds]
toastal has joined #ocaml
Serpent7776 has joined #ocaml
<discocaml>
<bluddy5> once you have to rebuild a giant C++ project over and over, you get a real appreciation for ocaml's compile times.
<discocaml>
<contificate> Yeah, I struggle to find a development workflow - in general - that challenges the comfort of OCaml (with Merlin). Need to be immortal to work with C++
myrkraverk_ has joined #ocaml
myrkraverk has quit [Ping timeout: 260 seconds]
myrkraverk has joined #ocaml
myrkraverk_ has quit [Ping timeout: 276 seconds]
tronexte has quit [Read error: Connection reset by peer]
tronexte has joined #ocaml
Haudegen has joined #ocaml
myrkraverk_ has joined #ocaml
myrkraverk has quit [Ping timeout: 276 seconds]
bartholin has joined #ocaml
amadaluzia has joined #ocaml
myrkraverk has joined #ocaml
myrkraverk_ has quit [Ping timeout: 252 seconds]
myrkraverk_ has joined #ocaml
myrkraverk has quit [Ping timeout: 248 seconds]
Tuplanolla has joined #ocaml
myrkraverk has joined #ocaml
myrkraverk_ has quit [Ping timeout: 252 seconds]
myrkraverk_ has joined #ocaml
myrkraverk has quit [Ping timeout: 260 seconds]
myrkraverk has joined #ocaml
myrkraverk_ has quit [Ping timeout: 248 seconds]
ridcully has quit [Quit: WeeChat 4.6.3]
birle has joined #ocaml
birle has quit [Changing host]
birle has joined #ocaml
dhil has joined #ocaml
Mister_Magister has quit [Excess Flood]
Mister_Magister has joined #ocaml
myrkraverk_ has joined #ocaml
Mister_Magister has quit [Excess Flood]
Mister_Magister has joined #ocaml
myrkraverk has quit [Ping timeout: 248 seconds]
ridcully has joined #ocaml
myrkraverk has joined #ocaml
myrkraverk_ has quit [Ping timeout: 268 seconds]
myrkraverk_ has joined #ocaml
myrkraverk has quit [Ping timeout: 260 seconds]
olle has joined #ocaml
myrkraverk has joined #ocaml
myrkraverk_ has quit [Ping timeout: 265 seconds]
Haudegen has quit [Quit: Bin weg.]
myrkraverk_ has joined #ocaml
myrkraverk has quit [Ping timeout: 248 seconds]
myrkraverk has joined #ocaml
myrkraverk_ has quit [Ping timeout: 248 seconds]
olle has quit [Ping timeout: 276 seconds]
Haudegen has joined #ocaml
johnridesabike has joined #ocaml
Mister_Magister has quit [Remote host closed the connection]
Mister_Magister has joined #ocaml
YuGiOhJCJ has quit [Quit: YuGiOhJCJ]
<discocaml>
<otini_> Polymorphic variants don’t seem to work as I expected
<discocaml>
<otini_> so there is no subtyping without introducing a row variable?
<discocaml>
<otini_> Not sure to understand what is the use for types of the form `` [ `A | `B ] `` then (without < or > )
<discocaml>
<octachron> You can cast closed polymorphic variant types with `:>` but yes there is no implicit subtyping at all in OCaml, only parametric polymorphism and row type variables.
<discocaml>
<otini_> but the compiler rejects my explicit cast too
<discocaml>
<octachron> Because GADTs are invariant in their type parameters
toastal has quit [Ping timeout: 248 seconds]
<discocaml>
<octachron> Combining GADTs and polymorphic variants requires to walk a sharp-edged cliff.
<discocaml>
<otini_> Oh. I see.
toastal has joined #ocaml
<discocaml>
<octachron> Hm, in this case, was your aim just to avoid an existential wrapper?
<discocaml>
<octachron> Because, you can probably achieve this objective with using lower-bounded (``[> `Include ]``) tags
<discocaml>
<otini_> My general goal was to reuse the same record for `include_description` and `include_declaration` but to have the typechecker understand the constraint that `pincl_kind` is never `` `Include_functor `` in the first case
<discocaml>
<otini_> I usually do it with abstract or void types, like `type include` and `type include_functor` (or `type include = |`), I wanted to try polymorphic variants to save two type declarations
<discocaml>
<otini_> This surprises me because my intuitive understanding of `[> ... ]` is "these tags or others"
toastal has left #ocaml [#ocaml]
<discocaml>
<octachron> It is slightly more precise to read it as `at least those tags`, in the sense that you cannot erase the information about the present tags.
<discocaml>
<octachron> And thus `` [`A | `B ] t`` means no `` `C ``
<discocaml>
<otini_> I see
<discocaml>
<otini_> but IIUC you advise against mixing GADTs and polymorphic variants
<discocaml>
<octachron> My point of view is that the frontier between the cases where they work well and the situations where they don't work at all is non-intuitive and often too sharp. But there are cases where mixing the two work well.
<discocaml>
<otini_> thanks!
toastal has joined #ocaml
pippijn_ is now known as pippijn
euphores has joined #ocaml
Haudegen has quit [Quit: Bin weg.]
humasect has joined #ocaml
<discocaml>
<zarakshr> It seems that `@warning` annotations cannot be combined with `let*`:
<discocaml>
<zarakshr> ```ocaml
<discocaml>
<zarakshr> let[@warning "-8"] (Bool cond) = eval env test in ...
<discocaml>
<zarakshr> ```
<discocaml>
<zarakshr> but
<discocaml>
<zarakshr> ```ocaml
<discocaml>
<zarakshr> let*[@warning "-8"] (Bool cond) = eval_cps env test in ...
<discocaml>
<zarakshr> ```
<discocaml>
<zarakshr> is a syntax error (similarly for `let[@warning "-8"]*`)
<discocaml>
<zarakshr> is there an accepted workaround for this?
<discocaml>
<zarakshr> actually, is this even by design? I feel like it should be possible to use such annotations with binding operators
<discocaml>
<otini_> this looks more like an oversight