adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml 4.08 release notes: https://caml.inria.fr/pub/distrib/ocaml-4.08/notes/Changes | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
pyan has quit [Quit: brb]
AtumT has quit [Ping timeout: 248 seconds]
pyan has joined #ocaml
nullifidian_ has joined #ocaml
nullifidian__ has quit [Ping timeout: 246 seconds]
_whitelogger has joined #ocaml
bitwinery has joined #ocaml
jao has quit [Remote host closed the connection]
jao has joined #ocaml
tormen has joined #ocaml
tormen_ has quit [Ping timeout: 248 seconds]
mfp has quit [Ping timeout: 272 seconds]
_whitelogger_ has joined #ocaml
dh_work has quit [Remote host closed the connection]
jao has quit [Ping timeout: 244 seconds]
aphprentice__ has quit [Quit: Connection closed for inactivity]
_whitelogger has joined #ocaml
lalitmee has joined #ocaml
theglass has quit [Ping timeout: 250 seconds]
theglass has joined #ocaml
theglass has quit [Changing host]
theglass has joined #ocaml
mbuf has joined #ocaml
narimiran has joined #ocaml
bitwinery has quit [Quit: Leaving]
Haudegen has joined #ocaml
lalitmee has quit [Ping timeout: 268 seconds]
jbrown has quit [Ping timeout: 264 seconds]
terps has joined #ocaml
lalitmee has joined #ocaml
nullifidian__ has joined #ocaml
nullifidian_ has quit [Ping timeout: 244 seconds]
Birdface has joined #ocaml
madroach has quit [Ping timeout: 264 seconds]
madroach has joined #ocaml
keep_learning has quit [Ping timeout: 268 seconds]
jbrown has joined #ocaml
bacam has joined #ocaml
Birdface has quit [Remote host closed the connection]
Birdface has joined #ocaml
nullifidian_ has joined #ocaml
nullifidian__ has quit [Read error: Connection reset by peer]
mfp has joined #ocaml
bartholin has quit [Ping timeout: 246 seconds]
Netsu has quit [Remote host closed the connection]
bartholin has joined #ocaml
Haudegen has quit [Quit: Bin weg.]
jbrown has quit [Ping timeout: 252 seconds]
jbrown has joined #ocaml
gareppa has joined #ocaml
Haudegen has joined #ocaml
terps has quit [Ping timeout: 264 seconds]
terps has joined #ocaml
gravicappa has quit [Ping timeout: 268 seconds]
gravicappa has joined #ocaml
gareppa has quit [Quit: Leaving]
nullifidian__ has joined #ocaml
nullifidian_ has quit [Ping timeout: 272 seconds]
lalitmee has quit [Ping timeout: 248 seconds]
freyr69 has joined #ocaml
spew has joined #ocaml
steenuil has joined #ocaml
esum has joined #ocaml
steenuil has quit [Client Quit]
jao has joined #ocaml
gareppa has joined #ocaml
FreeBirdLjj has joined #ocaml
tane has joined #ocaml
gareppa has quit [Quit: Leaving]
terps has quit [Ping timeout: 264 seconds]
jao has quit [Ping timeout: 268 seconds]
terps has joined #ocaml
lalitmee has joined #ocaml
nullifidian_ has joined #ocaml
jao has joined #ocaml
nullifidian__ has quit [Ping timeout: 244 seconds]
freyr69 has quit [Remote host closed the connection]
terps has quit [Ping timeout: 250 seconds]
terps has joined #ocaml
pyan has quit [Ping timeout: 252 seconds]
mbuf has quit [Quit: Leaving]
terps has quit [Ping timeout: 264 seconds]
jbrown has quit [Ping timeout: 252 seconds]
terps has joined #ocaml
jbrown has joined #ocaml
Serpent7776 has joined #ocaml
pyan has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
ziyourenxiang has quit [Ping timeout: 245 seconds]
<Leonidas> lizzin: We use that style a lot in our code base
<Leonidas> I think my rule of thumb is "if I can't give the intermediate results a decent name, they probably go about better without a name in the first place"
<Leonidas> let first_half_of_transformation_result = … in …
FreeBirdLjj has quit [Ping timeout: 248 seconds]
<Leonidas> OTOH I don't use composition much, because I always end up in weak polymorphism territory and that's more frustrating than composition is fun
ravenous_ has joined #ocaml
Haudegen has quit [Quit: Bin weg.]
jmiven_ has joined #ocaml
jmiven has quit [Quit: reboot]
jmiven_ has quit [Quit: WeeChat 2.4]
jmiven has joined #ocaml
lalitmee has quit [Quit: Leaving]
Jesin has quit [Quit: Leaving]
Jesin has joined #ocaml
jnavila has joined #ocaml
terps has quit [Ping timeout: 264 seconds]
terps has joined #ocaml
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 246 seconds]
Haudegen has joined #ocaml
<lizzin> Leonidas: that's good to hear; pipes are awesome.
<lizzin> seems like your rule of thumb could result in instances where you are giving names to things you may not have any other need for though
<lizzin> i've always like using them because they save me from having to name things i know have no future purpose
<lizzin> on another note, why isn't [x,y] = [1,2] considered exhausted
<lizzin> i'm not sure what to make of this possible case, supplied by the repl: (_::_::_::_|_::[]|[])
<lizzin> does '_|_' mean 'is comparable to' here?
<Armael> the compiler doesn't try to do a value analysis of the right hand side
<Armael> (even if it would be trivial here)
<Armael> so let [x,y] = [1,2] in .. (btw did you mean [x,y] or [x;y]?) is morally the same as let [x,y] = foo in .. where foo is an unknown list
bitwinery has joined #ocaml
<Armael> (as for the repl cases, AFAICT "|" separate several cases. so it gives you three "counter-examples": [] (empty list), _::[] (singleton list), _::_::_::_ (list of length 3))
nullifidian__ has joined #ocaml
nullifidian_ has quit [Ping timeout: 272 seconds]
<lizzin> Armael: err, i meant [x;y]. still not used to these ;'s
<Armael> yeah that makes sense :)
AtumT has joined #ocaml
<lizzin> is [x;y] and x::y::[] the same patterns?
<lizzin> everything i've read suggests they are equivalent
<lyxia> yes
<lizzin> but i still fail to see why the utop would throw a warning when trying to patter match a 2 element list against those two patterns
terps has quit [Ping timeout: 252 seconds]
jao has quit [Ping timeout: 268 seconds]
<Armael> it doesn't look at the value on the right hand side
<Armael> it just sees "let [x;y] = ..." and says "hmmm this is not exhaustive because the right-hand side might not have exactly two elements"
q9929t has joined #ocaml
tane has quit [Quit: Leaving]
<Armael> in your case, it is really easy to see that the right-hand side has indeed exactly two elements, but it's hard to do in the general case
<lizzin> oh ok, thanks for confirming. i thought that is what you were suggesting earlier, but it just didn't feel right. i should learn more about compilers
terps has joined #ocaml
<lizzin> any idea what this '_|_' means?
<Armael> you should read it like that: (_::_::_::_ "or" _::[] "or" [])
<Armael> the "|" separates different counter-examples
<Armael> _::[] means "any list matched by _::[]", so any list containing a single element in fact
q9929t has quit [Quit: q9929t]
klntsky has quit [Read error: Connection reset by peer]
andreas303 has quit [Write error: Connection reset by peer]
nicoo has quit [Write error: Connection reset by peer]
<lizzin> wait a sec, so that is an 'OR' bar and not some other symbol?
nicoo has joined #ocaml
<Armael> yes
andreas303 has joined #ocaml
<lizzin> i'll take your word for it. but those lack of spaces around it sure make things more confusing than they should be
klntsky has joined #ocaml
<Armael> indeed, the printing could be better
<Armael> if you have time, could you open an issue on github, just so we can keep track of it as potential easy improvement?
<lizzin> sure, i'd love too!
lizzin has quit [Read error: Connection reset by peer]
lizzin has joined #ocaml
lizzin is now known as Guest94534
Guest94534 has quit [Changing host]
Guest94534 has joined #ocaml
Guest94534 is now known as lizzin
<lizzin> Armael: not sure if you saw my last msg, but i'll submit an issue
<Armael> cool, thanks!
jao has joined #ocaml
jao is now known as Guest13728
jnavila has quit [Remote host closed the connection]
jnavila has joined #ocaml
terps has quit [Ping timeout: 252 seconds]
jnavila has quit [Quit: Konversation terminated!]
jnavila has joined #ocaml
Serpent7776 has quit [Quit: leaving]
gravicappa has quit [Ping timeout: 245 seconds]
ravenous_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Birdface has quit [Ping timeout: 268 seconds]
aubian has joined #ocaml
aubian has quit [Client Quit]
aubian has joined #ocaml
sagax has quit [Remote host closed the connection]
narimiran has quit [Read error: Connection reset by peer]
jnavila has quit [Ping timeout: 246 seconds]
Hrundi_V_Bakshi has joined #ocaml
Netsu has joined #ocaml
<Netsu> still can't get, why that https://tinyurl.com/yycm2gem work with explicit type parameter only, but not with an abstract one (`'a`)
bitmapper has joined #ocaml
<bitmapper> spew: you there?
<Netsu> oh, maybe, understand, why: with `'a` the first-class module not actually refer to function's type argument, but to some abstract type in general
Netsu has quit [Remote host closed the connection]
AtumT_ has joined #ocaml
ziyourenxiang has joined #ocaml
AtumT has quit [Ping timeout: 272 seconds]
AtumT has joined #ocaml
AtumT_ has quit [Ping timeout: 268 seconds]
spew has quit [Quit: Connection closed for inactivity]
Hrundi_V_Bakshi has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
aphprentice__ has joined #ocaml
nullifidian_ has joined #ocaml
AtumT has quit [Quit: AtumT]
nullifidian__ has quit [Ping timeout: 248 seconds]
Netsu has joined #ocaml
<Netsu> Suppose I have `module type I = sig type i = int end`. Can I get I.i in some way? E.g. by type constraints?
<companion_cube> I don't think so
<Netsu> annoying that this theoretically is accessible: `module rec I : I ;; (42 : I.i) ;;`
<Netsu> * `I : I = I ;;` for sure
<Netsu> but creating dummy modules for signatures to just get the type feels so wrong & fragile
<companion_cube> not sure what the point is?