ec changed the topic of #elliottcable to: a π―ππ ππ π―πππππππππ π―ππππππ slash sΝΜuΝΝpΝΝeΜΜΊrΜΌΜ¦iΜΌΜoΜΜ¬rΜΜ cΜΝα»₯Μ§ΝαΈ·Μ‘ΝΕ£ΝΜ || #ELLIOTTCABLE is not about ELLIOTTCABLE
dsamarin has joined #elliottcable
<ec>
jfhbrook: different thing >:
<ec>
but I figured it out
<ec>
normal variant in ML is like an enum
<ec>
type family_member = Dog | Cat | Human of string
<ljharb>
don't be a fish hater
<ec>
polymorphic variants, though, are "open" and can be extended or limited
dsamarin has quit [Ping timeout: 260 seconds]
dsamarin has joined #elliottcable
<ec>
i.e. ``[> `Dog | `Cat | `Human of string ]`` (moment of truth, IRCcloud Markdown parsing β¦) means, thanks to the `>`, that it can be βextendedβ with more variants
<ec>
nope lmao fail
<ec>
i.e. it's a type that matches βany polymorphic-variant type with at least these known members, but possibly moreβ
<ec>
whereas "[< `Dog | `Cat | `Human of string ]" accepts *at least* those, but possibly more
<ec>
jesus christ IRCcloud bug report time
<ljharb>
why are there backticks in there
muelleme has joined #elliottcable
<ec>
polymorphic variant syntax
<ec>
uses `'Blah` and `'Blah of blah`, but with backticks instead of single-quotes
<ec>
```
<ec>
crap wtf
<ec>
let three = `Int 3
<ec>
let four = `Float 4.
<ec>
- : [> `Float of float | `Int of int | `Not_a_number ] list = [`Int 3; `Float 4.; `Not_a_number]
<ec>
[three; four; nan];;
<ec>
let nan = `Not_a_number
<ec>
god damnit ircclou
<ljharb>
lol
<ljharb>
a single lone backtick is a really poor choice of syntax
muelleme has quit [Ping timeout: 260 seconds]
<ec>
Β―\_(γ)_/Β―
<ec>
it's fuckin', what, thirty years old?
<ec>
markdown definitely didn't exist then π€£
<ec>
woah
<ec>
*forty-five* years
<ec>
IRCv3 looks like an interesting project
<ljharb>
lol
muelleme has joined #elliottcable
muelleme has quit [Ping timeout: 248 seconds]
<ec>
ahh, ```[> `Figured | `It | `Out]```
<ec>
thx irccloud
<ec>
annoying in plaintext tho.
dsamarin has quit [Read error: Connection reset by peer]