companion_cube changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml 4.11 release notes: https://caml.inria.fr/pub/distrib/ocaml-4.11/notes/Changes | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
mxns has joined #ocaml
mxns has quit [Ping timeout: 258 seconds]
mxns has joined #ocaml
malc_ has joined #ocaml
mxns has quit [Ping timeout: 250 seconds]
mxns has joined #ocaml
<steenuil> wssad, actually there is a talk that specifically answers that question https://www.youtube.com/watch?v=v1CmGbOGb2I
mxns has quit [Ping timeout: 240 seconds]
mxns has joined #ocaml
mxns has quit [Client Quit]
mxns has joined #ocaml
mxns has quit [Ping timeout: 258 seconds]
mxns has joined #ocaml
mxns has quit [Ping timeout: 240 seconds]
mxns has joined #ocaml
Haudegen has quit [Ping timeout: 252 seconds]
gopiandcode has quit [Read error: Connection reset by peer]
mxns has quit [Ping timeout: 250 seconds]
mxns has joined #ocaml
arecaceae has quit [Remote host closed the connection]
arecaceae has joined #ocaml
mxns has quit [Ping timeout: 258 seconds]
sz0 has joined #ocaml
malc_ has quit [Ping timeout: 260 seconds]
<wssad> steenuil: thank you!
wssad has quit [Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/]
mxns has joined #ocaml
mfp has quit [Ping timeout: 240 seconds]
osa1_ has joined #ocaml
osa1 has quit [Ping timeout: 252 seconds]
<d_bot> <darrenldl> one reason mentioned in the talk, which most people would agree, is the expressive power you get from the type system in ensuring some level of correctness compared to (almost) none in python
<d_bot> <darrenldl> for similar reasons you dont see a pgp keyserver written in python and friends in practice, but in rust or ocaml
waleee-cl has quit [Quit: Connection closed for inactivity]
mxns has quit [Ping timeout: 258 seconds]
mxns has joined #ocaml
bitwinery has joined #ocaml
bitwinery has quit [Remote host closed the connection]
bitwinery has joined #ocaml
bitwinery has quit [Quit: Leaving]
mxns has quit [Ping timeout: 258 seconds]
Tuplanolla has joined #ocaml
stux|RC-only has quit [Ping timeout: 265 seconds]
stux|RC has quit [Ping timeout: 240 seconds]
Serpent7776 has joined #ocaml
beajeanm has quit [Quit: Ping timeout (120 seconds)]
beajeanm has joined #ocaml
stux|RC-only has joined #ocaml
stux|RC has joined #ocaml
malc_ has joined #ocaml
stux|RC-only has quit [Ping timeout: 246 seconds]
stux|RC has quit [Ping timeout: 240 seconds]
stux|RC-only has joined #ocaml
osa1_ is now known as osa1
stux|RC has joined #ocaml
wonko7 has joined #ocaml
olle has joined #ocaml
wonko7 has quit [Ping timeout: 252 seconds]
nullcone has quit [Quit: Connection closed for inactivity]
mfp has joined #ocaml
l1x has quit [Quit: Connection closed for inactivity]
jbrown has quit [Ping timeout: 260 seconds]
jbrown has joined #ocaml
curtosis has joined #ocaml
bartholin has joined #ocaml
Haudegen has joined #ocaml
olle has quit [Ping timeout: 252 seconds]
curtosis has quit [Quit: My Mac Mini has gone to sleep. ZZZzzz…]
<d_bot> <darrenldl> astronavt: some iso8601 question if you don't mind, for "24:00:00", which is allowed in older editions of iso8601, do you think it's sane to treat it as "23:59:59.999999999"?
<d_bot> <darrenldl> (i can "roll" it to next day for `of_iso8601` parser, but difficult to do the same behaviour for timere-parse. so either equally lossy behaviour on both sides, or `of_iso8601` being slightly more accurate than parsing the same text in timere-parse)
<companion_cube> just accept 24:00 if ~yikes:true is passed by the user
<d_bot> <darrenldl> and resort to the golden standard of undefined behaviour : D ?
<companion_cube> the golden standard of being liberal in what you accept :D
<d_bot> <darrenldl> cant be that liberal when you don't want to exclude data clean up uses D :
<d_bot> <darrenldl>
<d_bot> <darrenldl> (though for my sanity i might not try overly hard to accommodate that)
<companion_cube> hence asking for an argument to be more liberal
nicooo is now known as nicoo
<d_bot> <darrenldl> you know what, whoever writes "24:00:00" obviously has no notion of, or care for accuracy, being 1s/1ns off would be well within their margin of error
<companion_cube> what if they think it's how you do leap seconds? :D
olle has joined #ocaml
<d_bot> <darrenldl> ...well they are wrong : D
olle has quit [Ping timeout: 246 seconds]
<d_bot> <EduardoRFS> : D
nullcone has joined #ocaml
tane has joined #ocaml
<d_bot> <darrenldl> rust chrono picks a choice that can express leap second, preserves lexicographical order of their date time, with a lossy mapping to timestamp. interesting choice...hm...
bartholin has quit [Quit: Leaving]
wonko7 has joined #ocaml
Haudegen has quit [Quit: No Ping reply in 180 seconds.]
Haudegen has joined #ocaml
olle has joined #ocaml
<olle> Is it the same people here as on the forum? Or can I double post?
waleee-cl has joined #ocaml
vicfred has joined #ocaml
olle has quit [Ping timeout: 252 seconds]
wonko7 has quit [Ping timeout: 240 seconds]
<d_bot> <salt rock lamp> @BigOof that sounds like it should just be invalid to me
<d_bot> <salt rock lamp> (this is astronavt)
<d_bot> <salt rock lamp> i am kind of surprised that leap second handling isnt more "standardized". or maybe it's considered an active area of research
malc_ has quit [Ping timeout: 260 seconds]
<d_bot> <EduardoRFS> Why is `(module X with type 'a t = 'a option)` not allowed? More generally why isn't the other `with` expressions from module types allowed on FCM?
nicoo has quit [Ping timeout: 240 seconds]
nicoo has joined #ocaml
_ks has quit [Quit: WeeChat 2.9]
tane has quit [Quit: Leaving]
nicoo has quit [Ping timeout: 240 seconds]
nicoo has joined #ocaml
nicoo has quit [Remote host closed the connection]
nicoo has joined #ocaml
curtosis has joined #ocaml
Haudegen has quit [Ping timeout: 240 seconds]
mfp has quit [Ping timeout: 252 seconds]
<companion_cube> that looks like a HKT, it's not really in OCaml's fragmnet of type theory afaik
<d_bot> <EduardoRFS> but you can do it with modules normally
<d_bot> <EduardoRFS>
<d_bot> <EduardoRFS> ```ocaml
<d_bot> <EduardoRFS> module type A = X with type 'a t = 'a option
<d_bot> <EduardoRFS> ```
<d_bot> <EduardoRFS> Also the machinery is in place, I implemented it to see if I was going to need anything fancy
<d_bot> <EduardoRFS> around 200loc to get the snippet above working
<d_bot> <EduardoRFS> plus parser, but I hate parsers
<companion_cube> sure, but this doesn't use type variables
<companion_cube> it's in the language of modules
<companion_cube> whereas I think first-class modules cross the barrier between expressions and modules
<d_bot> <EduardoRFS> hmm not sure that's the case here. But yeah I'm trying to get some sort of HKT implemented in a sound way
<d_bot> <EduardoRFS>
<d_bot> <EduardoRFS> ```ocaml
<d_bot> <EduardoRFS> type ('M, 'a, 'b) = 'c -> ('a -> 'd) -> 'M -> 'd
<d_bot> <EduardoRFS> constraint 'M = (module Monad)
<d_bot> <EduardoRFS> constraint 'c = 'a 'M.t
<d_bot> <EduardoRFS> constraint 'd = 'b 'M.t
<d_bot> <EduardoRFS> ```
<d_bot> <EduardoRFS> but while doing that I noticed the previous snippet was not allowed and got confused on why
<d_bot> <EduardoRFS> got curious*