2021/04/13

2021-04-13 00:00:21 +0200Rudd0(~Rudd0@185.189.115.108)
2021-04-13 00:01:10 +0200 <monochrom> That can also be explained by saying "`concurrently_ left right = right` makes a tail call to right".
2021-04-13 00:01:22 +0200acidjnk_new(~acidjnk@p200300d0c72b9561cdce4d77de6ce0bc.dip0.t-ipconnect.de)
2021-04-13 00:01:40 +0200 <wz1000> nope
2021-04-13 00:02:02 +0200 <wz1000> concurrently_ left right = forkIO right >> forkIO left
2021-04-13 00:02:08 +0200 <wz1000> that still doesn't leak
2021-04-13 00:02:14 +0200nilof(~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 260 seconds)
2021-04-13 00:02:22 +0200e(e@freenode/staff/spy.edk) (Quit: edk)
2021-04-13 00:03:37 +0200__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2021-04-13 00:04:21 +0200araujo(~araujo@unaffiliated/araujo) (Quit: My laptop has gone to ZZZzzz…)
2021-04-13 00:04:37 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-04-13 00:05:05 +0200nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 252 seconds)
2021-04-13 00:05:26 +0200malumore(~malumore@151.62.112.168) (Ping timeout: 260 seconds)
2021-04-13 00:05:35 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-13 00:07:37 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-04-13 00:07:44 +0200 <monochrom> That can also be explained by saying "forkIO returns promptly, so the model that says the 1st forkIO isn't a tail call (but it returns promptly anyway) and the 2nd forkIO is a tail call still explains the space observation".
2021-04-13 00:09:07 +0200 <wz1000> sounds like epicycles to me
2021-04-13 00:09:19 +0200 <monochrom> Yes I know. What's your replacement?
2021-04-13 00:09:38 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 246 seconds)
2021-04-13 00:09:52 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 252 seconds)
2021-04-13 00:10:09 +0200 <wz1000> reasoning about the behaviour of your program by understanding the operational semantics
2021-04-13 00:10:10 +0200 <monochrom> You have only stated that my model is not good. Where can I find a better model?
2021-04-13 00:10:10 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-13 00:12:43 +0200 <monochrom> I have done that. I have also looked at generated code.
2021-04-13 00:13:15 +0200 <wz1000> you don't have a model really. The point of the tail call model in other languages is so you can take one glance at the definition of your recursive function and figure out if it will blow up the stack. It already breaks down when its not purely syntactic anymore and you need to substitute in the definition of all the functions you call
2021-04-13 00:13:31 +0200 <monochrom> I have found that for IO, all that can be safely approximated and/or abstracted to: to execute "x >>= k", make a non-tail call to x, then make a tail call to k.
2021-04-13 00:17:56 +0200chenshen(~chenshen@2620:10d:c090:400::5:c73d) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
2021-04-13 00:18:51 +0200Althar(5e039f1a@94.3.159.26) (Quit: Connection closed)
2021-04-13 00:22:36 +0200 <monochrom> I have to know all definitions too in other languages, I would think. In Scheme, I cannot know what happens to (define (f) (g)) until I know that, for example, g is not (define (g) (begin (f) (f))).
2021-04-13 00:22:38 +0200hendursaga(~weechat@gateway/tor-sasl/hendursaga) (Remote host closed the connection)
2021-04-13 00:22:55 +0200cuz(~user@38.140.58.234) (Ping timeout: 268 seconds)
2021-04-13 00:23:00 +0200Tops2(~Tobias@dyndsl-091-249-083-203.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2021-04-13 00:23:03 +0200hendursaga(~weechat@gateway/tor-sasl/hendursaga)
2021-04-13 00:23:28 +0200 <monochrom> But what I do know is that in f, the (g) is a tail call. And that in g, the 2nd (f) is a tail call. The Scheme standard forces this.
2021-04-13 00:24:01 +0200 <monochrom> And then suddenly it doesn't look so wrong that I can carry over this model to IO's >>=
2021-04-13 00:27:09 +0200rj(~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
2021-04-13 00:28:14 +0200Benzi-Junior(~BenziJuni@88-149-64-251.du.xdsl.is) (Ping timeout: 265 seconds)
2021-04-13 00:28:46 +0200dxld(~dxld@rush.pub.dxld.at) (Remote host closed the connection)
2021-04-13 00:31:22 +0200rj(~x@gateway/tor-sasl/rj)
2021-04-13 00:31:23 +0200dxld(~dxld@rush.pub.dxld.at)
2021-04-13 00:32:01 +0200michalz(~user@185.246.204.61) (Remote host closed the connection)
2021-04-13 00:33:31 +0200smatting(~stefan@p200300cd7708e000958acc65436f5a2e.dip0.t-ipconnect.de)
2021-04-13 00:33:32 +0200liyang(~liyang@90.255.129.199)
2021-04-13 00:34:41 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-13 00:34:54 +0200gitgood(~gitgood@80-44-10-33.dynamic.dsl.as9105.com) (Quit: Probably away to do something really awesome)
2021-04-13 00:34:57 +0200lawid(~quassel@ip5b41869c.dynamic.kabel-deutschland.de) (Quit: lawid)
2021-04-13 00:35:28 +0200gienah_(~mwright@119-18-3-62.771203.syd.nbn.aussiebb.net)
2021-04-13 00:36:12 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-13 00:36:46 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3061:d9b2:32c9:4068)
2021-04-13 00:37:19 +0200lawid(~quassel@ip5b41869c.dynamic.kabel-deutschland.de)
2021-04-13 00:38:20 +0200gienah(~mwright@gentoo/developer/gienah) (Ping timeout: 246 seconds)
2021-04-13 00:38:29 +0200son0p(~ff@181.136.122.143) (Quit: Using Circe, the loveliest of all IRC clients)
2021-04-13 00:40:16 +0200fiedlr(~fiedlr@83.148.33.254) (Read error: Connection reset by peer)
2021-04-13 00:40:55 +0200fiedlr(~fiedlr@83.148.33.254)
2021-04-13 00:42:02 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-04-13 00:42:39 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 268 seconds)
2021-04-13 00:43:53 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-04-13 00:44:13 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-13 00:46:31 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2021-04-13 00:48:42 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds)
2021-04-13 00:52:16 +0200fiedlr(~fiedlr@83.148.33.254) (Remote host closed the connection)
2021-04-13 00:52:31 +0200fiedlr(~fiedlr@83.148.33.254)
2021-04-13 00:52:40 +0200fiedlr(~fiedlr@83.148.33.254) (Remote host closed the connection)
2021-04-13 00:53:41 +0200dmytrish(~mitra@37.228.247.154) (Ping timeout: 240 seconds)
2021-04-13 00:55:31 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
2021-04-13 00:57:27 +0200loller_(uid358106@gateway/web/irccloud.com/x-jmeczyzfdqqbsxdy)
2021-04-13 00:58:31 +0200Feuermagier_(~Feuermagi@2a02:2488:4211:3400:7285:c2ff:fe22:172e) (Quit: Leaving)
2021-04-13 00:58:42 +0200Feuermagier(~Feuermagi@2a02:2488:4211:3400:7285:c2ff:fe22:172e)
2021-04-13 01:00:00 +0200Alleria(~textual@2603-7000-3040-0000-61e5-3b09-ada8-75b7.res6.spectrum.com)
2021-04-13 01:00:03 +0200smatting(~stefan@p200300cd7708e000958acc65436f5a2e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-04-13 01:00:24 +0200AlleriaGuest3055
2021-04-13 01:02:44 +0200rprije(~rprije@59-102-63-15.tpgi.com.au)
2021-04-13 01:04:25 +0200Guest3055(~textual@2603-7000-3040-0000-61e5-3b09-ada8-75b7.res6.spectrum.com) (Ping timeout: 258 seconds)
2021-04-13 01:04:56 +0200dmytrish(~mitra@2a02:8084:a82:d900:f811:9873:2623:c28b)
2021-04-13 01:05:40 +0200 <DigitalKiwi> is it amusing to anyone else that there are 3 mersenne library by dons and 1 by bos and it has more usage than all 3 of dons combined? now we know why bos name is first on the book authors ;p
2021-04-13 01:06:21 +0200 <monochrom> "this shows you who's the boss"
2021-04-13 01:06:51 +0200 <monochrom> But don't get too excited. The mafia obeys the don.
2021-04-13 01:09:08 +0200bitmapper(uid464869@gateway/web/irccloud.com/x-fsfopwufuwlbuqbr)
2021-04-13 01:11:44 +0200usr25(~usr25@unaffiliated/usr25) (Quit: Leaving)
2021-04-13 01:11:57 +0200rj(~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
2021-04-13 01:15:27 +0200dmytrish(~mitra@2a02:8084:a82:d900:f811:9873:2623:c28b) (Ping timeout: 260 seconds)
2021-04-13 01:15:35 +0200rj(~x@gateway/tor-sasl/rj)
2021-04-13 01:16:24 +0200wopas32(uid384704@gateway/web/irccloud.com/x-nsunqoqlyntbwalw)
2021-04-13 01:19:47 +0200 <edwardk> All this makes you wonder about Goerzen.
2021-04-13 01:20:10 +0200Clintsquints.
2021-04-13 01:20:11 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2021-04-13 01:23:07 +0200Synthetica(uid199651@gateway/web/irccloud.com/x-angnetldjalsgvuz) (Quit: Connection closed for inactivity)
2021-04-13 01:23:40 +0200chenshen(~chenshen@2620:10d:c090:400::5:d34f)
2021-04-13 01:24:06 +0200gzj(~gzj@unaffiliated/gzj)
2021-04-13 01:26:45 +0200rj(~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
2021-04-13 01:27:03 +0200fiedlr(~fiedlr@83.148.33.254)
2021-04-13 01:28:22 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-04-13 01:30:13 +0200haskellstudent(~quassel@213-225-6-101.nat.highway.a1.net) (Ping timeout: 240 seconds)
2021-04-13 01:30:22 +0200Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2021-04-13 01:35:41 +0200acidjnk_new(~acidjnk@p200300d0c72b9561cdce4d77de6ce0bc.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2021-04-13 01:39:45 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-04-13 01:46:49 +0200aerona(~aerona@2600:6c54:4600:f300:469c:10f6:fe62:fc1c) (Remote host closed the connection)
2021-04-13 01:47:06 +0200aerona(~aerona@2600:6c54:4600:f300:469c:10f6:fe62:fc1c)
2021-04-13 01:49:35 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
2021-04-13 01:55:04 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-13 01:59:33 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-04-13 01:59:52 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
2021-04-13 02:01:44 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-13 02:04:05 +0200 <ski> "It already breaks down when its not purely syntactic anymore" -- this already happens in strict languages, too. see library syntax like e.g. `and',`or' in R⁵RS <https://schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-6.html#%_idx_80>, or the library procedures `any',`every' in SRFI 1 <https://srfi.schemers.org/srfi-1/srfi-1.html#any>, for Scheme
2021-04-13 02:04:06 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-13 02:05:21 +0200hexfive(~hexfive@50.35.83.177)
2021-04-13 02:06:35 +0200hexfive(~hexfive@50.35.83.177) (Client Quit)
2021-04-13 02:07:18 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds)
2021-04-13 02:09:57 +0200aerona(~aerona@2600:6c54:4600:f300:469c:10f6:fe62:fc1c) (Remote host closed the connection)
2021-04-13 02:10:38 +0200 <ski> tail calls in Haskell (which one can divide into forcing a computation (parameterized or not), in a tail context; and things like the execution of a invocation of a sub-action (parameterized or not) in a tail context of the execution of the action it's a part of) are still important, albeit not quite as important (relatively speaking) as in strict languages supporting "proper tail recursion"/"tail/last
2021-04-13 02:10:44 +0200 <ski> calls" (either the language itself, or an implementation thereof, supporting it), because of the increased importance of guarded recursion / incremental operations in Haskell
2021-04-13 02:11:36 +0200aerona(~aerona@2600:6c54:4600:f300:469c:10f6:fe62:fc1c)
2021-04-13 02:12:01 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-13 02:15:08 +0200 <ski> without acknowledging that tail calls are relevant, we can't state that a tail-recursive definition must necessarily lead to a bulky (iow non-incremental) operation (and vice versa). and certain eta-reductions (as involved in the CPS transformation, to explain tail calls), can be quite important for efficiency in Haskell, e.g. for the definition of `(>>=)' for
2021-04-13 02:15:13 +0200 <ski> `Cont'/`ContT'/`Codensity'/`Managed',`State'/`StateT',..
2021-04-13 02:17:08 +0200 <ski> (well, i suppose by "vice versa", i meant the contrapositive, iow from `TailRecursive -> Not Incremental' to `Incremental -> Not TailRecursive', both being equivalent to `Not (TailRecursive,Incremental)')
2021-04-13 02:17:42 +0200Eoco(~ian@x-160-94-179-157.acm.umn.edu) (Quit: WeeChat 2.3)
2021-04-13 02:19:01 +0200Eoco(~ian@x-160-94-179-157.acm.umn.edu)
2021-04-13 02:19:10 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-04-13 02:19:45 +0200 <ski> and i'm pretty sure tail calls play some rôle in libraries intended to enable fusion of their operations (specifically, for "final summary" operations, which will typically be a loop that drives the computation by forcing the steps of the contained incremental operations)
2021-04-13 02:21:51 +0200infinity0(~infinity0@freenet/developer/infinity0) (Ping timeout: 252 seconds)
2021-04-13 02:31:10 +0200infinity0(~infinity0@freenet/developer/infinity0)
2021-04-13 02:33:06 +0200dansho(~dansho@ec2-13-112-45-179.ap-northeast-1.compute.amazonaws.com) (Ping timeout: 240 seconds)
2021-04-13 02:35:13 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2021-04-13 02:38:00 +0200vicfred(~vicfred@unaffiliated/vicfred)
2021-04-13 02:40:13 +0200dhil(~dhil@80.208.56.181) (Ping timeout: 240 seconds)
2021-04-13 02:40:47 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-13 02:40:53 +0200vicfred(~vicfred@unaffiliated/vicfred) (Client Quit)
2021-04-13 02:45:31 +0200__minoru__shirae(~shiraeesh@109.166.56.189) (Ping timeout: 252 seconds)
2021-04-13 02:45:44 +0200 <DigitalKiwi> edwardk: who? ;)
2021-04-13 02:46:21 +0200 <DigitalKiwi> edwardk: even on the occassions that i remember there is a third author i don't remember the name...
2021-04-13 02:46:40 +0200dariof4(~dario@217.171.72.98) (Quit: WeeChat 3.1)
2021-04-13 02:46:47 +0200HannaM(~quassel@p54849510.dip0.t-ipconnect.de) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
2021-04-13 02:46:59 +0200 <Axman6> Turns out that Real World HAskell leads to disappearing into the Faceborg
2021-04-13 02:47:34 +0200vicfred(~vicfred@unaffiliated/vicfred)
2021-04-13 02:49:02 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-13 02:50:15 +0200 <DigitalKiwi> ski: see that right there is that why python doesn't have TCO. all of those words that i know a few of...
2021-04-13 02:51:38 +0200 <ski> i could try to elaborate, if there's any particular ones you're wondering about
2021-04-13 02:52:25 +0200 <ski> (not sure about what the lack of TCO (a misnomer) in Python has to do with the above, though)
2021-04-13 02:54:38 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds)
2021-04-13 02:55:28 +0200 <ski> (sometimes people put forth the argument that proper tail calls interfere with (traditional procedural) debugging. however, i've not seen anyone complain about not being able to see in a stack trace all the previous iterations of a loop (whose execution hasn't ended yet), so i consider this argument to be specious, or at least not sufficiently taking the relevant issues into account)
2021-04-13 02:56:07 +0200gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2021-04-13 02:56:28 +0200gzj(~gzj@unaffiliated/gzj)
2021-04-13 02:57:25 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-04-13 02:58:05 +0200zaquest(~notzaques@5.128.210.178) (Quit: Leaving)
2021-04-13 02:59:49 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Remote host closed the connection)
2021-04-13 03:00:09 +0200zaquest(~notzaques@5.128.210.178)
2021-04-13 03:00:34 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2021-04-13 03:02:19 +0200Guest_88(708d802a@112-141-128-42.sta.dodo.net.au)
2021-04-13 03:05:26 +0200rajivr(uid269651@gateway/web/irccloud.com/x-zldwlxmsftsxcrzs)
2021-04-13 03:06:11 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 240 seconds)
2021-04-13 03:08:57 +0200Codaraxis_(Codaraxis@gateway/vpn/mullvad/codaraxis)
2021-04-13 03:10:06 +0200gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2021-04-13 03:10:28 +0200gzj(~gzj@unaffiliated/gzj)
2021-04-13 03:11:22 +0200Guest_88(708d802a@112-141-128-42.sta.dodo.net.au) (Quit: Connection closed)
2021-04-13 03:13:06 +0200Codaraxis__(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Ping timeout: 268 seconds)
2021-04-13 03:14:59 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-04-13 03:16:28 +0200chenshen(~chenshen@2620:10d:c090:400::5:d34f) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
2021-04-13 03:19:56 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-13 03:20:59 +0200xff0x(~xff0x@2001:1a81:52af:1400:ec8a:b59a:161d:e7ba) (Ping timeout: 260 seconds)
2021-04-13 03:22:50 +0200xff0x(~xff0x@2001:1a81:52e3:ed00:5af0:6fcf:3010:c4d9)
2021-04-13 03:24:39 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2021-04-13 03:25:20 +0200krkini(~kini@unaffiliated/kini) (Remote host closed the connection)
2021-04-13 03:25:32 +0200wopas32(uid384704@gateway/web/irccloud.com/x-nsunqoqlyntbwalw) (Quit: Connection closed for inactivity)
2021-04-13 03:26:04 +0200mud(~mud@unaffiliated/kadoban) (Quit: bye)
2021-04-13 03:26:37 +0200kini(~kini@unaffiliated/kini)
2021-04-13 03:27:20 +0200cafce25_(~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2021-04-13 03:28:20 +0200Benzi-Junior(~BenziJuni@dsl-149-64-251.hive.is)
2021-04-13 03:28:23 +0200Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-04-13 03:28:39 +0200Tario(~Tario@201.192.165.173)
2021-04-13 03:29:58 +0200 <DigitalKiwi> ski: yeah the debugging argument (GVR) is bs. always was. i think it's a red herring. especially considering how bad the python error messages are that they find acceptable. always seemed more like a "I don't understand this thing but I can't let them know that"
2021-04-13 03:30:15 +0200 <DigitalKiwi> (GVR) gave*
2021-04-13 03:30:28 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-13 03:31:27 +0200 <DigitalKiwi> https://twitter.com/haskellhutt/status/1308076394417655820
2021-04-13 03:32:06 +0200 <monochrom> How did Hutton manage to call himself haskellhutt :)
2021-04-13 03:33:01 +0200APic(apic@apic.name)
2021-04-13 03:33:03 +0200mud(~mud@unaffiliated/kadoban)
2021-04-13 03:33:29 +0200 <monochrom> Sounds like violin gang vs piano gang
2021-04-13 03:33:32 +0200 <DigitalKiwi> not understanding a thing is fine but sometimes it's really hard for people to allow for the possibility that they are wrong
2021-04-13 03:34:22 +0200 <DigitalKiwi> odersky did that too
2021-04-13 03:36:11 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds)
2021-04-13 03:37:21 +0200 <monochrom> Perhaps not, I guess violin is difficult from the beginning to the end.
2021-04-13 03:37:24 +0200 <DigitalKiwi> that* not understand a thing but attempt to convince people otherwise
2021-04-13 03:37:59 +0200 <DigitalKiwi> ...and robert martin
2021-04-13 03:38:10 +0200dan64-(~dan64@dannyadam.com) (Quit: ZNC - http://znc.in)
2021-04-13 03:38:12 +0200Arahael(~arahael@203.221.197.144) (Ping timeout: 240 seconds)
2021-04-13 03:38:13 +0200 <DigitalKiwi> hmm i'm starting to see a pattern
2021-04-13 03:38:33 +0200dan64(~dan64@dannyadam.com)
2021-04-13 03:39:33 +0200poscat(~poscat@114.245.106.173) (Ping timeout: 240 seconds)
2021-04-13 03:45:28 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2021-04-13 03:46:21 +0200Arahael(~arahael@123-243-38-74.tpgi.com.au)
2021-04-13 03:46:28 +0200cansis(uid90033@gateway/web/irccloud.com/x-ifsukysjwkgufywd) (Quit: Connection closed for inactivity)
2021-04-13 03:49:29 +0200viluon(uid453725@gateway/web/irccloud.com/x-nfhjdcxtvlbhsvti) (Quit: Connection closed for inactivity)
2021-04-13 03:49:48 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-13 03:50:54 +0200drbean_(~drbean@TC210-63-209-98.static.apol.com.tw)
2021-04-13 03:52:02 +0200chenshen(~chenshen@2620:10d:c090:400::5:d34f)
2021-04-13 03:52:10 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-04-13 03:52:27 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr)
2021-04-13 03:53:09 +0200chenshen(~chenshen@2620:10d:c090:400::5:d34f) (Client Quit)
2021-04-13 03:53:43 +0200tmciver(~tmciver@cpe-172-101-40-226.maine.res.rr.com) (Ping timeout: 252 seconds)
2021-04-13 03:55:43 +0200tmciver(~tmciver@cpe-172-101-40-226.maine.res.rr.com)
2021-04-13 03:55:59 +0200 <maralorn> wz1000: I actually chose that solution exactly because I want every error to bubble up.
2021-04-13 03:56:17 +0200 <maralorn> Have been bitten to much by a crucial worker thread silently dying.
2021-04-13 03:57:10 +0200 <maralorn> But of course I would like to do that without building up pointers to already exited threads in memory.
2021-04-13 03:58:06 +0200ep1ctetus(~epictetus@ip72-194-54-201.sb.sd.cox.net)
2021-04-13 04:00:03 +0200__minoru__shirae(~shiraeesh@109.166.56.189)
2021-04-13 04:00:06 +0200Alleria(~textual@2603-7000-3040-0000-61e5-3b09-ada8-75b7.res6.spectrum.com)
2021-04-13 04:00:30 +0200AlleriaGuest26121
2021-04-13 04:00:57 +0200thc202(~thc202@unaffiliated/thc202) (Ping timeout: 258 seconds)
2021-04-13 04:01:55 +0200 <ski> DigitalKiwi : .. yea :/
2021-04-13 04:02:02 +0200 <ski> (who's Robert Martin ?)
2021-04-13 04:03:06 +0200mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Remote host closed the connection)
2021-04-13 04:03:26 +0200 <DigitalKiwi> green orb
2021-04-13 04:03:34 +0200Jajik(xchlup2@gateway/shell/fi.muni.cz/x-ynaunapgbwfqheim) (Quit: Ping timeout (120 seconds))
2021-04-13 04:03:49 +0200Jajik(xchlup2@gateway/shell/fi.muni.cz/x-dnykbukmeewwqznd)
2021-04-13 04:04:03 +0200 <DigitalKiwi> Clean Code
2021-04-13 04:04:19 +0200Guest26121(~textual@2603-7000-3040-0000-61e5-3b09-ada8-75b7.res6.spectrum.com) (Ping timeout: 250 seconds)
2021-04-13 04:04:24 +0200urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2021-04-13 04:05:49 +0200lawid(~quassel@ip5b41869c.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2021-04-13 04:06:16 +0200 <DigitalKiwi> https://twitter.com/jdan/status/1305170088304300032 lolol
2021-04-13 04:06:46 +0200__minoru__shirae(~shiraeesh@109.166.56.189) (Ping timeout: 268 seconds)
2021-04-13 04:06:52 +0200 <ski> <https://en.wikipedia.org/wiki/Robert_C._Martin>, i take it
2021-04-13 04:06:59 +0200 <glguy> It doesn't seem obvious to me that not having an implicit tail call optimization is a misfeature
2021-04-13 04:07:08 +0200 <glguy> not having it and having an explicit tail call both seem valid
2021-04-13 04:07:30 +0200 <glguy> certainly not something that merits insulting the person making the tradeoff
2021-04-13 04:07:30 +0200 <DigitalKiwi> that was the first one that popped up in my browser history for 'unclebob'
2021-04-13 04:08:52 +0200 <ski> having it as an optimization is rather meh, i think
2021-04-13 04:09:45 +0200DigitalKiwiprobably meant TCE not TCO if that makes a difference
2021-04-13 04:10:09 +0200 <DigitalKiwi> stack no blow up ;p
2021-04-13 04:11:13 +0200lawid(~quassel@2a02:8109:b5c0:5334:265e:beff:fe2a:dde8)
2021-04-13 04:11:46 +0200 <ski> i agree it can be respectable to not have it, or have an explicit notation. (although i prefer having it, implicitly)
2021-04-13 04:12:42 +0200oniijin(~oniijin@185.204.1.185) (Remote host closed the connection)
2021-04-13 04:12:59 +0200 <ski> (btw, fwiw, it was discovered independently in the logic programming world, under the name "Last Call". e.g. CTM introduces it as a natural consequence of their modelling of the operational/procedural semantics)
2021-04-13 04:15:36 +0200grimpeux(~textual@modemcable153.12-178-173.mc.videotron.ca)
2021-04-13 04:16:31 +0200lawid(~quassel@2a02:8109:b5c0:5334:265e:beff:fe2a:dde8) (Ping timeout: 260 seconds)
2021-04-13 04:22:29 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
2021-04-13 04:25:13 +0200grimpeux(~textual@modemcable153.12-178-173.mc.videotron.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-04-13 04:26:40 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-04-13 04:28:08 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-13 04:31:16 +0200 <cohn> 1
2021-04-13 04:33:17 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 268 seconds)
2021-04-13 04:33:36 +0200jamm_(~jamm@unaffiliated/jamm)
2021-04-13 04:34:08 +0200gzj(~gzj@unaffiliated/gzj) (Read error: Connection reset by peer)
2021-04-13 04:34:27 +0200gzj(~gzj@unaffiliated/gzj)
2021-04-13 04:38:07 +0200jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 250 seconds)
2021-04-13 04:38:24 +0200dcbdan(~dcbdan@c-73-76-129-120.hsd1.tx.comcast.net)
2021-04-13 04:43:40 +0200conjunctive(sid433686@gateway/web/irccloud.com/x-ywvgcymrsekezwdb)
2021-04-13 04:43:47 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-04-13 04:45:09 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-13 04:48:04 +0200theDon(~td@muedsl-82-207-238-004.citykom.de) (Ping timeout: 268 seconds)
2021-04-13 04:49:28 +0200theDon(~td@muedsl-82-207-238-185.citykom.de)
2021-04-13 04:50:05 +0200haya(~haya@ec2-18-231-117-140.sa-east-1.compute.amazonaws.com) (Read error: Connection reset by peer)
2021-04-13 04:50:25 +0200haya(~haya@ec2-18-231-117-140.sa-east-1.compute.amazonaws.com)
2021-04-13 04:51:56 +0200FinnElija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-04-13 04:51:56 +0200finn_elijaGuest41868
2021-04-13 04:51:56 +0200FinnElijafinn_elija
2021-04-13 04:53:08 +0200jamm_(~jamm@unaffiliated/jamm)
2021-04-13 04:53:15 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-04-13 04:55:09 +0200Guest41868(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 240 seconds)
2021-04-13 04:56:05 +0200danso(~dan@23-233-111-52.cpe.pppoe.ca) (Ping timeout: 268 seconds)
2021-04-13 04:57:29 +0200jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 258 seconds)
2021-04-13 04:58:02 +0200xlei(znc@unaffiliated/xlei) (Quit: ZNC - https://znc.in)
2021-04-13 04:58:30 +0200howdoi(uid224@gateway/web/irccloud.com/x-wqwlliyoydaqzoui) (Quit: Connection closed for inactivity)
2021-04-13 04:58:40 +0200myShoggoth(~myShoggot@97-120-72-12.ptld.qwest.net) (Remote host closed the connection)
2021-04-13 04:59:04 +0200myShoggoth(~myShoggot@97-120-72-12.ptld.qwest.net)
2021-04-13 05:02:07 +0200danso(~dan@23-233-111-52.cpe.pppoe.ca)
2021-04-13 05:03:15 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 265 seconds)
2021-04-13 05:06:44 +0200santiacq(~santiacq@r186-50-76-54.dialup.adsl.anteldata.net.uy)
2021-04-13 05:08:47 +0200justan0theruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds)
2021-04-13 05:11:27 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Remote host closed the connection)
2021-04-13 05:11:27 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-13 05:11:52 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-04-13 05:14:45 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2021-04-13 05:17:29 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-04-13 05:20:11 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser)
2021-04-13 05:21:42 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-04-13 05:29:05 +0200Stanley00(~stanley00@unaffiliated/stanley00)
2021-04-13 05:32:19 +0200haritz(~hrtz@unaffiliated/haritz) (Quit: ZNC 1.7.2+deb3 - https://znc.in)
2021-04-13 05:32:31 +0200haritz(~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220)
2021-04-13 05:32:31 +0200haritz(~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) (Changing host)
2021-04-13 05:32:31 +0200haritz(~hrtz@unaffiliated/haritz)
2021-04-13 05:36:11 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving)
2021-04-13 05:39:26 +0200aerona(~aerona@2600:6c54:4600:f300:469c:10f6:fe62:fc1c) (Remote host closed the connection)
2021-04-13 05:40:57 +0200waleee-cl(uid373333@gateway/web/irccloud.com/x-laygyesnubfpnshz) (Quit: Connection closed for inactivity)
2021-04-13 05:45:11 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-04-13 05:46:58 +0200petersen(~petersen@redhat/juhp)
2021-04-13 05:48:46 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2021-04-13 05:51:27 +0200chenshen(~chenshen@2620:10d:c090:400::5:9f16)
2021-04-13 05:52:31 +0200kini(~kini@unaffiliated/kini) (Remote host closed the connection)
2021-04-13 05:52:45 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3061:d9b2:32c9:4068) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-04-13 05:52:47 +0200Codaraxis_(Codaraxis@gateway/vpn/mullvad/codaraxis) (Read error: Connection reset by peer)
2021-04-13 05:53:48 +0200kini(~kini@unaffiliated/kini)
2021-04-13 05:55:35 +0200xlei(znc@unaffiliated/xlei)
2021-04-13 05:57:44 +0200malumore(~malumore@151.62.122.89)
2021-04-13 06:00:10 +0200mrchampion(~mrchampio@38.18.109.23) (Remote host closed the connection)
2021-04-13 06:00:15 +0200SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!)
2021-04-13 06:00:18 +0200Alleria(~textual@2603-7000-3040-0000-61e5-3b09-ada8-75b7.res6.spectrum.com)
2021-04-13 06:00:42 +0200AlleriaGuest92803
2021-04-13 06:00:48 +0200SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net)
2021-04-13 06:04:47 +0200Guest92803(~textual@2603-7000-3040-0000-61e5-3b09-ada8-75b7.res6.spectrum.com) (Ping timeout: 260 seconds)
2021-04-13 06:07:37 +0200ep1ctetus(~epictetus@ip72-194-54-201.sb.sd.cox.net) (Ping timeout: 268 seconds)
2021-04-13 06:07:59 +0200ep1ctetus(~epictetus@ip72-194-54-201.sb.sd.cox.net)
2021-04-13 06:09:00 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:48e1:cb11:43e0:9fe6)
2021-04-13 06:11:34 +0200kiweun(~kiweun@2607:fea8:2a62:9600:21ac:92a1:db64:4dd2) (Remote host closed the connection)
2021-04-13 06:11:59 +0200malumore_(~malumore@151.62.122.89)
2021-04-13 06:12:02 +0200malumore_(~malumore@151.62.122.89) (Read error: Connection reset by peer)
2021-04-13 06:12:54 +0200malumore_(~malumore@151.62.122.89)
2021-04-13 06:14:13 +0200malumore(~malumore@151.62.122.89) (Ping timeout: 240 seconds)
2021-04-13 06:16:18 +0200eacameron(uid256985@gateway/web/irccloud.com/x-nilpnpzcfkqakcso) (Quit: Connection closed for inactivity)
2021-04-13 06:19:59 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-04-13 06:20:18 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-04-13 06:30:09 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-04-13 06:38:08 +0200N3RGY(~N3RGY@static-198-54-128-101.cust.tzulo.com)
2021-04-13 06:45:52 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 268 seconds)
2021-04-13 06:46:11 +0200carlomagno(~cararell@148.87.23.4) (Quit: Leaving.)
2021-04-13 06:52:47 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-04-13 07:09:40 +0200aVikingTrex(789a2138@120.154.33.56)
2021-04-13 07:15:02 +0200danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2021-04-13 07:16:10 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-04-13 07:16:17 +0200danso(~dan@23-233-111-52.cpe.pppoe.ca) (Ping timeout: 252 seconds)
2021-04-13 07:16:40 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 252 seconds)
2021-04-13 07:21:45 +0200Sgeo_(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-04-13 07:22:22 +0200Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Ping timeout: 260 seconds)
2021-04-13 07:26:11 +0200xkapastel(uid17782@gateway/web/irccloud.com/x-xevksgpnhxylybkh) (Quit: Connection closed for inactivity)
2021-04-13 07:27:58 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-13 07:31:07 +0200pavonia(~user@unaffiliated/siracusa) (Quit: Bye!)
2021-04-13 07:31:34 +0200N3RGY(~N3RGY@static-198-54-128-101.cust.tzulo.com) ()
2021-04-13 07:33:08 +0200pengjiz(~user@2601:547:902:6d00::2) (Quit: ERC (IRC client for Emacs 27.2))
2021-04-13 07:33:09 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2021-04-13 07:33:21 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-04-13 07:33:49 +0200gnumonic(~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net)
2021-04-13 07:38:53 +0200myShoggoth(~myShoggot@97-120-72-12.ptld.qwest.net) (Ping timeout: 268 seconds)
2021-04-13 07:42:04 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-13 07:43:07 +0200loller_(uid358106@gateway/web/irccloud.com/x-jmeczyzfdqqbsxdy) (Quit: Connection closed for inactivity)
2021-04-13 07:44:46 +0200curiousgay(~gay@178.217.208.8) (Ping timeout: 240 seconds)
2021-04-13 07:46:45 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:48e1:cb11:43e0:9fe6) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-04-13 07:47:28 +0200APic(apic@apic.name) (Ping timeout: 252 seconds)
2021-04-13 07:47:40 +0200johannes_(~johannes@mue-88-130-62-146.dsl.tropolys.de)
2021-04-13 07:47:56 +0200johannes_kenran
2021-04-13 07:51:11 +0200idhugo(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
2021-04-13 07:51:15 +0200myShoggoth(~myShoggot@97-120-72-12.ptld.qwest.net)
2021-04-13 07:56:55 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-04-13 07:56:56 +0200Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-04-13 07:57:04 +0200Tario(~Tario@201.192.165.173)
2021-04-13 08:00:04 +0200Alleria(~textual@2603-7000-3040-0000-61e5-3b09-ada8-75b7.res6.spectrum.com)
2021-04-13 08:00:11 +0200aVikingTrex(789a2138@120.154.33.56) (Quit: Connection closed)
2021-04-13 08:00:29 +0200AlleriaGuest30851
2021-04-13 08:04:33 +0200Guest30851(~textual@2603-7000-3040-0000-61e5-3b09-ada8-75b7.res6.spectrum.com) (Ping timeout: 258 seconds)
2021-04-13 08:06:13 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2021-04-13 08:06:38 +0200oish(~charlie@228.25.169.217.in-addr.arpa)
2021-04-13 08:07:08 +0200chenshen(~chenshen@2620:10d:c090:400::5:9f16) (Quit: Textual IRC Client: www.textualapp.com)
2021-04-13 08:08:35 +0200michalz(~user@185.246.204.44)
2021-04-13 08:09:41 +0200idhugo(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds)
2021-04-13 08:12:24 +0200kiweun(~kiweun@2607:fea8:2a62:9600:88d6:eb14:256a:da1)
2021-04-13 08:13:22 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-04-13 08:15:23 +0200jamm_(~jamm@unaffiliated/jamm)
2021-04-13 08:15:39 +0200berberman(~berberman@unaffiliated/berberman) (Ping timeout: 250 seconds)
2021-04-13 08:16:04 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-04-13 08:16:37 +0200berberman(~berberman@unaffiliated/berberman)
2021-04-13 08:17:12 +0200kiweun(~kiweun@2607:fea8:2a62:9600:88d6:eb14:256a:da1) (Ping timeout: 258 seconds)
2021-04-13 08:19:53 +0200jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 258 seconds)
2021-04-13 08:22:41 +0200myShoggoth(~myShoggot@97-120-72-12.ptld.qwest.net) (Ping timeout: 268 seconds)
2021-04-13 08:23:21 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 265 seconds)
2021-04-13 08:26:00 +0200APic(apic@apic.name)
2021-04-13 08:28:13 +0200oish(~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 240 seconds)
2021-04-13 08:29:43 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-04-13 08:31:25 +0200coot(~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl)
2021-04-13 08:32:50 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-13 08:38:16 +0200Sorny(~Sornaensi@077213203030.dynamic.telenor.dk)
2021-04-13 08:39:59 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2021-04-13 08:41:23 +0200Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Excess Flood)
2021-04-13 08:41:46 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-04-13 08:42:16 +0200Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362)
2021-04-13 08:44:49 +0200oish(~charlie@228.25.169.217.in-addr.arpa)
2021-04-13 08:44:49 +0200Sornaensis(~Sornaensi@79.142.232.102.static.router4.bolignet.dk)
2021-04-13 08:45:40 +0200myShoggoth(~myShoggot@97-120-72-12.ptld.qwest.net)
2021-04-13 08:47:11 +0200Sorny(~Sornaensi@077213203030.dynamic.telenor.dk) (Ping timeout: 240 seconds)
2021-04-13 08:47:56 +0200kenran(~johannes@mue-88-130-62-146.dsl.tropolys.de) (Quit: leaving)
2021-04-13 08:54:41 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2021-04-13 08:54:45 +0200myShoggoth(~myShoggot@97-120-72-12.ptld.qwest.net) (Ping timeout: 268 seconds)
2021-04-13 08:55:29 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-04-13 08:56:14 +0200__minoru__shirae(~shiraeesh@109.166.56.189)
2021-04-13 08:57:44 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-04-13 08:57:52 +0200cfricke(~cfricke@unaffiliated/cfricke)
2021-04-13 09:00:04 +0200idhugo(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
2021-04-13 09:00:23 +0200rnat2(uid73555@gateway/web/irccloud.com/x-blfxzrgdprfecfub)
2021-04-13 09:02:15 +0200graf_blutwurst(~user@2001:171b:226e:adc0:c021:f7f7:82b:a023)
2021-04-13 09:03:01 +0200myname_(~guruchara@188.66.209.54)
2021-04-13 09:03:15 +0200 <myname_> hello
2021-04-13 09:04:16 +0200 <myname_> #haskell-offtopic
2021-04-13 09:04:49 +0200myname_(~guruchara@188.66.209.54) (Client Quit)
2021-04-13 09:05:01 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 252 seconds)
2021-04-13 09:06:52 +0200BosonCollider(~olofs@90-227-86-119-no542.tbcn.telia.com)
2021-04-13 09:07:04 +0200Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck)
2021-04-13 09:08:01 +0200pohvak(~pohvak@177.228.72.223)
2021-04-13 09:08:47 +0200hyiltiz(~quassel@unaffiliated/hyiltiz) (Ping timeout: 265 seconds)
2021-04-13 09:08:48 +0200bitmapper(uid464869@gateway/web/irccloud.com/x-fsfopwufuwlbuqbr) (Quit: Connection closed for inactivity)
2021-04-13 09:09:16 +0200pohvak(~pohvak@177.228.72.223) ()
2021-04-13 09:09:54 +0200hyiltiz(~quassel@31.220.5.250)
2021-04-13 09:09:55 +0200hyiltiz(~quassel@31.220.5.250) (Changing host)
2021-04-13 09:09:55 +0200hyiltiz(~quassel@unaffiliated/hyiltiz)
2021-04-13 09:14:31 +0200OneFixt(~OneFixt@217.146.82.202)
2021-04-13 09:15:59 +0200__minoru__shirae(~shiraeesh@109.166.56.189) (Ping timeout: 246 seconds)
2021-04-13 09:17:35 +0200LKoen(~LKoen@65.250.88.92.rev.sfr.net)
2021-04-13 09:19:38 +0200sord937(~sord937@gateway/tor-sasl/sord937)
2021-04-13 09:20:26 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 240 seconds)
2021-04-13 09:21:18 +0200Varis(~Tadas@unaffiliated/varis)
2021-04-13 09:21:57 +0200xff0x(~xff0x@2001:1a81:52e3:ed00:5af0:6fcf:3010:c4d9) (Ping timeout: 250 seconds)
2021-04-13 09:22:59 +0200xff0x(~xff0x@2001:1a81:52e3:ed00:6689:c12:7ca5:50eb)
2021-04-13 09:25:15 +0200nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-04-13 09:31:29 +0200bahamas(~lucian@86.120.22.101)
2021-04-13 09:31:30 +0200bahamas(~lucian@86.120.22.101) (Changing host)
2021-04-13 09:31:30 +0200bahamas(~lucian@unaffiliated/bahamas)
2021-04-13 09:31:51 +0200 <bahamas> is there a package that makes it easier to display things in the terminal?
2021-04-13 09:33:06 +0200__minoru__shirae(~shiraeesh@109.166.56.189)
2021-04-13 09:33:40 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2021-04-13 09:35:50 +0200LKoen(~LKoen@65.250.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2021-04-13 09:40:22 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-13 09:41:31 +0200kritzefitz(~kritzefit@fw-front.credativ.com)
2021-04-13 09:42:33 +0200malumore_(~malumore@151.62.122.89) (Ping timeout: 240 seconds)
2021-04-13 09:42:57 +0200srk(~sorki@unaffiliated/srk)
2021-04-13 09:43:19 +0200KeyJoo(~KeyJoo@62.176.30.191)
2021-04-13 09:44:41 +0200malumore_(~malumore@151.62.122.89)
2021-04-13 09:45:04 +0200 <bahamas> how about a package that I can use to parse an URL in order to get the host?
2021-04-13 09:49:57 +0200Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck) (Ping timeout: 240 seconds)
2021-04-13 09:52:37 +0200kristijonas(~kristijon@78-56-32-39.static.zebra.lt) (Remote host closed the connection)
2021-04-13 09:53:42 +0200 <opqdonut> bahamas: vty for the first, network-uri for the second
2021-04-13 09:53:56 +0200oish(~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 268 seconds)
2021-04-13 09:54:02 +0200 <opqdonut> https://hackage.haskell.org/package/network-uri-2.6.4.1/docs/Network-URI.html#v:parseURI
2021-04-13 09:54:45 +0200 <merijn> I missed the question, vty for what?
2021-04-13 09:55:14 +0200 <merijn> (i.e., maybe brick is more appropriate?)
2021-04-13 09:55:15 +0200 <opqdonut> "is there a package that makes it easier to display things in the terminal?"
2021-04-13 09:55:38 +0200 <merijn> brick :p
2021-04-13 09:55:43 +0200 <merijn> vty is low level
2021-04-13 09:55:59 +0200 <merijn> brick is more of "widgets for terminal UI" library
2021-04-13 09:55:59 +0200 <opqdonut> nice, I hadn't heard of brick
2021-04-13 09:56:13 +0200 <merijn> opqdonut: It's the successor of the (now deprecated) vty-ui
2021-04-13 09:56:35 +0200 <merijn> vty is really intended to be a low level terminal interface
2021-04-13 09:59:16 +0200santiacq(~santiacq@r186-50-76-54.dialup.adsl.anteldata.net.uy) (Read error: Connection reset by peer)
2021-04-13 10:00:08 +0200santiacq(~santiacq@r167-60-229-44.dialup.adsl.anteldata.net.uy)
2021-04-13 10:02:34 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2021-04-13 10:03:35 +0200Sgeo_(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
2021-04-13 10:04:48 +0200dhil(~dhil@80.208.56.181)
2021-04-13 10:07:20 +0200hendursa1(~weechat@gateway/tor-sasl/hendursaga)
2021-04-13 10:08:52 +0200 <bahamas> opqdonut, merijn thank you!
2021-04-13 10:08:54 +0200acidjnk_new(~acidjnk@p200300d0c72b9561cdce4d77de6ce0bc.dip0.t-ipconnect.de)
2021-04-13 10:09:57 +0200hendursaga(~weechat@gateway/tor-sasl/hendursaga) (Ping timeout: 240 seconds)
2021-04-13 10:10:25 +0200fiedlr(~fiedlr@83.148.33.254) (Remote host closed the connection)
2021-04-13 10:10:40 +0200fiedlr(~fiedlr@83.148.33.254)
2021-04-13 10:13:08 +0200chele(~chele@78.128.94.174)
2021-04-13 10:13:14 +0200kiweun(~kiweun@2607:fea8:2a62:9600:e029:f384:595c:2c74)
2021-04-13 10:17:57 +0200kiweun(~kiweun@2607:fea8:2a62:9600:e029:f384:595c:2c74) (Ping timeout: 258 seconds)
2021-04-13 10:19:41 +0200KeyJoo(~KeyJoo@62.176.30.191) (Ping timeout: 260 seconds)
2021-04-13 10:21:39 +0200mikoto-chan(~anass@gateway/tor-sasl/mikoto-chan)
2021-04-13 10:21:42 +0200kini(~kini@unaffiliated/kini) (Remote host closed the connection)
2021-04-13 10:21:45 +0200malumore_(~malumore@151.62.122.89) (Remote host closed the connection)
2021-04-13 10:22:04 +0200malumore_(~malumore@151.62.122.89)
2021-04-13 10:22:56 +0200todda7(~torstein@athedsl-09242.home.otenet.gr) (Ping timeout: 268 seconds)
2021-04-13 10:22:58 +0200kini(~kini@unaffiliated/kini)
2021-04-13 10:24:23 +0200drbean_(~drbean@TC210-63-209-98.static.apol.com.tw) (Ping timeout: 252 seconds)
2021-04-13 10:26:14 +0200jpe90(~user@pool-108-31-85-19.washdc.fios.verizon.net)
2021-04-13 10:31:08 +0200 <jpe90> hi guys, i'm very new to haskell- could someone help me understand why my implementation of the "zip" list function gives an exception for non-exhaustive patterns? https://rextester.com/SVKB21534
2021-04-13 10:32:21 +0200 <Arahael> jpe90: Which pattern does it match if there are zero elements?
2021-04-13 10:32:44 +0200 <Arahael> jpe90: Remember the three most important numbers: 0, 1, and infinity.
2021-04-13 10:33:06 +0200 <merijn> jpe90: oof... that call to length is pretty bad
2021-04-13 10:33:33 +0200 <merijn> That function as written now is gonna be something, like O(n^3) or something
2021-04-13 10:33:57 +0200timCF(~i.tkachuk@200-149-20-81.sta.estpak.ee)
2021-04-13 10:34:47 +0200 <merijn> jpe90: Anyway, you patterns already check that the lists are non-empty, so the length call is redundant
2021-04-13 10:35:12 +0200todda7(~torstein@athedsl-09242.home.otenet.gr)
2021-04-13 10:35:47 +0200 <jpe90> oh okay I wasn't understanding the pattern mechanism
2021-04-13 10:36:13 +0200 <jpe90> still wrapping my head around the basics
2021-04-13 10:36:27 +0200 <timCF> Hello! Can anybody suggest correct way to compose `ExceptT` with other transformers, for example `SqlPersistT` from Persistent/Equeleto package? For example I have SQL procedure of type `SqlPersistT m (Either a b)` but I don't want to do bind+case boilerplate and operate inside `ExceptT` context as well.
2021-04-13 10:37:10 +0200 <Arahael> jpe90: You have only one pattern - but two guards.
2021-04-13 10:37:19 +0200 <Arahael> jpe90: And the guards are what's expensive here.
2021-04-13 10:37:53 +0200 <jpe90> right, and in that pattern i'm implicitly stating that (x:xs) and (y:ys) are non null, is that correct? which is probably a mistake?
2021-04-13 10:37:56 +0200 <merijn> timCF: The correct way to compose anything with SqlPersistT requires a thorough study of the persistent codebase >.>
2021-04-13 10:37:57 +0200thc202(~thc202@unaffiliated/thc202)
2021-04-13 10:38:02 +0200 <merijn> jpe90: Not implicitly, explicitly :p
2021-04-13 10:38:16 +0200 <jpe90> haha got it
2021-04-13 10:38:34 +0200 <merijn> jpe90: You pattern match on constructors, lists have 2 constructors [] (i.e., empty list) and : (i.e. a first element and remainder)
2021-04-13 10:40:10 +0200 <jpe90> so i should probably just add pattern matches for empty lists in either positiona nd get rid of the guards
2021-04-13 10:40:19 +0200 <merijn> jpe90: So your pattern currently only handle the case where both lists are non-empty
2021-04-13 10:40:24 +0200 <merijn> jpe90: Yeah
2021-04-13 10:40:30 +0200 <timCF> merijn: let's say for simplicity - it's just some isomorphic generic transformer `trans m (Either a b)`. You are saying there is no true correct way to get rid of `Either` and mix `trans` capabilities with `ExceptT`?
2021-04-13 10:41:00 +0200 <merijn> jpe90: Side-note: "length" is O(n) (because lists are linked lists and you need to walk the entire thing to find out the length) so you wanna avoid that whenever possible
2021-04-13 10:41:28 +0200 <merijn> timCF: In general you'd probably want
2021-04-13 10:41:30 +0200 <merijn> @hackage mmorph
2021-04-13 10:41:30 +0200 <lambdabot> https://hackage.haskell.org/package/mmorph
2021-04-13 10:41:48 +0200 <merijn> But I'd be super paranoid about mixing that with SqlPersistT
2021-04-13 10:42:06 +0200 <merijn> Because that's gonna make reasoning about transactions super hard
2021-04-13 10:42:11 +0200DavidEichmann(~david@47.27.93.209.dyn.plus.net)
2021-04-13 10:43:19 +0200 <timCF> merijn: you mean that in some cases I want to rollback in case of `Left` but in some other cases it make sense to continue transaction?
2021-04-13 10:43:35 +0200Pickchea(~private@unaffiliated/pickchea)
2021-04-13 10:43:48 +0200 <jpe90> merijn: gotcha.. this seems to work and is hopefully better https://rextester.com/KWIHZ83934
2021-04-13 10:43:58 +0200 <timCF> merijn: and blindly mixing SqlPersistT with ExceptT will not give me ability to make these decisions?
2021-04-13 10:44:14 +0200 <merijn> timCF: Well, suppose you end up with "SqlPersistT (ExceptT e m) a" or "ExceptT e (SqlPersistT m) a" do you know what kinda short-circuiting happens when you run them?
2021-04-13 10:44:36 +0200 <merijn> If you hit Left, will you skip all the remaining queries and then commit? Or will you bail out? Or...?
2021-04-13 10:44:51 +0200 <merijn> jpe90: Yeah, that looks about right
2021-04-13 10:44:59 +0200 <jpe90> alright cool thanks guys
2021-04-13 10:45:11 +0200 <Arahael> merijn: Talking about jpe90's example, I usually organise those patterns the opposite way - but does that have an impact on performance?
2021-04-13 10:45:11 +0200 <merijn> jpe90: You can make it slightly shorter
2021-04-13 10:45:31 +0200 <jpe90> oh yeah? how so
2021-04-13 10:45:39 +0200 <merijn> jpe90: https://paste.tomsmeding.com/McvKOmVR
2021-04-13 10:45:48 +0200 <timCF> merijn: thanks!
2021-04-13 10:45:59 +0200 <jpe90> oh i see
2021-04-13 10:46:02 +0200 <merijn> jpe90: Consider this: When the first case (both non-empty) fails, then at least 1 of the two must be empty
2021-04-13 10:46:19 +0200 <merijn> And you don't have to care which
2021-04-13 10:46:41 +0200 <jpe90> right that makes sense
2021-04-13 10:46:57 +0200 <Arahael> That's also why I typically order them the other way. :) Just wondering if there's a performance implication here, too.
2021-04-13 10:47:19 +0200 <jpe90> ah so you're saying you like to put failure patterns after success patterns in general
2021-04-13 10:47:40 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-04-13 10:48:01 +0200 <merijn> jpe90: If you have only 1 failure result, you can write things for the happy path and then handle all the failures at once
2021-04-13 10:48:24 +0200 <merijn> jpe90: I'm not sure I'd recommend that "in general", it can make sense to handle (some) failures first
2021-04-13 10:48:48 +0200 <merijn> But patterns are checked "top to bottom", so smart ordering can make code a lot cleaner/simpler
2021-04-13 10:52:36 +0200__minoru__shirae(~shiraeesh@109.166.56.189) (Ping timeout: 246 seconds)
2021-04-13 10:54:54 +0200 <ski> Arahael : yes (and strictness)
2021-04-13 10:55:07 +0200 <Arahael> ski: Makes sense.
2021-04-13 10:55:51 +0200 <Arahael> jpe90: Btw, you can enable a compiler option to make any non-total function result in a warning when you compile.
2021-04-13 10:55:59 +0200 <merijn> Arahael: No you can't
2021-04-13 10:56:00 +0200 <ski> with the recursive case first, as in merijn's paste, `zip [] _|_' is `[]'. with the recursive case last, it would be `_|_'
2021-04-13 10:56:11 +0200 <Arahael> jpe90: So that your function should not have to fail at runtime for i to... Oh, you can't, merijn?
2021-04-13 10:56:11 +0200 <merijn> Arahael: You can make incomplete patterns a warning
2021-04-13 10:56:21 +0200 <Arahael> Ah - there's a difference?
2021-04-13 10:56:25 +0200 <merijn> Arahael: I dunno, did you solve the Halting problem?
2021-04-13 10:56:34 +0200 <merijn> :p
2021-04-13 10:56:50 +0200 <Arahael> merijn: Ok, so my understanding of what "total" meant is slightly incorrect, then.
2021-04-13 10:57:02 +0200 <merijn> Arahael: A total function is one that is guaranteed to terminate, so you gotta rule out non-termination to know if something is total :)
2021-04-13 10:57:10 +0200 <Arahael> Ah, indeed.
2021-04-13 10:57:13 +0200ski. o O ( `-Wincomplete-patterns',`-Wincomplete-uni-patterns',`-Wincomplete-record-updates' )
2021-04-13 10:58:41 +0200 <merijn> Or just -Wall :p
2021-04-13 10:59:16 +0200 <jpe90> yeah I think i've got flycheck with -Wall and hlint set up
2021-04-13 10:59:21 +0200 <ski> but that's less fun to say :)
2021-04-13 10:59:46 +0200 <jpe90> they complain to me often
2021-04-13 10:59:48 +0200oish(~charlie@228.25.169.217.in-addr.arpa)
2021-04-13 11:00:36 +0200 <Arahael> I *love* hlint
2021-04-13 11:01:09 +0200 <merijn> I like that GHC actually makes -Wall be "everything, except the *really* questionable warnings", unlike gcc, where -Wall is, like, one third of the important warnings >.>
2021-04-13 11:01:35 +0200 <jpe90> yeah i really like hlint too, it's good for catching bad habits early on
2021-04-13 11:02:41 +0200 <jpe90> it would be cool if there was a "you're using excessive parens where you could use $" option, still trying to work on using that operator properly
2021-04-13 11:03:47 +0200 <merijn> word of warning
2021-04-13 11:03:53 +0200 <merijn> hlint is not gospel
2021-04-13 11:04:30 +0200 <merijn> It's basically "the opinion of the author", which may or may not (depending on the specific rule) widely accepted by everyone else
2021-04-13 11:04:49 +0200 <ski> hlint is opinionated
2021-04-13 11:05:32 +0200 <jpe90> any rules in particular you'd suggest disabling or should i just decide on my own down the road
2021-04-13 11:05:41 +0200 <merijn> I don't really use it, so not really
2021-04-13 11:05:47 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 260 seconds)
2021-04-13 11:05:49 +0200 <jpe90> gotcha
2021-04-13 11:05:58 +0200 <ski> jpe90 : oh .. i would prefer the reverse one "you're using `$', when you could use `.' or plain brackets"
2021-04-13 11:05:59 +0200 <merijn> Just a comment to take it's suggestion with a grain of salt and make up your own mind :)
2021-04-13 11:07:03 +0200 <merijn> I'm sure there's a ton of helpful beginner stuff there, but I know that python/JS communities treat pylint/jslint as gospel, so just be aware not all of hlint's opinions are as universally accepted :)
2021-04-13 11:07:12 +0200 <ski> jpe90 : "still trying to work on using that operator properly" -- how about "never", as a first approximation ?
2021-04-13 11:07:24 +0200xff0x(~xff0x@2001:1a81:52e3:ed00:6689:c12:7ca5:50eb) (Ping timeout: 258 seconds)
2021-04-13 11:07:31 +0200 <merijn> ski: pfft, $ is great with for/forM!
2021-04-13 11:07:47 +0200 <ski> `BlockArguments' ftw ! :)
2021-04-13 11:07:55 +0200 <merijn> I dislike blockarguments
2021-04-13 11:08:17 +0200xff0x(~xff0x@2001:1a81:52e3:ed00:4e19:7447:12ec:457)
2021-04-13 11:08:18 +0200 <merijn> It fits in the frivolous syntax extensions
2021-04-13 11:08:29 +0200 <ski> (but yea, there are situations where it's acceptable. but newbies, for whatever reason, tend to use it *way* too much ..)
2021-04-13 11:08:32 +0200 <merijn> Breaks tons of shit and the pay-off isn't near good enough
2021-04-13 11:09:38 +0200 <ski> jpe90 : and i second making up your own mind. it's your code, it ought to be clear and readable, to *you*
2021-04-13 11:10:07 +0200 <ski> (but being aware of various styles, arguments, issues, opinions, is good)
2021-04-13 11:10:18 +0200 <merijn> ski: I think the overuse of $ comes from "magical thinking" where they think it's just brackets-B-gone
2021-04-13 11:11:08 +0200 <ski> the idea that brackets are inherently bad, and are better to avoid, seems to be the root problem ?
2021-04-13 11:11:08 +0200 <jpe90> and it's a shiny new operator that i haven't seen before.. can't help but touch the shiny things..
2021-04-13 11:11:36 +0200nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds)
2021-04-13 11:11:47 +0200 <ski> (might be related to a general fear of algebra, as monochrom's suggested, iirc)
2021-04-13 11:12:32 +0200 <merijn> jpe90: . is the (slightly more intimidating), but objectively superior shiny new operator ;)
2021-04-13 11:13:00 +0200 <merijn> ski: Very nested brackets are bad, because you end up needing a stack machine in your brain to track them :p
2021-04-13 11:13:01 +0200 <jpe90> yeah that one is really cool, definitely need to train myself to use it more
2021-04-13 11:13:10 +0200 <jpe90> reminds me of piping shell commands
2021-04-13 11:14:10 +0200 <ski> i normally prefer `(foo x . bar . baz y z) blah' over `foo x . bar . bar y z $ blah' over `foo x $ bar $ baz y z $ blah'. but `foo x (bar (baz y z blah))' is commonly also quite fine (often to be preferred to any of the former)
2021-04-13 11:14:15 +0200 <merijn> jpe90: In general . is better than $ because in a sequence of "(f . g . h . i) x" (or "f . g . h . i $ x") any part of the . pipeline can be moved into a new variable name and things still typecheck
2021-04-13 11:14:46 +0200 <ski> and that's because `.' is an associative operation (while `$' isn't)
2021-04-13 11:14:50 +0200 <merijn> i.e. if "f . g . h . i" typechecks, then, by definition, "let foo = f . g in foo . h . i" also typechecks
2021-04-13 11:15:05 +0200 <merijn> Which makes refactoring nice and easy
2021-04-13 11:15:25 +0200 <ski> merijn : yea, at that point, indentation, or explicit breaking out and naming, helps
2021-04-13 11:15:31 +0200 <ski> (re nested)
2021-04-13 11:15:51 +0200 <merijn> ski: I usually write horribly ugly 5 lines . compositions, then later lift out parts into better named chunks
2021-04-13 11:16:21 +0200hololeap(~hololeap@gateway/tor-sasl/hololeap) (Ping timeout: 240 seconds)
2021-04-13 11:17:21 +0200 <ski> (oh, and writing `foo x (bar $ baz y z blah)' is atrocious ..)
2021-04-13 11:19:02 +0200vicfred(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2021-04-13 11:19:29 +0200 <ski> and yea, if you want something to play with, `.' is more fun. e.g. `(back .) . (. forward)'
2021-04-13 11:20:19 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
2021-04-13 11:25:01 +0200fendor(~fendor@77.119.130.199.wireless.dyn.drei.com)
2021-04-13 11:25:24 +0200__monty__(~toonn@unaffiliated/toonn)
2021-04-13 11:25:44 +0200Major_Biscuit(~Major_Bis@wlan-145-94-219-47.wlan.tudelft.nl)
2021-04-13 11:28:21 +0200 <ski> @type traverse :: (a -> State s b) -> [a] -> State s [b]
2021-04-13 11:28:23 +0200 <lambdabot> (a -> State s b) -> [a] -> State s [b]
2021-04-13 11:28:24 +0200 <ski> @type ((state . (swap .)) .) . flip . mapAccumL . flip . (((swap .) . runState) .) :: (a -> State s b) -> [a] -> State s [b]
2021-04-13 11:28:25 +0200 <lambdabot> (a -> State s b) -> [a] -> State s [b]
2021-04-13 11:29:29 +0200 <xerox_> I wonder if there is a straightforward way to parallelize Data.Tree.unfoldTree, anybody got ideas?
2021-04-13 11:30:28 +0200 <ski> (.. it's too bad `State'/`StateT' has the state in the wrong order, or that could just have been `(state .) . flip . mapAccumL . flip . (runState .)' .. or perhaps even `(state .) . mapAccumL . (runState .)', if the argument ordering was different -- although that's less clear of a win)
2021-04-13 11:31:21 +0200 <ski> @type Data.Tree.unfoldTree
2021-04-13 11:31:22 +0200 <lambdabot> (b -> (a, [b])) -> b -> Tree a
2021-04-13 11:32:37 +0200 <ski> hm, do you expect it to be reasonably balanced ?
2021-04-13 11:32:47 +0200 <xerox_> yeah
2021-04-13 11:33:11 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-13 11:34:07 +0200 <ski> i guess you could do the first step, then see if you could distribute the children onto different cores ?
2021-04-13 11:36:03 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-04-13 11:36:51 +0200 <xerox_> hm good idea
2021-04-13 11:36:55 +0200bahamas(~lucian@unaffiliated/bahamas) (Quit: leaving)
2021-04-13 11:37:32 +0200 <ski> > (concat . transpose . zipWith (map . shows) [0 ..] . transpose . chunksOf 4) (words "a b c d e f g h")
2021-04-13 11:37:34 +0200 <lambdabot> ["0a","1b","2c","3d","0e","1f","2g","3h"]
2021-04-13 11:37:55 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2021-04-13 11:38:30 +0200 <xerox_> there's a pure way to go about it right? I forget what the library is, definitely not Control.Concurrent
2021-04-13 11:39:07 +0200 <ski> `Control.Parallel' ?
2021-04-13 11:39:34 +0200 <ski> perhaps with some of the strategy stuff, or `Eval'
2021-04-13 11:40:33 +0200 <ski> you can also consult the relevant sections of
2021-04-13 11:40:34 +0200 <ski> @where PCPH
2021-04-13 11:40:34 +0200 <lambdabot> "Parallel and Concurrent Programming in Haskell" by Simon Marlow in 2013 at <http://community.haskell.org/~simonmar/pcph/>,<http://chimera.labs.oreilly.com/books/1230000000929/>,<https://web.archive.
2021-04-13 11:40:34 +0200 <lambdabot> org/web/20180117194842/http://chimera.labs.oreilly.com/books/1230000000929>,<https://www.oreilly.com/library/view/parallel-and-concurrent/9781449335939/>
2021-04-13 11:42:46 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-13 11:43:13 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 240 seconds)
2021-04-13 11:43:27 +0200cafce25(~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de)
2021-04-13 11:43:47 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2021-04-13 11:44:23 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-13 11:48:41 +0200 <xerox_> oh yeah Control.Parallel.Strategies is the thing
2021-04-13 11:48:59 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-04-13 11:49:15 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2021-04-13 11:49:32 +0200timCF(~i.tkachuk@200-149-20-81.sta.estpak.ee) (Quit: leaving)
2021-04-13 11:54:42 +0200kristijonas(~kristijon@78-56-32-39.static.zebra.lt)
2021-04-13 11:59:40 +0200rnat2(uid73555@gateway/web/irccloud.com/x-blfxzrgdprfecfub) (Quit: Connection closed for inactivity)
2021-04-13 12:01:54 +0200m1dnight_sometesttempnick
2021-04-13 12:02:02 +0200sometesttempnickm1dnight_
2021-04-13 12:02:40 +0200Pickchea(~private@unaffiliated/pickchea) (Ping timeout: 252 seconds)
2021-04-13 12:03:13 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-04-13 12:03:13 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 252 seconds)
2021-04-13 12:03:16 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-04-13 12:04:04 +0200dixie(~dixie@real.wilbury.sk) (Ping timeout: 268 seconds)
2021-04-13 12:04:35 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-13 12:05:01 +0200 <xerox_> a different but related idea is how to collapse such unfolding if it happens to get the same seed twice at different points
2021-04-13 12:05:23 +0200 <xerox_> setting aside parallelism when pursuing that
2021-04-13 12:07:47 +0200arturh(~arturh@93.176.180.48) ()
2021-04-13 12:09:41 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-04-13 12:10:11 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-13 12:11:59 +0200kuribas(~user@ptr-25vy0i8g2c6vaifvwgm.18120a2.ip6.access.telenet.be)
2021-04-13 12:13:58 +0200kiweun(~kiweun@2607:fea8:2a62:9600:8c83:83d2:e977:8f1e)
2021-04-13 12:14:13 +0200Major_Biscuit(~Major_Bis@wlan-145-94-219-47.wlan.tudelft.nl) (Ping timeout: 252 seconds)
2021-04-13 12:14:52 +0200xff0x(~xff0x@2001:1a81:52e3:ed00:4e19:7447:12ec:457) (Ping timeout: 258 seconds)
2021-04-13 12:15:06 +0200 <ski> hm, somehow accumulate a `Map' from seeds/states to trees and consult it for memoization
2021-04-13 12:15:13 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-04-13 12:15:23 +0200 <ski> i guess the main problem is how to get different branches to communicate with each other
2021-04-13 12:15:33 +0200xff0x(~xff0x@2001:1a81:52e3:ed00:8d58:e974:e293:f3fe)
2021-04-13 12:16:01 +0200 <ski> perhaps one can generate the subtrees breath-first, with a queue, hmm ..
2021-04-13 12:16:10 +0200 <ski> s/breath/breadth/
2021-04-13 12:16:15 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-13 12:16:53 +0200Benzi-Junior(~BenziJuni@dsl-149-64-251.hive.is) (Ping timeout: 240 seconds)
2021-04-13 12:17:55 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr)
2021-04-13 12:18:20 +0200kiweun(~kiweun@2607:fea8:2a62:9600:8c83:83d2:e977:8f1e) (Ping timeout: 258 seconds)
2021-04-13 12:20:46 +0200Alleria_(~AllahuAkb@2603-7000-3040-0000-51cb-91e5-ecfa-0406.res6.spectrum.com) (Ping timeout: 246 seconds)
2021-04-13 12:21:13 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-04-13 12:21:52 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-04-13 12:21:53 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-13 12:25:45 +0200Alleria_(~AllahuAkb@2603-7000-3040-0000-ac34-8d7e-1853-75bb.res6.spectrum.com)
2021-04-13 12:26:17 +0200Stanley00(~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
2021-04-13 12:26:23 +0200kritzefitz(~kritzefit@fw-front.credativ.com) (Ping timeout: 246 seconds)
2021-04-13 12:28:33 +0200haskellstudent(~quassel@213-225-6-101.nat.highway.a1.net)
2021-04-13 12:29:35 +0200__minoru__shirae(~shiraeesh@109.166.56.189)
2021-04-13 12:30:06 +0200malumore__(~malumore@151.62.122.89)
2021-04-13 12:30:22 +0200 <xerox_> https://www.stackage.org/haddock/lts-17.9/containers-0.6.2.1/Data-Tree.html#g:2
2021-04-13 12:30:27 +0200 <xerox_> there are some interesting options
2021-04-13 12:30:34 +0200jpe90(~user@pool-108-31-85-19.washdc.fios.verizon.net) (Ping timeout: 268 seconds)
2021-04-13 12:31:23 +0200kini(~kini@unaffiliated/kini) (Remote host closed the connection)
2021-04-13 12:31:52 +0200ClaudiusMaximus(~claude@cpc98210-croy26-2-0-cust137.19-2.cable.virginm.net)
2021-04-13 12:32:03 +0200ClaudiusMaximus(~claude@cpc98210-croy26-2-0-cust137.19-2.cable.virginm.net) (Changing host)
2021-04-13 12:32:03 +0200ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus)
2021-04-13 12:32:22 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-04-13 12:32:38 +0200kini(~kini@unaffiliated/kini)
2021-04-13 12:33:03 +0200malumore_(~malumore@151.62.122.89) (Ping timeout: 268 seconds)
2021-04-13 12:33:12 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-13 12:34:19 +0200LKoen(~LKoen@65.250.88.92.rev.sfr.net)
2021-04-13 12:35:38 +0200todda7(~torstein@athedsl-09242.home.otenet.gr) (Ping timeout: 240 seconds)
2021-04-13 12:37:14 +0200__minoru__shirae(~shiraeesh@109.166.56.189) (Ping timeout: 246 seconds)
2021-04-13 12:38:13 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-04-13 12:38:20 +0200kritzefitz(~kritzefit@2003:5b:203b:200::10:49)
2021-04-13 12:38:32 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-13 12:41:55 +0200sw1nn(~sw1nn@2a00:23c7:622f:2c00:4e10:fa3:5042:9652) (Ping timeout: 260 seconds)
2021-04-13 12:43:41 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-04-13 12:44:30 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-13 12:45:06 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-13 12:45:42 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 260 seconds)
2021-04-13 12:47:30 +0200jakalx(~jakalx@base.jakalx.net) ()
2021-04-13 12:49:22 +0200kritzefitz(~kritzefit@2003:5b:203b:200::10:49) (Ping timeout: 258 seconds)
2021-04-13 12:49:41 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-04-13 12:50:09 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2021-04-13 12:50:20 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-13 12:55:13 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-04-13 12:55:53 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-13 12:59:29 +0200dixie(~dixie@real.wilbury.sk)
2021-04-13 12:59:51 +0200Major_Biscuit(~Major_Bis@wlan-145-94-219-47.wlan.tudelft.nl)
2021-04-13 13:00:43 +0200sw1nn(~sw1nn@host217-42-85-246.range217-42.btcentralplus.com)
2021-04-13 13:00:58 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-04-13 13:02:03 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-13 13:03:09 +0200kritzefitz(~kritzefit@212.86.56.80)
2021-04-13 13:04:29 +0200jakalx(~jakalx@base.jakalx.net)
2021-04-13 13:04:50 +0200grimpeux(~textual@modemcable153.12-178-173.mc.videotron.ca)
2021-04-13 13:06:45 +0200 <dibblego> ski: that argument originally comes from java, and it is bunk (re TCE)
2021-04-13 13:14:36 +0200Alleria(~textual@mskresolve-a.mskcc.org)
2021-04-13 13:15:00 +0200AlleriaGuest40868
2021-04-13 13:19:09 +0200dariof4(~dario@5.179.159.205)
2021-04-13 13:21:57 +0200viluon(uid453725@gateway/web/irccloud.com/x-nnqlbbddhkybeglg)
2021-04-13 13:24:04 +0200gnumonic(~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
2021-04-13 13:24:24 +0200 <viluon> hi, beginner question: I just refactored my library project into multiple files. When building it with Cabal and a custom compiler, imports in the root file don't work. Why's that? https://usercontent.irccloud-cdn.com/file/5kYcLv9R/image.png
2021-04-13 13:24:28 +0200_noblegas(uid91066@gateway/web/irccloud.com/x-nmdbocjlxmbwafmr)
2021-04-13 13:24:44 +0200 <viluon> I passed `-v` to GHC, weirdly enough, the path *seems to* match up https://usercontent.irccloud-cdn.com/file/Zk66No4h/image.png
2021-04-13 13:25:48 +0200Pickchea(~private@unaffiliated/pickchea)
2021-04-13 13:25:50 +0200grimpeux(~textual@modemcable153.12-178-173.mc.videotron.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-04-13 13:29:12 +0200todda7(~torstein@ppp-2-85-110-156.home.otenet.gr)
2021-04-13 13:29:49 +0200grimpeux(~textual@modemcable153.12-178-173.mc.videotron.ca)
2021-04-13 13:30:37 +0200grimpeux(~textual@modemcable153.12-178-173.mc.videotron.ca) (Client Quit)
2021-04-13 13:31:12 +0200 <viluon> here's the full output of `cabal install --lib all` along with the `.project` and `.cabal` files https://paste.tomsmeding.com/hXg6Yu6D
2021-04-13 13:38:46 +0200 <merijn> viluon: Your other-modules field is empty
2021-04-13 13:39:04 +0200 <viluon> merijn: ah, I need to list all the modules in my project?
2021-04-13 13:39:07 +0200 <merijn> Yes
2021-04-13 13:39:53 +0200 <merijn> viluon: .cabal files function (among other things) as manifest file, i.e. they explicitly specify everything that is part of a package
2021-04-13 13:39:54 +0200 <viluon> hm, that's sad, surely that information is trivially inferable from the source code. Thank you though! I didn't realise that
2021-04-13 13:40:00 +0200 <viluon> I see
2021-04-13 13:40:58 +0200 <merijn> viluon: Is it trivially inferrible? Mostly, although when you work out the corner case, not as trivial as it seems at first. But it is intentionally not done, so that when you build a source tar ball with cabal you are guaranteed to only get what you explicitly include.
2021-04-13 13:42:43 +0200alexm_(~alexm_@161.8.254.229)
2021-04-13 13:44:06 +0200drbean_(~drbean@TC210-63-209-59.static.apol.com.tw)
2021-04-13 13:47:45 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-04-13 13:48:49 +0200ep1ctetus(~epictetus@ip72-194-54-201.sb.sd.cox.net) (Ping timeout: 252 seconds)
2021-04-13 13:49:12 +0200 <alexm_> @pl (<*>) fs xs = flatMap (<$> xs) fs
2021-04-13 13:49:12 +0200 <lambdabot> (line 1, column 14):
2021-04-13 13:49:12 +0200 <lambdabot> unexpected " "
2021-04-13 13:49:12 +0200 <lambdabot> expecting operator
2021-04-13 13:50:21 +0200 <ski> dibblego, mm, i've seen versions of it float around
2021-04-13 13:50:31 +0200 <alexm_> @pl (<*>) fs xs = flatMap ((<$>) xs) fs
2021-04-13 13:50:31 +0200 <lambdabot> (line 1, column 14):
2021-04-13 13:50:31 +0200 <lambdabot> unexpected " "
2021-04-13 13:50:31 +0200 <lambdabot> expecting operator
2021-04-13 13:50:43 +0200 <alexm_> @pl "(<*>) fs xs = flatMap (<$> xs) fs"
2021-04-13 13:50:43 +0200 <lambdabot> "(<*>) fs xs = flatMap (<$> xs) fs"
2021-04-13 13:50:43 +0200 <ski> xerox_ : i wonder why that claims `unfoldTree' is breadth-first order ..
2021-04-13 13:51:14 +0200 <__monty__> @pl flatMap (<$> xs) fs
2021-04-13 13:51:14 +0200 <lambdabot> flatMap (<$> xs) fs
2021-04-13 13:51:24 +0200 <__monty__> alexm_: Can't pass a definition.
2021-04-13 13:51:36 +0200 <ski> @pl \fs xs -> flatMap (<$> xs) fs
2021-04-13 13:51:36 +0200 <lambdabot> flip (flatMap . flip (<$>))
2021-04-13 13:51:38 +0200 <alexm_> oops, cheers :)
2021-04-13 13:52:00 +0200Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck)
2021-04-13 13:52:08 +0200 <ski> @pl doubleMap f g xs = map f (map g xs)
2021-04-13 13:52:08 +0200 <lambdabot> doubleMap = (. map) . (.) . map
2021-04-13 13:53:53 +0200 <__monty__> Oh, it does do definitions? Then why didn't the previous query work?
2021-04-13 13:54:10 +0200 <ski> @type \fs xs -> fs >>= (<$> xs)
2021-04-13 13:54:11 +0200 <lambdabot> Monad m => m (a -> b) -> m a -> m b
2021-04-13 13:54:14 +0200 <ski> @type ap
2021-04-13 13:54:15 +0200 <lambdabot> Monad m => m (a -> b) -> m a -> m b
2021-04-13 13:54:25 +0200 <ski> @src ap
2021-04-13 13:54:25 +0200 <lambdabot> ap = liftM2 id
2021-04-13 13:54:39 +0200 <ski> __monty__ : i guess it doesn't parse operator definitions ..
2021-04-13 13:54:55 +0200 <ski> alexm_ ^ ?
2021-04-13 13:55:13 +0200 <xerox_> ski: right?
2021-04-13 13:55:20 +0200hololeap(~hololeap@gateway/tor-sasl/hololeap)
2021-04-13 13:55:30 +0200 <__monty__> @pl fs <*> xs = flatMap (<$> xs) fs
2021-04-13 13:55:31 +0200 <lambdabot> (line 1, column 12):
2021-04-13 13:55:31 +0200 <lambdabot> unexpected " "
2021-04-13 13:55:48 +0200 <ski> i mean, it doesn't really do any specifically depth-first vs. breadth-first stuff
2021-04-13 13:56:19 +0200 <dibblego> ski: there's a java RFE from 2001 with really long discussion — can't find it though
2021-04-13 13:57:04 +0200 <ski> > let nodes = 1 : [n | m <- nodes,n <- [2*m,2*m + 1]] in nodes -- unlike this, which does breadth-first
2021-04-13 13:57:06 +0200 <lambdabot> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,...
2021-04-13 13:57:12 +0200 <ski> (only works for infinite trees, though)
2021-04-13 13:57:26 +0200 <ski> "Request For E???" ?
2021-04-13 13:57:50 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-04-13 13:57:58 +0200 <ski> dibblego : would be interested to take a look, if you find it later
2021-04-13 13:58:19 +0200 <dibblego> yeah, it's a shame I've lost it
2021-04-13 13:58:23 +0200 <alexm_> thanks ski
2021-04-13 13:58:30 +0200hololeap_(~hololeap@gateway/tor-sasl/hololeap)
2021-04-13 13:59:57 +0200hololeap(~hololeap@gateway/tor-sasl/hololeap) (Ping timeout: 240 seconds)
2021-04-13 14:01:32 +0200urodna_(~urodna@unaffiliated/urodna)
2021-04-13 14:02:09 +0200LKoen_(~LKoen@65.250.88.92.rev.sfr.net)
2021-04-13 14:02:36 +0200 <ski> @let infiniteSubtreesBreadthFirst :: Tree a -> [Tree a]; infiniteSubtreesBreadthFirst t = ts where ts = t : [t | t <- ts,t <- subForest t]
2021-04-13 14:02:37 +0200 <lambdabot> Defined.
2021-04-13 14:02:45 +0200 <ski> @type map rootLabel . infiniteSubtreesBreadthFirst
2021-04-13 14:02:47 +0200 <lambdabot> Tree b -> [b]
2021-04-13 14:03:26 +0200oish(~charlie@228.25.169.217.in-addr.arpa) (Quit: leaving)
2021-04-13 14:04:16 +0200 <ski> alexm_ : were you looking to define `(<*>)' for `Applicative', based on `(>>=)' in a `Monad' instance ?
2021-04-13 14:04:17 +0200todda7(~torstein@ppp-2-85-110-156.home.otenet.gr) (Ping timeout: 260 seconds)
2021-04-13 14:04:34 +0200kini(~kini@unaffiliated/kini) (Remote host closed the connection)
2021-04-13 14:04:52 +0200LKoen(~LKoen@65.250.88.92.rev.sfr.net) (Ping timeout: 260 seconds)
2021-04-13 14:05:50 +0200kini(~kini@unaffiliated/kini)
2021-04-13 14:06:28 +0200Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck) (Remote host closed the connection)
2021-04-13 14:07:14 +0200Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck)
2021-04-13 14:07:37 +0200 <alexm_> ski: I am defining (<*>) for Applicative for the List type, it's just an exercise from fp-course (former NICTA)
2021-04-13 14:08:41 +0200 <dibblego> alexm_: did you do flatMap and map from List.hs ?
2021-04-13 14:08:42 +0200 <alexm_> in this case point free version looks less readable to me though
2021-04-13 14:09:06 +0200Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck) (Remote host closed the connection)
2021-04-13 14:09:18 +0200 <alexm_> dibblego yes, I did
2021-04-13 14:09:23 +0200Deide(~Deide@217.155.19.23)
2021-04-13 14:09:33 +0200 <dibblego> alexm_: they will get you to (<*>) for List
2021-04-13 14:09:52 +0200Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck)
2021-04-13 14:09:59 +0200 <alexm_> yeah, I figured applicative out already via flatMap, thanks :)
2021-04-13 14:10:06 +0200 <dibblego> when the course is run, we use type holes a lot
2021-04-13 14:10:11 +0200 <dibblego> ok cool
2021-04-13 14:10:22 +0200 <merijn> dibblego: type holes or typed holes? :p
2021-04-13 14:10:27 +0200 <merijn> (or both, I suppose)
2021-04-13 14:10:28 +0200 <alexm_> I was just playing around with the point free version of the definition
2021-04-13 14:10:38 +0200 <dibblego> _theseones
2021-04-13 14:11:12 +0200 <dibblego> I've been flying all arvo and night, tired, but leave questions if you have any — up early to fly home
2021-04-13 14:11:21 +0200 <merijn> dibblego: You are aware of -fdefer-typed-holes? (because sadly, every time I find out many people aren't :( )
2021-04-13 14:11:43 +0200 <dibblego> merijn: yes, the course material was written before those, so error is used instead (PR!?)
2021-04-13 14:13:03 +0200andreas303(~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection)
2021-04-13 14:13:18 +0200 <alexm_> thanks dibblego
2021-04-13 14:13:24 +0200 <merijn> dibblego: Just trying to make sure my effort of hacking in that flag doesn't go to waste ;) It's my first and crowning contribution to Haskell, imo :p
2021-04-13 14:13:35 +0200 <dibblego> merijn: we use it in the course
2021-04-13 14:13:41 +0200 <merijn> \o/
2021-04-13 14:13:43 +0200andreas303(~andreas@gateway/tor-sasl/andreas303)
2021-04-13 14:14:01 +0200 <merijn> Immortality achieved!
2021-04-13 14:14:04 +0200 <alexm_> what this flag does in short?
2021-04-13 14:14:32 +0200 <merijn> alexm_: Makes typed holes behave like undefined, so you can run code without having to implement everything
2021-04-13 14:14:59 +0200 <merijn> The major advantage over undefined being: Better warnings and, once you disable the flag, you can't accidentally forget any undefined's in the source
2021-04-13 14:15:16 +0200 <merijn> Since they're compile errors without the flag (and undefined isn't)
2021-04-13 14:15:21 +0200 <alexm_> sweet
2021-04-13 14:17:50 +0200 <__monty__> xv
2021-04-13 14:18:46 +0200todda7(~torstein@athedsl-09242.home.otenet.gr)
2021-04-13 14:19:27 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-04-13 14:29:48 +0200kiweun(~kiweun@2607:fea8:2a62:9600:f0c8:b06a:abe0:d60)
2021-04-13 14:29:52 +0200oo_miguel(~miguel@89-72-187-203.dynamic.chello.pl)
2021-04-13 14:32:39 +0200ddk(9d2a7d60@157.42.125.96)
2021-04-13 14:33:12 +0200 <ddk> Hello all
2021-04-13 14:33:55 +0200ulidtko|k(~ulidtko@194.54.80.38) (Ping timeout: 252 seconds)
2021-04-13 14:34:05 +0200 <oo_miguel> Hello. I am using Network.HTTP.Client.Manager's managerModifyRequest and managerModifyResponse hooks to implement a simple logging middleware. Maybe I a missing something, but while I can easily check what URL a `Request` is related to, I do not see any such possibility inside the `Response` hook. Any suggestions please?
2021-04-13 14:34:22 +0200_bin(~bin@2600:1700:10a1:38d0:6924:8e26:a144:5b39) (Quit: ZNC - https://znc.in)
2021-04-13 14:34:24 +0200kiweun(~kiweun@2607:fea8:2a62:9600:f0c8:b06a:abe0:d60) (Ping timeout: 258 seconds)
2021-04-13 14:34:58 +0200kritzefitz(~kritzefit@212.86.56.80) (Ping timeout: 240 seconds)
2021-04-13 14:35:11 +0200 <ddk> I'm using postgres-simple, now I need timestamp in my program but I'm unsure which type to use in postgres which can be easily parsed between Haskell and postgres to and fro.
2021-04-13 14:35:34 +0200 <alexm_> @pl fa x $ fb x
2021-04-13 14:35:35 +0200 <lambdabot> fa x (fb x)
2021-04-13 14:36:47 +0200 <alexm_> @pl \fa fb x -> fa x $ fb x
2021-04-13 14:36:47 +0200 <lambdabot> ap
2021-04-13 14:38:38 +0200_bin(~bin@2600:1700:10a1:38d0:8028:8b86:7e11:f5b5)
2021-04-13 14:40:50 +0200 <ddk> ?
2021-04-13 14:41:33 +0200 <merijn> You should figure out how you want/have to store things in postgres and then find out how to use that using postgres-simple, I'd say?
2021-04-13 14:42:33 +0200 <merijn> Seems to me the Database.PostgreSQL.Simple.Time has more than you'd ever want to know on the topic?
2021-04-13 14:42:52 +0200 <merijn> Also: Don't store future times in UTC
2021-04-13 14:45:19 +0200 <ddk> merijn: using `TIMESTAMP WITH TIME ZONE` in postgres, I'm not sure whether I can directly parse them in Haskell
2021-04-13 14:45:42 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-13 14:45:56 +0200hannah58(546babef@84-107-171-239.cable.dynamic.v4.ziggo.nl)
2021-04-13 14:46:02 +0200malumore__(~malumore@151.62.122.89) (Remote host closed the connection)
2021-04-13 14:46:08 +0200gzj(~gzj@unaffiliated/gzj) (Read error: Connection reset by peer)
2021-04-13 14:46:15 +0200malumore(~malumore@151.62.122.89)
2021-04-13 14:46:27 +0200malumore(~malumore@151.62.122.89) (Remote host closed the connection)
2021-04-13 14:46:29 +0200gzj(~gzj@unaffiliated/gzj)
2021-04-13 14:46:34 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-13 14:47:44 +0200hannah58(546babef@84-107-171-239.cable.dynamic.v4.ziggo.nl) (Client Quit)
2021-04-13 14:47:46 +0200malumore(~malumore@151.62.122.89)
2021-04-13 14:47:56 +0200kritzefitz(~kritzefit@2003:5b:203b:200::10:49)
2021-04-13 14:49:06 +0200malumore(~malumore@151.62.122.89) (Remote host closed the connection)
2021-04-13 14:49:33 +0200rprije(~rprije@59-102-63-15.tpgi.com.au) (Ping timeout: 240 seconds)
2021-04-13 14:49:57 +0200Mrbuck(~Mrbuck@gateway/tor-sasl/mrbuck) (Ping timeout: 240 seconds)
2021-04-13 14:50:13 +0200tomsmeding(~tomsmedin@tomsmeding.com) (Quit: ZNC 1.8.2 - https://znc.in)
2021-04-13 14:51:12 +0200malumore(~malumore@151.62.122.89)
2021-04-13 14:51:18 +0200tomsmeding(~tomsmedin@tomsmeding.com)
2021-04-13 14:51:19 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2021-04-13 14:54:41 +0200ircbrowse_tom(~ircbrowse@64.225.78.177)
2021-04-13 14:54:41 +0200Server+CLnt
2021-04-13 14:56:05 +0200hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net)
2021-04-13 14:58:06 +0200alexm_(~alexm_@161.8.254.229) (Remote host closed the connection)
2021-04-13 15:02:39 +0200Komrad_Kafuka(cbd4caba@203.212.202.186)
2021-04-13 15:02:55 +0200 <Komrad_Kafuka> Hi
2021-04-13 15:03:11 +0200Major_Biscuit(~Major_Bis@wlan-145-94-219-47.wlan.tudelft.nl) (Ping timeout: 240 seconds)
2021-04-13 15:04:11 +0200jules_(~jules@ip201.ip-135-125-227.eu) (Ping timeout: 240 seconds)
2021-04-13 15:04:32 +0200carlomagno(~cararell@148.87.23.8)
2021-04-13 15:05:07 +0200ddk(9d2a7d60@157.42.125.96) (Quit: Connection closed)
2021-04-13 15:05:14 +0200jules_(~jules@ip201.ip-135-125-227.eu)
2021-04-13 15:05:19 +0200 <Komrad_Kafuka> I've been recently learning haskell and it's a little hard but great. I was writing some code for evaluating e^x but it's giving me an error I can't understand , can I share it with you guys?
2021-04-13 15:06:20 +0200 <hyperisco> yes
2021-04-13 15:06:27 +0200 <merijn> I'm pretty sure I know the issue without seeing it ;)
2021-04-13 15:06:42 +0200 <merijn> Probably the difference between
2021-04-13 15:06:45 +0200 <merijn> :t (**)
2021-04-13 15:06:47 +0200 <lambdabot> Floating a => a -> a -> a
2021-04-13 15:06:48 +0200 <merijn> :t (^)
2021-04-13 15:06:49 +0200 <lambdabot> (Integral b, Num a) => a -> b -> a
2021-04-13 15:06:50 +0200 <merijn> :t (^^)
2021-04-13 15:06:52 +0200 <lambdabot> (Fractional a, Integral b) => a -> b -> a
2021-04-13 15:07:09 +0200gzj(~gzj@unaffiliated/gzj) (Read error: Connection reset by peer)
2021-04-13 15:07:29 +0200gzj(~gzj@unaffiliated/gzj)
2021-04-13 15:07:42 +0200 <Komrad_Kafuka> {-# LANGUAGE FlexibleInstances, UndecidableInstances, DuplicateRecordFields #-}
2021-04-13 15:07:43 +0200 <Komrad_Kafuka> module Main where
2021-04-13 15:07:43 +0200 <Komrad_Kafuka> import Control.Monad
2021-04-13 15:07:44 +0200 <Komrad_Kafuka> import Data.Array
2021-04-13 15:07:44 +0200 <Komrad_Kafuka> import Data.Bits
2021-04-13 15:07:44 +0200 <Komrad_Kafuka> import Data.List
2021-04-13 15:07:45 +0200 <Komrad_Kafuka> import Data.List.Split
2021-04-13 15:07:45 +0200 <Komrad_Kafuka> import Data.Set
2021-04-13 15:07:46 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser) (Quit: WeeChat 2.9)
2021-04-13 15:07:46 +0200 <Komrad_Kafuka> import Debug.Trace
2021-04-13 15:07:47 +0200 <Komrad_Kafuka> import System.Environment
2021-04-13 15:07:47 +0200 <Komrad_Kafuka> import System.IO
2021-04-13 15:07:47 +0200 <Komrad_Kafuka> import System.IO.Unsafe
2021-04-13 15:07:48 +0200 <Komrad_Kafuka> factorial :: Double -> Double
2021-04-13 15:07:48 +0200 <Komrad_Kafuka> factorial 0 = 1
2021-04-13 15:07:49 +0200 <Komrad_Kafuka> factorial x = x * factorial x - 1
2021-04-13 15:07:49 +0200 <Komrad_Kafuka> pow :: Double -> Integer -> Double
2021-04-13 15:07:50 +0200 <Komrad_Kafuka> pow _ 0 = 1.000 :: Double
2021-04-13 15:07:50 +0200 <Komrad_Kafuka> pow 0 _ = 0.000 :: Double
2021-04-13 15:08:04 +0200 <Komrad_Kafuka> Here's the error
2021-04-13 15:08:05 +0200 <Komrad_Kafuka> Solution.hs:27:41: error:
2021-04-13 15:08:06 +0200 <Komrad_Kafuka>     • Couldn't match expected type ‘Double’ with actual type ‘Integer’
2021-04-13 15:08:06 +0200 <Komrad_Kafuka>     • In the first argument of ‘factorial’, namely ‘count’
2021-04-13 15:08:07 +0200 <Komrad_Kafuka>       In the second argument of ‘(/)’, namely ‘(factorial count)’
2021-04-13 15:08:07 +0200 <Komrad_Kafuka>       In the first argument of ‘(+)’, namely
2021-04-13 15:08:08 +0200 <Komrad_Kafuka>         ‘(pow x count) / (factorial count)’
2021-04-13 15:08:08 +0200 <Komrad_Kafuka>    |
2021-04-13 15:08:09 +0200 <Komrad_Kafuka> 27 | eval x count = (pow x count)/(factorial count) + (eval x count - 1)
2021-04-13 15:08:09 +0200 <Komrad_Kafuka>    | ^^^^^
2021-04-13 15:08:10 +0200 <Komrad_Kafuka> Solution.hs:36:9: error:
2021-04-13 15:08:10 +0200 <Komrad_Kafuka>     • Couldn't match expected type ‘Double -> Integer -> IO b0’
2021-04-13 15:08:11 +0200 <Komrad_Kafuka>                   with actual type ‘IO ()’
2021-04-13 15:08:11 +0200 <Komrad_Kafuka>     • The function ‘print’ is applied to three arguments,
2021-04-13 15:08:12 +0200 <Komrad_Kafuka>       but its type ‘(Double -> Integer -> Double) -> IO ()’ has only one
2021-04-13 15:08:12 +0200 <Komrad_Kafuka>       In a stmt of a 'do' block: print eval x 0
2021-04-13 15:08:13 +0200 <Komrad_Kafuka>       In the expression:
2021-04-13 15:08:13 +0200 <Komrad_Kafuka>         do x <- readLn :: IO Double
2021-04-13 15:08:14 +0200 <Komrad_Kafuka>            print eval x 0
2021-04-13 15:08:14 +0200 <Komrad_Kafuka>    |
2021-04-13 15:08:52 +0200Pickchea(~private@unaffiliated/pickchea) (Ping timeout: 265 seconds)
2021-04-13 15:09:09 +0200gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2021-04-13 15:09:09 +0200 <ski> @where paste
2021-04-13 15:09:10 +0200 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
2021-04-13 15:09:29 +0200gzj(~gzj@unaffiliated/gzj)
2021-04-13 15:09:39 +0200 <ski> Komrad_Kafuka : please use a paste site (like e.g. that ^ above), next time -- don't paste huge amounts of lines into the channel
2021-04-13 15:10:06 +0200 <Komrad_Kafuka> Sure, sorry about that
2021-04-13 15:10:10 +0200gzj(~gzj@unaffiliated/gzj) (Read error: Connection reset by peer)
2021-04-13 15:10:21 +0200 <ski> (i was actually surprised you weren't automatically K-lined by Sigyn for doing that .. but now i notices Sigyn's gone missing, for whatever reason)
2021-04-13 15:10:30 +0200gzj(~gzj@unaffiliated/gzj)
2021-04-13 15:10:33 +0200Rudd0(~Rudd0@185.189.115.108) (Ping timeout: 240 seconds)
2021-04-13 15:10:52 +0200 <Komrad_Kafuka> https://paste.tomsmeding.com/VGuP7TtX
2021-04-13 15:11:38 +0200 <Komrad_Kafuka> ski yeah I did not get any message at first, here's the link
2021-04-13 15:11:48 +0200 <ski> (looking)
2021-04-13 15:12:12 +0200gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2021-04-13 15:12:30 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Read error: Connection reset by peer)
2021-04-13 15:12:32 +0200gzj(~gzj@unaffiliated/gzj)
2021-04-13 15:12:42 +0200ddellac__(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-13 15:12:56 +0200 <ski> your bracketting is off. e.g.
2021-04-13 15:12:58 +0200 <ski> eval x count = (pow x count)/(factorial count) + (eval x count - 1)
2021-04-13 15:13:00 +0200 <ski> ought to be
2021-04-13 15:13:11 +0200gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2021-04-13 15:13:13 +0200ddellac__(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-04-13 15:13:14 +0200 <ski> eval x count = pow x count / factorial count + eval x (count - 1)
2021-04-13 15:13:31 +0200gzj(~gzj@unaffiliated/gzj)
2021-04-13 15:13:37 +0200 <ski> (and the same problem, in a few other places ..)
2021-04-13 15:13:48 +0200son0p(~ff@181.136.122.143)
2021-04-13 15:13:48 +0200 <ski> next thing, which is the actual type error you're getting
2021-04-13 15:14:06 +0200 <ski> `factorial count' is an `Integer', so you can't divide by it, using `/'
2021-04-13 15:14:30 +0200 <ski> try first converting it to a `Double', with `fromIntegral'/`fromInteger'
2021-04-13 15:14:37 +0200 <Komrad_Kafuka> is there a way to typecast stuff in haskell ?
2021-04-13 15:14:41 +0200rom1504(rom1504@rom1504.fr) (Ping timeout: 250 seconds)
2021-04-13 15:15:07 +0200 <ski> no
2021-04-13 15:15:31 +0200 <ski> there's no casting (as a language construct), and no implicit coercion either
2021-04-13 15:15:54 +0200 <ski> (it doesn't play along well with type inference)
2021-04-13 15:16:38 +0200 <Komrad_Kafuka> after that I am getting another error https://paste.tomsmeding.com/b1RYmqe6
2021-04-13 15:16:44 +0200 <Komrad_Kafuka> could you help me with this too
2021-04-13 15:16:54 +0200 <ski> instead of `forM_ [1 .. n] $ \_ -> do ..', you can use `replicateM_ n $ do ..'
2021-04-13 15:17:03 +0200 <ski> @type replicateM_
2021-04-13 15:17:05 +0200 <lambdabot> Applicative m => Int -> m a -> m ()
2021-04-13 15:17:13 +0200gzj(~gzj@unaffiliated/gzj) (Read error: Connection reset by peer)
2021-04-13 15:17:24 +0200jamm_(~jamm@unaffiliated/jamm)
2021-04-13 15:17:33 +0200gzj(~gzj@unaffiliated/gzj)
2021-04-13 15:17:43 +0200 <ski> and then there'd be no need for the `:: IO Int' type ascription on `readLn' (since the type of `n' would be inferred from passing it to `replicateM_')
2021-04-13 15:18:09 +0200gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2021-04-13 15:18:17 +0200 <Komrad_Kafuka> nope showing me the same error
2021-04-13 15:18:24 +0200 <ski> similarly, since `eval' is declared to take a `Double', the type ascription on the other `readLn' is also redundant
2021-04-13 15:18:30 +0200gzj(~gzj@unaffiliated/gzj)
2021-04-13 15:19:03 +0200 <ski> (you could still keep them, if you wanted to, if you think it makes the code more readable to you. however, i'd prefer using x :: Double <- readLn' in that case .. although that syntax requires a language extension)
2021-04-13 15:19:11 +0200gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2021-04-13 15:19:15 +0200rj(~x@gateway/tor-sasl/rj)
2021-04-13 15:19:31 +0200gzj(~gzj@unaffiliated/gzj)
2021-04-13 15:19:40 +0200 <ski> Komrad_Kafuka : yes, as i said, because you have the same problem (bracketting) in a few other places as well .. and you haven't fixed them yet
2021-04-13 15:20:07 +0200 <Komrad_Kafuka> oh ok I'll do them
2021-04-13 15:20:42 +0200 <ski> first you should make sure you understand my removal and addition of brackets, to the line i showed
2021-04-13 15:20:56 +0200 <Komrad_Kafuka> nope I don't sorry
2021-04-13 15:20:58 +0200 <ski> (feel free to ask more, if you're unsure)
2021-04-13 15:21:10 +0200gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2021-04-13 15:21:13 +0200 <ski> (pow x count)/(factorial count)
2021-04-13 15:21:17 +0200 <ski> already means the same thing as
2021-04-13 15:21:22 +0200 <ski> pow x count / factorial count
2021-04-13 15:21:31 +0200gzj(~gzj@unaffiliated/gzj)
2021-04-13 15:21:37 +0200 <ski> since "function application binds tighter (has higher precedence than) any operator"
2021-04-13 15:21:46 +0200 <Komrad_Kafuka> but that does not break the code does it ?
2021-04-13 15:21:47 +0200 <ski> which is why those brackets were redundant
2021-04-13 15:21:49 +0200 <ski> secondly
2021-04-13 15:22:01 +0200 <ski> eval x count - 1
2021-04-13 15:22:03 +0200 <ski> actually means
2021-04-13 15:22:06 +0200 <ski> (eval x count) - 1
2021-04-13 15:22:10 +0200 <ski> which is not what you intended
2021-04-13 15:22:16 +0200 <ski> presumably you meant
2021-04-13 15:22:21 +0200 <ski> eval x (count - 1)
2021-04-13 15:22:25 +0200 <ski> and you'll have to spell that out
2021-04-13 15:22:42 +0200 <Komrad_Kafuka> oh , yeah I changed that actually it should have been eval x (count+1) since it has an upper bound
2021-04-13 15:22:45 +0200Unhammer(~Unhammer@gateway/tor-sasl/unhammer) (Ping timeout: 240 seconds)
2021-04-13 15:22:48 +0200 <ski> Komrad_Kafuka : correct. the first (redundant) part, didn't break the code
2021-04-13 15:23:07 +0200gzj(~gzj@unaffiliated/gzj) (Read error: Connection reset by peer)
2021-04-13 15:23:18 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 240 seconds)
2021-04-13 15:23:27 +0200gzj(~gzj@unaffiliated/gzj)
2021-04-13 15:23:44 +0200 <ski> you might want to make `eval' give an error, or maybe terminate, in case the input is larger than the upper bound ?
2021-04-13 15:24:08 +0200gzj(~gzj@unaffiliated/gzj) (Read error: Connection reset by peer)
2021-04-13 15:24:12 +0200 <ski> (you could also pass in the upper bound as a separate argument, to make `eval' less ad hoc (less magic numbers))
2021-04-13 15:25:40 +0200 <Komrad_Kafuka> It's a small hackerrank problem so I don;t think I have to make it robust, I did the changes and here is the code but it's still giving me an error
2021-04-13 15:25:45 +0200 <Komrad_Kafuka> https://paste.tomsmeding.com/CLJfI7E6
2021-04-13 15:27:23 +0200 <ski> oh, actually, i see your `count' is an accumulator (an index variable, a counter, in this case), intended to be started / initialized, at zero. in such case, it's better to define a "wrapper" function, whose sole purpose is to initialize this parameter for you (and then your `main' should call this, not the current `eval'). usually, it then makes sense to define the "worker" (your `eval') inside a `where'
2021-04-13 15:27:29 +0200 <ski> (or `let'-`in') inside the wrapper (unless the worker has independent interest)
2021-04-13 15:28:02 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2021-04-13 15:28:27 +0200 <ski> "I don;t think I have to make it robust" -- it's up to you, of course. just saying it could be good practice. but the most important thing is that you're aware of it, and make a conscious choice
2021-04-13 15:28:57 +0200 <ski> again, you're not using brackets properly
2021-04-13 15:28:59 +0200acidjnk_new(~acidjnk@p200300d0c72b9561cdce4d77de6ce0bc.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2021-04-13 15:29:29 +0200 <ski> (unlike in some other programming languages) brackets are not used for "function calls" in Haskell. however, they *are* used for grouping, and that's how you need to use them here !
2021-04-13 15:29:46 +0200 <ski> (exactly like how they're used for grouping, in `eval x (count - 1)')
2021-04-13 15:30:28 +0200 <Komrad_Kafuka> yeah I did hear something about auxilary functions in one video, I might reimplement it with your suggested changes but the thing is I still don't know what the error is, I did correct the brackets so one error down and one error still persists which is this https://paste.tomsmeding.com/nB6RwfnJ
2021-04-13 15:30:31 +0200OneFixt(~OneFixt@217.146.82.202) (Remote host closed the connection)
2021-04-13 15:30:45 +0200 <ski> ok
2021-04-13 15:30:57 +0200 <ski> consider e.g.
2021-04-13 15:31:01 +0200 <ski> pow x count
2021-04-13 15:31:07 +0200 <ski> this actually means
2021-04-13 15:31:11 +0200 <ski> (pow x) count
2021-04-13 15:31:18 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-13 15:31:59 +0200 <ski> because when you define, and call, a function in this style (called "curried style"), you're actually defining a function that takes an input, and then returns as result another function, that takes another input parameter, before giving back the "final answer"
2021-04-13 15:32:10 +0200 <ski> so
2021-04-13 15:32:12 +0200 <ski> pow :: Double -> Integer -> Double
2021-04-13 15:32:14 +0200 <ski> actually means
2021-04-13 15:32:17 +0200 <ski> pow :: Double -> (Integer -> Double)
2021-04-13 15:33:38 +0200Major_Biscuit(~Major_Bis@wlan-145-94-219-47.wlan.tudelft.nl)
2021-04-13 15:34:12 +0200 <ski> (all functions in Haskell take exactly one input argument/parameter. however, colloquially, we speak of "multi-parameter functions". but those are really only in our heads. one way of simulating them in Haskell is as the above, "curried style". another is "tupled style", which would be called like `pow (x,count)', defined like `pow :: (Double,Integer) -> Double', `pow (_,0) = 1', `pow (0,_) = 1', `pow (x,n)
2021-04-13 15:34:18 +0200 <ski> = ..x..n..')
2021-04-13 15:34:25 +0200 <Komrad_Kafuka> Oh, yeah I corrected that rn and now there's a whole list of other errors, correcting them one by one would be tedious, I think if I see your code on how to implement this that would be great, here's the problem that I wanted to solve https://www.hackerrank.com/challenges/eval-ex/problem?h_r=next-challenge&h_v=zen&isFullScreen=true
2021-04-13 15:34:36 +0200 <ski> because of this (and because `print' is just an ordinary library function), when you write
2021-04-13 15:34:39 +0200 <ski> print eval x 0
2021-04-13 15:34:41 +0200 <ski> this actually means
2021-04-13 15:34:46 +0200 <ski> ((print eval) x) 0
2021-04-13 15:35:09 +0200 <ski> iow, you're (colloquially speaking) attempting to pass three parameters to `print' : `eval',`x',`0'
2021-04-13 15:35:29 +0200 <ski> however, you actually *wanted* to call `eval' with two parameters, and pass the *result* of that to `print'
2021-04-13 15:35:29 +0200alexm_(~alexm_@161.8.254.229)
2021-04-13 15:36:11 +0200 <Komrad_Kafuka> It's a little hard to wrap your head around specially if you are used to imperative style, it's going to be hard before it make sense I guess
2021-04-13 15:36:56 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-04-13 15:37:03 +0200 <ski> learning a different programming paradigm will be a little bit like learning to program from scratch, all over again. do you remember how long time it took, to get used to imperative programming ? to understand loops, assignment of mutable variables ?
2021-04-13 15:38:08 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-13 15:38:27 +0200 <ski> people who already know another paradigm definitely have to do some unlearning, when learning a new one. it's been suggested that it might be easter to learn FP, as a complete newbie to programming (i'm not sure how true this is, but it seems to me that there's some trace of truth in it, at least)
2021-04-13 15:38:48 +0200xlei(znc@unaffiliated/xlei) (Quit: ZNC - https://znc.in)
2021-04-13 15:39:39 +0200 <Komrad_Kafuka> yeah, it's like learning programming all over again, could you please solve this for me ? I really want to learn how to do this
2021-04-13 15:39:48 +0200 <ski> it tends to be better to suspend judgement, to not try to compare with what you already know, as you're learning a new paradigm (as opposed to learning yet another language in the same paradigm). you're in a better position to compare, when you've got more under your belt (because obviously a lot does carry over. just quite a bit less than people often tend to assume)
2021-04-13 15:41:08 +0200 <ski> anyway, imho, the gains that you get, is well worth the effort. giving you another viewpoint, another set of tools you can apply and tackle problems with. and in the end, it's just that, another toolset
2021-04-13 15:42:01 +0200 <Komrad_Kafuka> yeah heard it's awesome to write parsers with so I am learning
2021-04-13 15:42:01 +0200Pickchea(~private@unaffiliated/pickchea)
2021-04-13 15:42:22 +0200 <ski> (sorry for the rantish, but i believe it helps to repeat these basic points, to FP beginners, to set expectations right)
2021-04-13 15:42:30 +0200 <ski> what's the whole list of errors that you get ?
2021-04-13 15:43:39 +0200 <ski> (and yes, it will take some amount of time. don't try to rush it too much. try to have fun, if you can. that tends to help with learning)
2021-04-13 15:43:44 +0200kini(~kini@unaffiliated/kini) (Remote host closed the connection)
2021-04-13 15:43:48 +0200 <Komrad_Kafuka> here you go https://paste.tomsmeding.com/yUg3QcE0
2021-04-13 15:44:09 +0200alexm_(~alexm_@161.8.254.229) (Ping timeout: 265 seconds)
2021-04-13 15:44:30 +0200mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh)
2021-04-13 15:45:03 +0200kini(~kini@unaffiliated/kini)
2021-04-13 15:45:35 +0200 <ski> (i'd rather prefer to not simply hand out solutions to exercises. you'll learn much better, by struggling a bit, perhaps banging your head against the wall a bit, and realizing the problem in your mistakes. however, of course, asking for conceptual understanding, and what went wrong, and what would be good to try instead, is quite fine)
2021-04-13 15:45:48 +0200 <ski> ok, so consider e.g.
2021-04-13 15:45:51 +0200 <ski> pow(x count)
2021-04-13 15:46:09 +0200 <ski> this means : call the function `x' with input `count', and pass the result of that call to the function `pow'
2021-04-13 15:46:10 +0200xlei(znc@unaffiliated/xlei)
2021-04-13 15:46:23 +0200 <ski> .. hopefully it should be clear why that is an error here
2021-04-13 15:46:34 +0200 <ski> eval (x (count + 1))
2021-04-13 15:46:37 +0200 <ski> has the same problem
2021-04-13 15:46:38 +0200dmytrish(~mitra@2a02:8084:a82:d900:f811:9873:2623:c28b)
2021-04-13 15:46:57 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-04-13 15:47:11 +0200AkechiShiro(~AkechiShi@2a01:e0a:5f9:9681:58c8:ec73:6b59:f408) (Quit: WeeChat 2.9)
2021-04-13 15:47:15 +0200 <Komrad_Kafuka> uhuh ... yeah that's clear but we need the brackets don't we as you already demonstrated
2021-04-13 15:47:21 +0200 <ski> (also, not trying to rush you or anything, but you didn't get around to fixing the problem with your `print', yet)
2021-04-13 15:47:25 +0200 <ski> no
2021-04-13 15:47:34 +0200 <Komrad_Kafuka> because pow x count becomes (pow x) count
2021-04-13 15:47:49 +0200 <ski> yes, which is fine
2021-04-13 15:47:50 +0200 <ski> eval x count
2021-04-13 15:47:51 +0200 <ski> means
2021-04-13 15:47:55 +0200 <ski> (eval x) count
2021-04-13 15:48:06 +0200 <ski> and either is fine to write (but usually people prefer to read the former)
2021-04-13 15:48:11 +0200 <ski> however
2021-04-13 15:48:14 +0200 <ski> eval (x count)
2021-04-13 15:48:21 +0200 <ski> is something completely different
2021-04-13 15:48:42 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-13 15:48:47 +0200 <ski> (in your case, something nonsensical, since `x' is not a function)
2021-04-13 15:50:06 +0200ksamak(~ksamak@185.169.233.12)
2021-04-13 15:50:26 +0200 <ski> perhaps to clarify : in your latest paste, you introduced two problems you didn't have before, while solving one earlier problem, and not solving another earlier problem
2021-04-13 15:51:30 +0200 <Komrad_Kafuka> yeah I got it , fixed all that , is this correct ? :- print eval (x 0)
2021-04-13 15:51:37 +0200 <Komrad_Kafuka> for printing
2021-04-13 15:52:17 +0200Unhammer(~Unhammer@gateway/tor-sasl/unhammer)
2021-04-13 15:52:18 +0200 <ski> not exactly
2021-04-13 15:52:20 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-04-13 15:52:21 +0200rj(~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
2021-04-13 15:52:35 +0200 <ski> you want to pass `x' and the initial value of the counter, to `eval', then pass the result of that to `print'
2021-04-13 15:52:49 +0200elfets_(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-04-13 15:53:40 +0200 <Komrad_Kafuka> so the error that I'm having https://paste.tomsmeding.com/ny9K69ti is because of this right ? so what does my experssion indicate ?
2021-04-13 15:54:11 +0200Lowl3v3l(~Lowl3v3l@dslb-002-207-103-026.002.207.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
2021-04-13 15:55:00 +0200Lowl3v3l(~Lowl3v3l@2.207.103.26)
2021-04-13 15:55:40 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com)
2021-04-13 15:55:41 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 240 seconds)
2021-04-13 15:55:41 +0200sayola(~vekto@dslb-002-201-085-157.002.201.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
2021-04-13 15:56:14 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-13 15:56:18 +0200sayola(~vekto@2.201.85.157)
2021-04-13 15:56:35 +0200rj(~x@gateway/tor-sasl/rj)
2021-04-13 15:56:55 +0200drbean_(~drbean@TC210-63-209-59.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in)
2021-04-13 15:57:09 +0200prinned(~vivek@103.206.114.124)
2021-04-13 15:57:13 +0200cafce25(~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2021-04-13 15:57:44 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-04-13 15:57:57 +0200Komrad_Kafuka(cbd4caba@203.212.202.186) (Quit: Connection closed)
2021-04-13 15:58:29 +0200whatisRT(~whatisRT@91.65.106.51) (Ping timeout: 246 seconds)
2021-04-13 15:59:10 +0200skiblinks
2021-04-13 15:59:11 +0200Lowl3v3l(~Lowl3v3l@2.207.103.26) (Ping timeout: 246 seconds)
2021-04-13 16:00:24 +0200Nicolai(5473e122@84-115-225-34.cable.dynamic.surfer.at)
2021-04-13 16:00:45 +0200tv(~tv@unaffiliated/tv) (Ping timeout: 260 seconds)
2021-04-13 16:00:48 +0200NicolaiGuest42754
2021-04-13 16:00:49 +0200sayola(~vekto@2.201.85.157) (Ping timeout: 252 seconds)
2021-04-13 16:00:51 +0200rj(~x@gateway/tor-sasl/rj) (Remote host closed the connection)
2021-04-13 16:01:12 +0200rj(~x@gateway/tor-sasl/rj)
2021-04-13 16:01:55 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 252 seconds)
2021-04-13 16:02:45 +0200jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-04-13 16:03:30 +0200jamm_(~jamm@unaffiliated/jamm)
2021-04-13 16:03:33 +0200 <Guest42754> HI, does someone know how to install Haskell on a MacBook newest version? Whenever I download and try to run ghci, it says "zsh: command not found: ghci"
2021-04-13 16:03:53 +0200jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-04-13 16:03:59 +0200mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Remote host closed the connection)
2021-04-13 16:04:27 +0200hiroaki_(~hiroaki@2a02:8108:8c40:2bb8:c438:feb2:e809:229a) (Ping timeout: 260 seconds)
2021-04-13 16:05:15 +0200whatisRT(~whatisRT@ip5b416a33.dynamic.kabel-deutschland.de)
2021-04-13 16:05:16 +0200tv(~tv@unaffiliated/tv)
2021-04-13 16:05:46 +0200tv(~tv@unaffiliated/tv) (Client Quit)
2021-04-13 16:06:00 +0200tv(~tv@unaffiliated/tv)
2021-04-13 16:06:05 +0200tv(~tv@unaffiliated/tv) (Client Quit)
2021-04-13 16:06:15 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2021-04-13 16:06:19 +0200tv(~tv@unaffiliated/tv)
2021-04-13 16:06:28 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3117:c681:fa07:7f26)
2021-04-13 16:06:35 +0200 <hypercube> hi Guest42754
2021-04-13 16:06:49 +0200 <hypercube> do you have brew setup?
2021-04-13 16:06:50 +0200hiroaki_(~hiroaki@2a02:8108:8c40:2bb8:c438:feb2:e809:229a)
2021-04-13 16:07:01 +0200sayola(~vekto@dslb-002-201-085-157.002.201.pools.vodafone-ip.de)
2021-04-13 16:07:06 +0200howdoi(uid224@gateway/web/irccloud.com/x-tzexppsgjjqaiofw)
2021-04-13 16:07:27 +0200 <hypercube> id just do something like
2021-04-13 16:07:33 +0200 <hypercube> brew install ghc
2021-04-13 16:07:37 +0200 <merijn> I wouldn't
2021-04-13 16:07:43 +0200 <hypercube> and then run ghci when it's done
2021-04-13 16:07:47 +0200 <hypercube> :c why not
2021-04-13 16:07:52 +0200 <merijn> Homebrew is...kinda into the "bleeding" part of "bleeding edge"
2021-04-13 16:08:03 +0200cafce25(~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de)
2021-04-13 16:08:04 +0200 <merijn> They upgrade GHC versions *waaay* to eagerly imo
2021-04-13 16:08:31 +0200 <merijn> Guest42754: What did you download?
2021-04-13 16:08:51 +0200 <hypercube> really merijn? i dont use a mac but never imagined homebrew to be "bleeding edge" per se
2021-04-13 16:09:07 +0200 <merijn> hypercube: They insist on being "up to date"
2021-04-13 16:09:19 +0200 <merijn> hypercube: Which means that as soon as a new GHC is released, they switch to that
2021-04-13 16:09:40 +0200 <merijn> Personally I'd lag GHC releases by at least 6 months unless you have a good reason to upgrade
2021-04-13 16:10:10 +0200 <hypercube> merijn: i agree, even the new releases adhere to the same standards anyway
2021-04-13 16:11:06 +0200Lowl3v3l(~Lowl3v3l@dslb-002-207-103-026.002.207.pools.vodafone-ip.de)
2021-04-13 16:12:54 +0200malumore_(~malumore@151.62.122.89)
2021-04-13 16:14:03 +0200Sorna(~Sornaensi@077213203030.dynamic.telenor.dk)
2021-04-13 16:14:34 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-13 16:15:06 +0200malumore(~malumore@151.62.122.89) (Ping timeout: 240 seconds)
2021-04-13 16:15:42 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
2021-04-13 16:16:12 +0200alexm_(~alexm_@161.8.254.229)
2021-04-13 16:17:52 +0200Sornaensis(~Sornaensi@79.142.232.102.static.router4.bolignet.dk) (Ping timeout: 240 seconds)
2021-04-13 16:18:00 +0200curlybangs(185a6b4e@cpe-24-90-107-78.nyc.res.rr.com)
2021-04-13 16:18:51 +0200 <Guest42754> I tried downloading brew, but when I want to install ghc from brew it says "zsh: command not found: brew"
2021-04-13 16:19:31 +0200hyiltiz(~quassel@unaffiliated/hyiltiz) (Ping timeout: 252 seconds)
2021-04-13 16:19:49 +0200 <Guest42754> I think it has something to do with the path, that is why I can't open ghci in terminal
2021-04-13 16:20:00 +0200mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh)
2021-04-13 16:20:12 +0200alexm_(~alexm_@161.8.254.229) (Ping timeout: 240 seconds)
2021-04-13 16:20:20 +0200 <Guest42754> thank you for the reply!
2021-04-13 16:20:22 +0200hyiltiz(~quassel@unaffiliated/hyiltiz)
2021-04-13 16:20:39 +0200AkechiShiro(~AkechiShi@2a01:e0a:5f9:9681:2d2a:c15d:f996:c56f)
2021-04-13 16:21:12 +0200hypercube(hypercube@gateway/vpn/protonvpn/hypercube) (Ping timeout: 268 seconds)
2021-04-13 16:21:15 +0200dmytrish(~mitra@2a02:8084:a82:d900:f811:9873:2623:c28b) (Ping timeout: 260 seconds)
2021-04-13 16:24:22 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser)
2021-04-13 16:25:58 +0200mrchampion(~mrchampio@38.18.109.23)
2021-04-13 16:26:30 +0200Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-04-13 16:27:46 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 252 seconds)
2021-04-13 16:29:25 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 252 seconds)
2021-04-13 16:29:37 +0200Guest_55(5473e122@84-115-225-34.cable.dynamic.surfer.at)
2021-04-13 16:30:06 +0200waleee-cl(uid373333@gateway/web/irccloud.com/x-modavknqpmqvbcri)
2021-04-13 16:30:27 +0200gienah_(~mwright@119-18-3-62.771203.syd.nbn.aussiebb.net) (Ping timeout: 268 seconds)
2021-04-13 16:30:37 +0200jamm_(~jamm@unaffiliated/jamm)
2021-04-13 16:31:44 +0200gienah(~mwright@gentoo/developer/gienah)
2021-04-13 16:33:19 +0200 <Guest_55> I'm trying to install the Haskell platform with cup but when I run the command in terminal it tells me bad CPU type in executable.
2021-04-13 16:33:43 +0200Guest42754(5473e122@84-115-225-34.cable.dynamic.surfer.at) (Ping timeout: 240 seconds)
2021-04-13 16:33:43 +0200amerigo(uid331857@gateway/web/irccloud.com/x-nxarbmfdflgljuos)
2021-04-13 16:34:04 +0200ubert(~Thunderbi@77.119.128.21.wireless.dyn.drei.com)
2021-04-13 16:34:12 +0200 <merijn> No clue what cup is, but that error suggests you are installing x86 executables on the new M1 ARM macOS?
2021-04-13 16:35:17 +0200idhugo(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 260 seconds)
2021-04-13 16:35:32 +0200jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 258 seconds)
2021-04-13 16:37:00 +0200 <Guest_55> I meant ghcup, but yes I'm using the new M1 ARM macOS
2021-04-13 16:37:56 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2021-04-13 16:38:08 +0200 <maerwald> Guest_55: curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | arch -x86_64 /bin/bash
2021-04-13 16:41:01 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-04-13 16:41:31 +0200 <Guest_55> arch: posix_spawnp: /bin/bash: Bad CPU type in executable
2021-04-13 16:41:31 +0200 <Guest_55> (23) Failed writing body
2021-04-13 16:41:42 +0200 <Guest_55> this is what it tells me now
2021-04-13 16:43:39 +0200_noblegas(uid91066@gateway/web/irccloud.com/x-nmdbocjlxmbwafmr) (Quit: Connection closed for inactivity)
2021-04-13 16:43:44 +0200ram19890(~ram@49.207.130.109)
2021-04-13 16:44:23 +0200HannaM(~quassel@p54849510.dip0.t-ipconnect.de)
2021-04-13 16:47:53 +0200 <maerwald> Guest_55: softwareupdate --install-rosetta
2021-04-13 16:48:08 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-13 16:49:26 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-13 16:51:44 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-04-13 16:52:07 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-04-13 16:52:25 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr)
2021-04-13 16:52:38 +0200grimpeux(~textual@modemcable153.12-178-173.mc.videotron.ca)
2021-04-13 16:52:40 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2021-04-13 16:52:44 +0200 <Guest_55> thank you
2021-04-13 16:52:48 +0200Guest_55(5473e122@84-115-225-34.cable.dynamic.surfer.at) (Quit: Connection closed)
2021-04-13 16:53:12 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-04-13 16:53:27 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-13 16:56:00 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-04-13 16:57:04 +0200__minoru__shirae(~shiraeesh@109.166.56.189)
2021-04-13 17:00:16 +0200gienah_(~mwright@119-18-3-62.771203.syd.nbn.aussiebb.net)
2021-04-13 17:02:45 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-13 17:02:58 +0200gienah(~mwright@gentoo/developer/gienah) (Ping timeout: 252 seconds)
2021-04-13 17:03:26 +0200Pickchea(~private@unaffiliated/pickchea) (Ping timeout: 240 seconds)
2021-04-13 17:06:20 +0200jlamothe(~jlamothe@198.251.57.81) (Quit: leaving)
2021-04-13 17:10:32 +0200__minoru__shirae(~shiraeesh@109.166.56.189) (Ping timeout: 240 seconds)
2021-04-13 17:13:29 +0200curlybangs(185a6b4e@cpe-24-90-107-78.nyc.res.rr.com) (Quit: Ping timeout (120 seconds))
2021-04-13 17:14:18 +0200jamm_(~jamm@unaffiliated/jamm)
2021-04-13 17:15:16 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-13 17:18:42 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-04-13 17:19:56 +0200pavonia(~user@unaffiliated/siracusa)
2021-04-13 17:20:32 +0200__minoru__shirae(~shiraeesh@109.166.56.189)
2021-04-13 17:21:29 +0200jlamothe(~jlamothe@198.251.57.81)
2021-04-13 17:24:09 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-04-13 17:24:49 +0200roconnor(~roconnor@host-45-78-202-80.dyn.295.ca)
2021-04-13 17:26:33 +0200ksamak(~ksamak@185.169.233.12) (Remote host closed the connection)
2021-04-13 17:26:56 +0200kini(~kini@unaffiliated/kini) (Remote host closed the connection)
2021-04-13 17:28:15 +0200kini(~kini@unaffiliated/kini)
2021-04-13 17:29:03 +0200 <fiedlr> Is there a "dual term" to reduction? That is, in a -- particular/concrete -- calculation. E.g. if we have f x = 5 and we reduce f 4 ~> 5, what do we call the inverse arrow 5 ~> f 4?
2021-04-13 17:30:16 +0200 <dolio> Expansion.
2021-04-13 17:31:01 +0200proteusguy(~proteusgu@cm-58-10-209-239.revip7.asianet.co.th) (Remote host closed the connection)
2021-04-13 17:31:19 +0200 <fiedlr> I thought so, thanks. Just checking others' opinion.
2021-04-13 17:32:28 +0200 <dolio> It's rarely used for that sort of example, though.
2021-04-13 17:34:23 +0200 <fiedlr> I think it's kind of counterintuitive in some cases, because the expression can get longer with reduction.
2021-04-13 17:34:57 +0200 <ski> it's somewhat of a misnomer, one could argue, yea
2021-04-13 17:35:13 +0200jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-04-13 17:35:54 +0200 <ski> however, for terminating computations, it does get closer to the result. often one would prove a computation is terminating, by introducing some kind of "size" measure, and show that it decreases (discretely) in each step (towards zero)
2021-04-13 17:36:02 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com) (Ping timeout: 240 seconds)
2021-04-13 17:36:33 +0200kiweun(~kiweun@2607:fea8:2a62:9600:483b:ac14:a41e:28c4)
2021-04-13 17:36:34 +0200 <ski> (e.g. in some cases, one might operate on trees, and get wider, but shallower, trees, in each step)
2021-04-13 17:37:29 +0200 <fiedlr> Yeah I know what you mean... I meant more like when it is used with "expansion" in the same text. But I couldn't think of a better alternative :-( I guess I'll stick to that.
2021-04-13 17:37:47 +0200 <fiedlr> Especially when the "size" measure is not clearly stated.
2021-04-13 17:37:59 +0200myShoggoth(~myShoggot@97-120-72-12.ptld.qwest.net)
2021-04-13 17:39:37 +0200 <dolio> Well, in the case of β, there is not really a canonical choice of 'expansion' either, so it is ill behaved in that way, too.
2021-04-13 17:39:46 +0200 <dolio> Unlike η, where the term is actually used.
2021-04-13 17:41:05 +0200kiweun(~kiweun@2607:fea8:2a62:9600:483b:ac14:a41e:28c4) (Ping timeout: 258 seconds)
2021-04-13 17:41:55 +0200usr25(~usr25@unaffiliated/usr25)
2021-04-13 17:41:58 +0200 <ski> η-expansion for sum types would also be more open-ended, iirc
2021-04-13 17:42:26 +0200alexm_(~alexm_@161.8.254.229)
2021-04-13 17:42:27 +0200 <dolio> Which is also not done.
2021-04-13 17:42:47 +0200porygon2(~porygon2@178.239.168.171)
2021-04-13 17:43:00 +0200 <fiedlr> Of course, in general it is ill-defined. That's why I talked about a particular computation branch.
2021-04-13 17:43:02 +0200 <ski> mm. i suppose η-long form doesn't use that (?)
2021-04-13 17:43:43 +0200ski. o O ( normalization-by-evaluation, reflection & reification via delimited continuations )
2021-04-13 17:44:54 +0200hololeap_hololeap
2021-04-13 17:45:33 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2021-04-13 17:46:12 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com)
2021-04-13 17:46:14 +0200ep1ctetus(~epictetus@ip72-194-54-201.sb.sd.cox.net)
2021-04-13 17:46:29 +0200cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.1)
2021-04-13 17:48:16 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-13 17:49:32 +0200alexm_(~alexm_@161.8.254.229) (Ping timeout: 240 seconds)
2021-04-13 17:50:11 +0200KeyJoo(~KeyJoo@62.176.30.171)
2021-04-13 17:50:32 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2021-04-13 17:52:07 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-04-13 17:52:25 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr)
2021-04-13 17:52:33 +0200Major_Biscuit(~Major_Bis@wlan-145-94-219-47.wlan.tudelft.nl) (Ping timeout: 240 seconds)
2021-04-13 17:53:18 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-04-13 17:57:15 +0200idhugo(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
2021-04-13 17:58:37 +0200grimpeux(~textual@modemcable153.12-178-173.mc.videotron.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-04-13 17:58:52 +0200chele(~chele@78.128.94.174) (Ping timeout: 240 seconds)
2021-04-13 17:59:33 +0200finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 240 seconds)
2021-04-13 18:00:17 +0200Haskman[m](haskmanmat@gateway/shell/matrix.org/x-sdpzurestintfxkz) (Quit: Idle for 30+ days)
2021-04-13 18:01:40 +0200finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-04-13 18:01:49 +0200Lycurgus(~niemand@98.4.118.65)
2021-04-13 18:03:55 +0200danso(~dan@23-233-111-52.cpe.pppoe.ca)
2021-04-13 18:04:19 +0200Rudd0(~Rudd0@185.189.115.108)
2021-04-13 18:07:05 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2021-04-13 18:09:56 +0200kritzefitz(~kritzefit@2003:5b:203b:200::10:49) (Ping timeout: 245 seconds)
2021-04-13 18:11:12 +0200pfurla_(~pfurla@ool-182ed2e2.dyn.optonline.net)
2021-04-13 18:11:14 +0200coot(~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-04-13 18:11:40 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-04-13 18:16:18 +0200Benzi-Junior(~BenziJuni@dsl-149-64-251.hive.is)
2021-04-13 18:21:11 +0200rond_(5940206b@89-64-32-107.dynamic.chello.pl)
2021-04-13 18:22:19 +0200xff0x(~xff0x@2001:1a81:52e3:ed00:8d58:e974:e293:f3fe) (Ping timeout: 250 seconds)
2021-04-13 18:23:06 +0200kritzefitz(~kritzefit@212.86.56.80)
2021-04-13 18:23:22 +0200xff0x(~xff0x@2001:1a81:52e3:ed00:16c4:781d:2418:6176)
2021-04-13 18:23:52 +0200Lycurgus(~niemand@98.4.118.65) (Quit: Exeunt)
2021-04-13 18:24:13 +0200supercoven(~Supercove@dsl-hkibng31-58c384-213.dhcp.inet.fi)
2021-04-13 18:24:14 +0200supercoven(~Supercove@dsl-hkibng31-58c384-213.dhcp.inet.fi) (Max SendQ exceeded)
2021-04-13 18:24:19 +0200_ashbreeze_(~mark@64.85.214.234.reverse.socket.net) (Remote host closed the connection)
2021-04-13 18:24:28 +0200supercoven(~Supercove@dsl-hkibng31-58c384-213.dhcp.inet.fi)
2021-04-13 18:25:37 +0200_ashbreeze_(~mark@64.85.214.234.reverse.socket.net)
2021-04-13 18:26:50 +0200raichoo(~raichoo@dslb-088-077-025-199.088.077.pools.vodafone-ip.de)
2021-04-13 18:28:07 +0200kini(~kini@unaffiliated/kini) (Remote host closed the connection)
2021-04-13 18:29:24 +0200kini(~kini@unaffiliated/kini)
2021-04-13 18:30:03 +0200jonatan(~nate@h77-53-70-163.cust.a3fiber.se) (Remote host closed the connection)
2021-04-13 18:34:39 +0200neiluj(~jco@91-167-203-101.subs.proxad.net)
2021-04-13 18:34:43 +0200neiluj(~jco@91-167-203-101.subs.proxad.net) (Changing host)
2021-04-13 18:34:43 +0200neiluj(~jco@unaffiliated/neiluj)
2021-04-13 18:37:41 +0200bitmagie(~Thunderbi@200116b8065a8100544220815d2d2bde.dip.versatel-1u1.de)
2021-04-13 18:38:13 +0200bitmagie(~Thunderbi@200116b8065a8100544220815d2d2bde.dip.versatel-1u1.de) (Client Quit)
2021-04-13 18:40:37 +0200Sorny(~Sornaensi@79.142.232.102)
2021-04-13 18:40:40 +0200malumore_(~malumore@151.62.122.89) (Remote host closed the connection)
2021-04-13 18:41:38 +0200malumore(~malumore@151.62.122.89)
2021-04-13 18:41:39 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-04-13 18:42:06 +0200grimpeux(~textual@modemcable153.12-178-173.mc.videotron.ca)
2021-04-13 18:42:20 +0200fiedlr(~fiedlr@83.148.33.254) (Remote host closed the connection)
2021-04-13 18:43:11 +0200Sorna(~Sornaensi@077213203030.dynamic.telenor.dk) (Ping timeout: 240 seconds)
2021-04-13 18:44:11 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-04-13 18:44:39 +0200kuribas(~user@ptr-25vy0i8g2c6vaifvwgm.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-04-13 18:45:26 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds)
2021-04-13 18:45:59 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-13 18:47:12 +0200grimpeux(~textual@modemcable153.12-178-173.mc.videotron.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-04-13 18:47:44 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-04-13 18:48:22 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-13 18:49:40 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-04-13 18:50:30 +0200kw(d4662d5d@212.102.45.93)
2021-04-13 18:50:42 +0200jakalx(~jakalx@base.jakalx.net) ("Error from remote client")
2021-04-13 18:51:06 +0200 <kw> Is there a conventional way of naming traversals? Like how folks add 'L' to the names of lenses?
2021-04-13 18:51:41 +0200fendor_(~fendor@91.141.2.26.wireless.dyn.drei.com)
2021-04-13 18:52:06 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-04-13 18:52:25 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr)
2021-04-13 18:53:13 +0200elfets_(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 240 seconds)
2021-04-13 18:53:37 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-04-13 18:54:11 +0200fendor(~fendor@77.119.130.199.wireless.dyn.drei.com) (Ping timeout: 240 seconds)
2021-04-13 18:54:16 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-04-13 18:55:23 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-13 18:55:48 +0200alexm_(~alexm_@161.8.254.229)
2021-04-13 18:56:20 +0200 <tapas> not really kw. I tend to name those similarly to any other traverse-based functionality
2021-04-13 18:57:26 +0200 <kw> My problem is that the obvious names are already taken by less obvious functions. I'm thinking of tacking an 'A' or 'T' to the end.
2021-04-13 18:59:04 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 268 seconds)
2021-04-13 19:00:07 +0200alexm_(~alexm_@161.8.254.229) (Ping timeout: 252 seconds)
2021-04-13 19:00:21 +0200norsxa(uid494793@gateway/web/irccloud.com/x-qcpmzqxcuhseltht) (Quit: Connection closed for inactivity)
2021-04-13 19:01:46 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 252 seconds)
2021-04-13 19:05:18 +0200dhil(~dhil@80.208.56.181) (Quit: Leaving)
2021-04-13 19:06:35 +0200kw(d4662d5d@212.102.45.93) (Quit: Connection closed)
2021-04-13 19:06:47 +0200jakalx(~jakalx@base.jakalx.net)
2021-04-13 19:06:49 +0200 <ski> perhaps you could use unusual grammatical forms ..
2021-04-13 19:06:54 +0200 <ski> .. oh, they keft
2021-04-13 19:07:08 +0200rond_(5940206b@89-64-32-107.dynamic.chello.pl) (Quit: Connection closed)
2021-04-13 19:08:04 +0200jonathanx_(~jonathan@h-176-109.A357.priv.bahnhof.se)
2021-04-13 19:08:38 +0200idhugo(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds)
2021-04-13 19:09:35 +0200jonathanx(~jonathan@h-176-109.A357.priv.bahnhof.se) (Ping timeout: 246 seconds)
2021-04-13 19:18:59 +0200kritzefitz(~kritzefit@212.86.56.80) (Remote host closed the connection)
2021-04-13 19:19:05 +0200HannaM(~quassel@p54849510.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2021-04-13 19:19:18 +0200HannaM(~quassel@p54849510.dip0.t-ipconnect.de)
2021-04-13 19:20:20 +0200fiedlr(~fiedlr@83.148.33.254)
2021-04-13 19:20:26 +0200Rudd0(~Rudd0@185.189.115.108) (Ping timeout: 240 seconds)
2021-04-13 19:22:29 +0200jaykru(~user@unaffiliated/jaykru)
2021-04-13 19:24:02 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-04-13 19:24:38 +0200 <jaykru> does anybody here have experience with Gloss? I'm having trouble with `simulate`, which is successfully updating my state (as confirmed by a trace call) but not updating the display of my state :/ Is there a less magical way to work with real-time display updates in this library so I have more hope of figuring out what's going on?
2021-04-13 19:24:43 +0200kristijonas_(~kristijon@78-56-32-39.static.zebra.lt)
2021-04-13 19:26:11 +0200kristijonas(~kristijon@78-56-32-39.static.zebra.lt) (Ping timeout: 240 seconds)
2021-04-13 19:29:00 +0200acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2021-04-13 19:29:48 +0200kini(~kini@unaffiliated/kini) (Remote host closed the connection)
2021-04-13 19:31:08 +0200kini(~kini@unaffiliated/kini)
2021-04-13 19:32:07 +0200Pickchea(~private@unaffiliated/pickchea)
2021-04-13 19:32:34 +0200gitgood(~gitgood@80-44-9-246.dynamic.dsl.as9105.com)
2021-04-13 19:35:06 +0200ubert(~Thunderbi@77.119.128.21.wireless.dyn.drei.com) (Ping timeout: 240 seconds)
2021-04-13 19:35:47 +0200jamm_(~jamm@unaffiliated/jamm)
2021-04-13 19:36:16 +0200Sheilong(uid293653@gateway/web/irccloud.com/x-ljvkmqtgqlpdhiue)
2021-04-13 19:37:08 +0200ram19890(~ram@49.207.130.109) (Quit: Konversation terminated!)
2021-04-13 19:38:31 +0200justan0theruser(~justanoth@unaffiliated/justanotheruser)
2021-04-13 19:38:35 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 250 seconds)
2021-04-13 19:38:56 +0200grimpeux(~textual@modemcable153.12-178-173.mc.videotron.ca)
2021-04-13 19:39:53 +0200jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 250 seconds)
2021-04-13 19:42:40 +0200idhugo(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
2021-04-13 19:45:05 +0200grimpeux(~textual@modemcable153.12-178-173.mc.videotron.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-04-13 19:45:32 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-13 19:49:08 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-13 19:49:55 +0200grimpeux(~textual@modemcable153.12-178-173.mc.videotron.ca)
2021-04-13 19:50:10 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 265 seconds)
2021-04-13 19:52:06 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-04-13 19:52:25 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr)
2021-04-13 19:52:55 +0200amerigo(uid331857@gateway/web/irccloud.com/x-nxarbmfdflgljuos) (Quit: Connection closed for inactivity)
2021-04-13 19:57:58 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-13 19:58:02 +0200hypercube(hypercube@gateway/vpn/protonvpn/hypercube)
2021-04-13 19:58:05 +0200 <wroathe> Is the point of explicitly universally quantifying a type to imply that the types not explicitly universally quantified are instead existentially quantified?
2021-04-13 19:58:15 +0200 <wroathe> i.e. the forall x. syntax
2021-04-13 19:58:42 +0200vicfred(~vicfred@unaffiliated/vicfred)
2021-04-13 19:59:37 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-04-13 20:00:42 +0200 <monochrom> No.
2021-04-13 20:01:10 +0200 <wroathe> Well, types are implicitly universall quantified by default, right?
2021-04-13 20:01:15 +0200 <monochrom> Yes.
2021-04-13 20:01:18 +0200 <wroathe> universally*
2021-04-13 20:01:55 +0200 <wroathe> No further questions, your honor.
2021-04-13 20:02:20 +0200 <monochrom> :)
2021-04-13 20:02:22 +0200 <ski> "Well, types are implicitly universall quantified by default, right?" -- no
2021-04-13 20:02:41 +0200 <ski> type signature are (except for in some cases)
2021-04-13 20:02:51 +0200 <wroathe> type variables, I meant
2021-04-13 20:02:53 +0200 <wroathe> sorry
2021-04-13 20:03:16 +0200 <ski> when you talk about quantification, or any binder, you must ask "where ?"
2021-04-13 20:03:46 +0200alexm_(~alexm_@161.8.254.229)
2021-04-13 20:03:50 +0200 <ski> it's not the case that `[a] -> [a]' "is short for" `forall a. [a] -> [a]', e.g.
2021-04-13 20:05:34 +0200idhugo(~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 252 seconds)
2021-04-13 20:06:02 +0200 <ski> if it was, then e.g. `([a] -> [a]) -> [[a]] -> [[a]]' would mean the same as `(forall a. [a] -> [a]) -> [[a]] -> [[a]]', and `data ListTransf a = LT ([a] -> [a])' would mean the same as `data ListTransf a = LT (forall a. [a] -> [a])'. neither of which are actually the case
2021-04-13 20:07:10 +0200 <ski> in most circumstances, a type *signature* without explicit quantification really means a corresponding one, where there's been added a `forall' just after the `::', binding the (free) type variables in the type
2021-04-13 20:08:06 +0200alexm_(~alexm_@161.8.254.229) (Ping timeout: 252 seconds)
2021-04-13 20:08:08 +0200ram19890(~ram@49.207.130.109)
2021-04-13 20:08:51 +0200xprl-gjf(~gavin@98.154.147.147.dyn.plus.net)
2021-04-13 20:09:07 +0200 <ski> exceptions are e.g. `data ListTransf a = LT {appListTransf :: [a] -> [a]}', and `class Eq a where (==) :: a -> a -> Bool' (which does not mean `class Eq a where (==) :: forall a. a -> a -> Bool'. `(==)' is a monomorphic method, not a polymorphic one. `fmap', otoh is polymorphic, since it really is `class Functor f where fmap :: forall a b. (a -> b) -> (f a -> f b)')
2021-04-13 20:09:10 +0200 <wroathe> ski: It was a half-assed question that monochrom correctly called me out on. I'm still working through that Typing Haskell in Haskell paper and it occurred to me while I was writing the pattern type inference routine that I still have no idea how any of that forall. stuff works.
2021-04-13 20:09:45 +0200 <wroathe> ski: But there's plenty of resources to learn about it online, and so don't trouble yourself
2021-04-13 20:10:28 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-04-13 20:10:48 +0200 <[exa]> wroathe: forall is only very implicitly present in THIH, they don't really implement any higher-order polymorphism
2021-04-13 20:11:00 +0200 <ski> also, if you have a local signature inside a `where' or `let', which mentions a type variable bound by a type signature accompanying the outer defining equation (and `ScopedTypeVariables' is enables). (also, with `InstanceSigs', you can also put signatures inside `instance' declarations, and then tyvars mentioned in the head of the instance are in scope, so not "implicitly quantified", for the method type
2021-04-13 20:11:02 +0200 <monochrom> I forgot: Does Typing Haskell in Haskell has an explicit forall internally?
2021-04-13 20:11:06 +0200 <ski> signatures)
2021-04-13 20:11:07 +0200whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-04-13 20:11:20 +0200 <[exa]> monochrom: iirc not
2021-04-13 20:11:35 +0200 <ski> anyway, "implicit universal quantification" is nothing deep at all. it's just a convenient shorthand, to avoid explicitly spelling out `forall's all the time
2021-04-13 20:11:52 +0200 <wroathe> They've got this constructor: data Scheme = Forall [Kind] (Qual Type)
2021-04-13 20:12:09 +0200 <monochrom> Oh, that.
2021-04-13 20:12:11 +0200 <wroathe> Which might not be the same thing. I'm hoping this paper will start making sense as I put the full type inference algorithm together
2021-04-13 20:12:14 +0200whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-04-13 20:12:16 +0200 <ski> wroathe : did i mention "Polymorphic Type Inference" to you, already ?
2021-04-13 20:12:25 +0200 <[exa]> THIH implements HM with typeclasses, recursion, context splits for local definitions, and some other minor goodies
2021-04-13 20:12:29 +0200 <wroathe> ski: Not sure
2021-04-13 20:12:44 +0200 <ski> "Polymorphic Type Inference" by Michael I. Schwartzbach in 1995-03 at <https://cs.au.dk/~amoeller/mis/typeinf.p(s|df)>,<https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.57.1493>
2021-04-13 20:12:50 +0200 <[exa]> wroathe: the "forall" in THIH is, more or less, the one from Hindley-Milner type system, which is only allowed once per polytype.
2021-04-13 20:12:52 +0200 <ski> also, perhaps
2021-04-13 20:12:56 +0200 <ski> @where on-understanding
2021-04-13 20:12:56 +0200 <lambdabot> "On Understanding Types, Data Abstraction, and Polymorphism" by Luca Cardelli,Peter Wegner in 1985-12 at <http://lucacardelli.name/Papers/OnUnderstanding.A4.pdf>
2021-04-13 20:12:59 +0200 <ski> @where on-understanding-revisited
2021-04-13 20:12:59 +0200 <lambdabot> "On Understanding Data Abstraction, Revisited" by William R. Cook in 2009-10 at <http://www.cs.utexas.edu/~wcook/Drafts/2009/essay.pdf>
2021-04-13 20:13:24 +0200 <ski> could be interesting, for further information relating to polymorphism/universals, and also to existentials (and relation to OO, and ADTs)
2021-04-13 20:13:31 +0200wroathewrites down the word polytype
2021-04-13 20:14:23 +0200 <monochrom> OK, so in HM the dichotomy is "implicitly universally quantified" vs "an unknown waiting to be solved".
2021-04-13 20:14:42 +0200 <monochrom> rather than universal vs existential
2021-04-13 20:15:23 +0200 <ski> (oh, and regrettably, people often say "polymorphic type", when they really mean "universally quantified type". imho "polymorphic type" is something completely different. e.g. `forall a. a -> a' is not a polymorphic type (it is monomorphic, having kind `*'/`Type'). however `Const' (of kind `forall k. Type -> k -> Type' is a polymorphic type. also `Proxy')
2021-04-13 20:15:36 +0200 <monochrom> people usually say "meta variable" for "unknown waiting to be solved". But I hate it.
2021-04-13 20:15:54 +0200 <[exa]> +1 against metavariables
2021-04-13 20:15:56 +0200 <ski> whyso ?
2021-04-13 20:16:07 +0200 <wroathe> ski: So is your definition of polymorphic then that it has any kind, including *?
2021-04-13 20:16:27 +0200 <monochrom> piling higher and deeper on the word "variable"
2021-04-13 20:16:57 +0200 <ski> wroathe : no. a polymorphic value is one whose type is of the shape `forall a. ..a..'. a polymorphic type is one whose kind is of the shape `forall k. ..k..' -- i think that's the shortest way to put it
2021-04-13 20:17:24 +0200 <ski> "unknown" (as a noun) is certainly not a bad term for it
2021-04-13 20:17:42 +0200 <ski> wroathe : e.g. `Const' certainly does not have kind `*'
2021-04-13 20:17:54 +0200 <[exa]> wroathe: perhaps best contrast it with monomorphic
2021-04-13 20:17:59 +0200 <ski> @kind Const :: *
2021-04-13 20:18:01 +0200 <lambdabot> error:
2021-04-13 20:18:01 +0200 <lambdabot> • Expecting two more arguments to ‘Const’
2021-04-13 20:18:01 +0200 <lambdabot> Expected a type, but ‘Const’ has kind ‘* -> k0 -> *’
2021-04-13 20:18:02 +0200 <ski> @kind Const :: * -> * -> *
2021-04-13 20:18:03 +0200 <lambdabot> * -> * -> *
2021-04-13 20:18:06 +0200 <ski> @kind Const :: * -> (* -> *) -> *
2021-04-13 20:18:07 +0200 <lambdabot> * -> (* -> *) -> *
2021-04-13 20:18:08 +0200 <[exa]> ski: nitpicking/curiosity: is `Const` polymorphic?
2021-04-13 20:18:16 +0200 <ski> @kind Const
2021-04-13 20:18:18 +0200 <lambdabot> * -> k -> *
2021-04-13 20:18:28 +0200 <ski> [exa] : yes (as i said above)
2021-04-13 20:18:57 +0200 <[exa]> ah it clicked now, I was thinking at a wrong level.
2021-04-13 20:19:00 +0200 <[exa]> :]
2021-04-13 20:19:41 +0200 <ski> (for short, instead of "universally quantified type", i guess one could say `forall'-type)
2021-04-13 20:20:01 +0200 <wroathe> What would be the simplest possible example where an explicit forall would be required to achieve behavior that's different than what haskell's default behavior is?
2021-04-13 20:21:00 +0200 <ski> monochrom : "meta variable" make some kind of sense to me. but i agree it's not that great a name, a bit clunky .. and "logic variable" (basically the same thing, in a logic programming context) is more ad hoc a term
2021-04-13 20:21:05 +0200 <[exa]> wroathe: guessing: `f x = x x` called as `f id`
2021-04-13 20:21:19 +0200 <monochrom> You'll need rank-2 for that. forall b. (forall a. a -> a -> a) -> b -> b -> b isn't expressible in Haskell 2010.
2021-04-13 20:21:25 +0200tsandstr(~user@nat-130-132-173-221.central.yale.edu)
2021-04-13 20:22:12 +0200 <monochrom> Then gain I goofed it. You can argue that it's just forall b. Bool -> b -> b -> b >:)
2021-04-13 20:22:52 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-04-13 20:23:04 +0200 <wroathe> [exa]: Right, so in this example it's about breaking the assumption that x would have a type of kind *
2021-04-13 20:23:38 +0200 <wroathe> [exa]: ? I meant to add
2021-04-13 20:24:44 +0200 <wroathe> monochrom: Was that an answer to my question?
2021-04-13 20:24:51 +0200 <monochrom> Yes.
2021-04-13 20:24:56 +0200 <wroathe> monochrom: And if so, why is forall required there?
2021-04-13 20:25:03 +0200 <[exa]> wroathe: x has to have kind *, it's used as a value-level term, right?
2021-04-13 20:25:07 +0200 <wroathe> monochrom: (sorry if I'm being dense)
2021-04-13 20:25:09 +0200curlybangs(185a6b4e@cpe-24-90-107-78.nyc.res.rr.com)
2021-04-13 20:25:13 +0200 <monochrom> The inner "forall a" cannot be deleted.
2021-04-13 20:25:36 +0200 <monochrom> The outer "forall b", I don't care either way.
2021-04-13 20:26:30 +0200 <monochrom> Here. xxx :: (forall a. a->a->a) -> Int; xxx f = f 10 20
2021-04-13 20:26:42 +0200 <ski> bah .. i know John Baez has a TWF issue talking about stuff like `2 = forall a. a -> a -> a', but i can't find it atm .. :/
2021-04-13 20:27:39 +0200 <wroathe> monochrom: So without the forall, the first paramater's type would have to be a -> a -> Int, right?
2021-04-13 20:28:12 +0200 <monochrom> Without the forall, you have (a->a->a)->Int. That's very different.
2021-04-13 20:28:27 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-13 20:28:40 +0200 <monochrom> yyy :: (a->a->a) -> Int; yyy f = f 10 20 = type error
2021-04-13 20:28:45 +0200 <ski> > let frob f = f (map f ["foo","bar","baz","quux"]) in frob reverse
2021-04-13 20:28:47 +0200 <lambdabot> error:
2021-04-13 20:28:47 +0200 <lambdabot> • Couldn't match type ‘[Char]’ with ‘Char’
2021-04-13 20:28:47 +0200 <lambdabot> Expected type: [Char] -> Char
2021-04-13 20:28:57 +0200 <ski> > let frob :: (forall a. [a] -> [a]) -> [String]; frob f = f (map f ["foo","bar","baz","quux"]) in frob reverse
2021-04-13 20:28:59 +0200 <lambdabot> ["xuuq","zab","rab","oof"]
2021-04-13 20:29:01 +0200 <ski> > let frob :: (forall a. [a] -> [a]) -> [String]; frob f = f (map f ["foo","bar","baz","quux"]) in frob (take 2)
2021-04-13 20:29:04 +0200 <lambdabot> ["fo","ba"]
2021-04-13 20:29:17 +0200 <ski> wroathe : ^ that's another rank-2 example
2021-04-13 20:29:55 +0200 <monochrom> "for every person p, (if p drinks, then I drink)" vs "if (for every person p, p drinks), then I drink".
2021-04-13 20:30:34 +0200jaykru(~user@unaffiliated/jaykru) (Remote host closed the connection)
2021-04-13 20:30:55 +0200 <[exa]> wroathe: anyway the previous example is basically a play on ω=λx.xx, it's a usual (anti)example in almost all type textbooks
2021-04-13 20:31:04 +0200 <wroathe> ski: So in that first line, f is being applied to both an array of strings, and individual strings themselves, right?
2021-04-13 20:31:39 +0200ski. o O ( <https://en.wikipedia.org/wiki/Drinker_paradox> ; "Searchable Sets, Dubuc-Penon Compactness, Omniscience Principles, and the Drinker Paradox" by Martín Hötzel Escardó,Paulo Oliva in 2010 at <http://www.cs.bham.ac.uk/~mhe/papers/dp.pdf>,<http://www.cs.bham.ac.uk/~mhe/papers/DP/> )
2021-04-13 20:31:56 +0200 <ski> wroathe : yes (lists, not arrays)
2021-04-13 20:32:11 +0200 <wroathe> ski: Sorry, I still have one foot in C land :P
2021-04-13 20:32:13 +0200 <wroathe> ski: Yes, lists
2021-04-13 20:32:19 +0200 <ski> wroathe : or, to take a simpler example, `let frob f = (f False,f "True") in f id'
2021-04-13 20:32:28 +0200 <wroathe> ski: Perfect!
2021-04-13 20:32:32 +0200 <ski> er, s/f id/frob id/
2021-04-13 20:33:04 +0200 <wroathe> ski: So without forall you couldn't express that f is both a Bool -> Bool and a String -> String
2021-04-13 20:33:22 +0200ski. o O ( <https://en.wikipedia.org/wiki/Donkey_sentence> )
2021-04-13 20:33:24 +0200 <ski> right
2021-04-13 20:33:40 +0200 <ski> (with intersection types, you could. but Haskell doesn't have those)
2021-04-13 20:34:07 +0200 <wroathe> ski: That example helps a lot. Thanks.
2021-04-13 20:34:55 +0200 <wroathe> ski: What does this donkey sentence thing have to do with this conversation :P?
2021-04-13 20:35:14 +0200 <ski> rank-2 isn't that commonly useful .. but when it what one wants to do, it can be hard to work around in another way
2021-04-13 20:35:37 +0200rom1504(rom1504@rom1504.fr)
2021-04-13 20:36:02 +0200 <ski> rank-2 can also be used for information hiding, separation of concerns. prohibiting a callback, passed to you, from reaching into your implementation innards
2021-04-13 20:36:02 +0200 <wroathe> I noticed another article mentioning ScopedTypeVariables. Is it the case that forall has been overloaded with meanings that it doesn't traditionally have in Haskell?
2021-04-13 20:36:18 +0200 <ski> not really
2021-04-13 20:36:41 +0200 <ski> (although, `ScopedTypeVariables' is, imho, backwards ..)
2021-04-13 20:36:49 +0200 <wroathe> I.e. shouldn't there be some other form of syntax indicating that a variable is "scoped"? And if not, why does it make sense ot use forall. to designate that?
2021-04-13 20:37:00 +0200 <wroathe> a type variable*
2021-04-13 20:38:22 +0200coot(~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl)
2021-04-13 20:38:30 +0200 <geekosaur> forall (a) to minimize stealing syntax (b) it's kinda the reverse of what it normally means, in the sense of it normally restricts the scope of a type variable but in STV expands it instead
2021-04-13 20:38:37 +0200 <ski> oh, the "if (for every person p, p drinks), then I drink" reminded me of anaphora. like e.g. "Every farmer who owns a donkey beats it.". or "If there exists a prime ⌜p⌝ such that ⌜P(p)⌝, then ⌜Q(q)⌝ also holds." .. does this mean ⌜(∃p. P(p)) ⇒ Q(p)⌝ ? what is the scope of ⌜p⌝ there ??
2021-04-13 20:39:31 +0200 <monochrom> Hey, may I reduce the referential transparency problem to the donkey sentence problem? "The King of France is bald" is short for "Every time there is a King of France, he's bald", now it's "just" a donkey sentence.
2021-04-13 20:39:40 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-04-13 20:39:43 +0200curlybangs(185a6b4e@cpe-24-90-107-78.nyc.res.rr.com) (Quit: Connection closed)
2021-04-13 20:40:01 +0200 <wroathe> This is some high brow hazing going on
2021-04-13 20:40:08 +0200grimpeux(~textual@modemcable153.12-178-173.mc.videotron.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-04-13 20:40:23 +0200 <wroathe> https://www.youtube.com/watch?v=LlfSAGucPZc live action footage of ski and monochrom
2021-04-13 20:40:29 +0200usr25(~usr25@unaffiliated/usr25) (Quit: Leaving)
2021-04-13 20:41:27 +0200 <wroathe> ski: monochrom: [exa]: Well, thanks for the examples. Heading out for now.
2021-04-13 20:43:24 +0200 <monochrom> "if there is an even prime, it's even" is clearly a forall sentence.
2021-04-13 20:43:31 +0200 <monochrom> This is what's wrong with English.
2021-04-13 20:44:01 +0200Sornaensis(~Sornaensi@85.203.36.21)
2021-04-13 20:44:08 +0200horatiohb(~horatiohb@104.236.81.226)
2021-04-13 20:44:17 +0200 <ski> i think there was some issue on GHC, talking about possibly having a language extension that "does `ScopedTypeVariables' right" (in the above sense) .. but i can't find it, atm. at least it mentioned this perception
2021-04-13 20:44:43 +0200 <[exa]> wroathe: btw highly suggest getting how the STLC and Hindley-Milner "inference algorithms" work before you jump to haskell, if you didn't do that already
2021-04-13 20:44:55 +0200 <ski> monochrom : Russell preferred to use an existential quantifier
2021-04-13 20:45:01 +0200 <monochrom> But people don't use that idiom unless it's on the order of "if there is an odd perfect number, it's odd".
2021-04-13 20:45:22 +0200 <ski> now, is "The King of France is not bald." the negation of "The King of France is bald." ?
2021-04-13 20:45:36 +0200 <ski> wroathe : yw
2021-04-13 20:45:48 +0200 <monochrom> the "there is" there is really poetic emphasis on "I really doubt that there is an odd perfect number. Fat chance."
2021-04-13 20:46:49 +0200Sorny(~Sornaensi@79.142.232.102) (Ping timeout: 252 seconds)
2021-04-13 20:47:21 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2021-04-13 20:48:03 +0200 <monochrom> Pig Latin and Donkey English.
2021-04-13 20:48:27 +0200rajivr(uid269651@gateway/web/irccloud.com/x-zldwlxmsftsxcrzs) (Quit: Connection closed for inactivity)
2021-04-13 20:48:39 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 265 seconds)
2021-04-13 20:49:17 +0200 <monochrom> I don't know how to negate "the King of France is bald" but I know how to negate "every even prime is even", it's "every even prime is not even".
2021-04-13 20:49:50 +0200 <monochrom> So perhaps "the King of France is not bald" is just right.
2021-04-13 20:49:52 +0200ubert(~Thunderbi@77.119.128.21.wireless.dyn.drei.com)
2021-04-13 20:50:45 +0200 <monochrom> I still don't know what it means. "means". But I'm just an English room.
2021-04-13 20:51:00 +0200 <ski> monochrom : well, one interpretation is ⌜∏ q : (∑ p : ℕ. prime(p) ∧ even(p)). even(π(q))⌝ / ⌜(q :) ((p :) ℕ × Prime p × Even p) → Even (π q)⌝, as apparently noticed by Göran Sundholm in 1986. see e.g. <https://ncatlab.org/nlab/show/dependent+type+theoretic+methods+in+natural+language+semantics>
2021-04-13 20:52:06 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-04-13 20:52:25 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr)
2021-04-13 20:52:36 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-13 20:52:49 +0200ukari(~ukari@unaffiliated/ukari) (Remote host closed the connection)
2021-04-13 20:53:46 +0200ukari(~ukari@unaffiliated/ukari)
2021-04-13 20:53:58 +0200 <ski> Chung-chieh Shan and Chris Barker has also talked about stuff related to this, iirc. see e.g. "Donkey anaphora is in-scope binding" in 2008, at <https://homes.sice.indiana.edu/ccshan/>
2021-04-13 20:57:23 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-04-13 20:58:18 +0200stef204(~stef204@unaffiliated/stef-204/x-384198)
2021-04-13 20:58:59 +0200kini(~kini@unaffiliated/kini) (Remote host closed the connection)
2021-04-13 20:59:52 +0200urdh(~urdh@unaffiliated/urdh) (Quit: Boom!)
2021-04-13 20:59:57 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed)
2021-04-13 21:00:15 +0200kini(~kini@unaffiliated/kini)
2021-04-13 21:01:11 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com)
2021-04-13 21:03:46 +0200amiri(~amiri@cpe-76-91-154-9.socal.res.rr.com) (Remote host closed the connection)
2021-04-13 21:04:59 +0200 <dolio> Isn't that the wrong negation of 'every even prime is even'?
2021-04-13 21:05:56 +0200amiri(~amiri@cpe-76-91-154-9.socal.res.rr.com)
2021-04-13 21:06:07 +0200 <monochrom> I would hope so. But English native speakers assured me the negation of "all is lost" is "all is not lost".
2021-04-13 21:08:26 +0200 <dolio> Yeah, that phrase doesn't work the logical way.
2021-04-13 21:08:38 +0200 <koz_> "Not all is lost" makes sense too?
2021-04-13 21:09:39 +0200 <monochrom> Both "everyone is not an expert like you" and "not everyone is an expert like you" circulate and have the same meaning.
2021-04-13 21:09:40 +0200 <juri_> not all is lost *yet*.
2021-04-13 21:10:27 +0200 <koz_> "Everyone is not an expert like you" implies you're unique, but "not everyone is an expert like you" does not, at least to me.
2021-04-13 21:10:44 +0200 <monochrom> and which one is actually used in an instance depends on emphasis, mood, and a coin toss.
2021-04-13 21:11:01 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2021-04-13 21:11:04 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed)
2021-04-13 21:11:28 +0200 <koz_> This.
2021-04-13 21:11:41 +0200__minoru__shirae(~shiraeesh@109.166.56.189) (Ping timeout: 240 seconds)
2021-04-13 21:11:50 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com)
2021-04-13 21:11:57 +0200 <dolio> I guess I probably wouldn't say the first one of those, but because I know the logical meaning.
2021-04-13 21:12:02 +0200__minoru__shirae(~shiraeesh@46.34.206.215)
2021-04-13 21:16:47 +0200graf_blutwurst(~user@2001:171b:226e:adc0:c021:f7f7:82b:a023) (Remote host closed the connection)
2021-04-13 21:18:16 +0200xprl-gjf(~gavin@98.154.147.147.dyn.plus.net) (Remote host closed the connection)
2021-04-13 21:18:39 +0200xprl-gjf(~gavin@98.154.147.147.dyn.plus.net)
2021-04-13 21:21:23 +0200rekahsoft(~rekahsoft@52.129.35.150)
2021-04-13 21:23:22 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed)
2021-04-13 21:23:47 +0200Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2021-04-13 21:23:54 +0200bitmapper(uid464869@gateway/web/irccloud.com/x-fibjwudbwypqphxb)
2021-04-13 21:24:45 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com)
2021-04-13 21:27:01 +0200Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Ping timeout: 260 seconds)
2021-04-13 21:27:12 +0200Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-04-13 21:30:51 +0200fendor_fendor
2021-04-13 21:33:03 +0200urdh(~urdh@unaffiliated/urdh)
2021-04-13 21:33:16 +0200alexm_(~alexm_@161.8.254.229)
2021-04-13 21:34:41 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2021-04-13 21:37:28 +0200kiweun(~kiweun@2607:fea8:2a62:9600:f581:26bd:b1f0:2ed5)
2021-04-13 21:37:32 +0200alexm_(~alexm_@161.8.254.229) (Ping timeout: 240 seconds)
2021-04-13 21:37:41 +0200__minoru__shirae(~shiraeesh@46.34.206.215) (Ping timeout: 240 seconds)
2021-04-13 21:37:52 +0200haskellstudent(~quassel@213-225-6-101.nat.highway.a1.net) (Ping timeout: 240 seconds)
2021-04-13 21:41:16 +0200darjeeling_(~darjeelin@122.245.120.156) (Ping timeout: 252 seconds)
2021-04-13 21:41:42 +0200darjeeling_(~darjeelin@122.245.120.156)
2021-04-13 21:41:49 +0200kiweun(~kiweun@2607:fea8:2a62:9600:f581:26bd:b1f0:2ed5) (Ping timeout: 258 seconds)
2021-04-13 21:42:21 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-04-13 21:42:56 +0200awk(~mnrmnaugh@unaffiliated/mnrmnaugh)
2021-04-13 21:45:06 +0200grimpeux(~textual@modemcable153.12-178-173.mc.videotron.ca)
2021-04-13 21:45:41 +0200mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 240 seconds)
2021-04-13 21:48:14 +0200Jello_Raptor(~Jello_Rap@li641-12.members.linode.com) (Remote host closed the connection)
2021-04-13 21:48:31 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-04-13 21:50:47 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-04-13 21:51:23 +0200Lord_of_Life_(~Lord@unaffiliated/lord-of-life/x-0885362)
2021-04-13 21:52:03 +0200grimpeux(~textual@modemcable153.12-178-173.mc.videotron.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-04-13 21:52:06 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-04-13 21:52:25 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr)
2021-04-13 21:53:51 +0200nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-04-13 21:54:04 +0200Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 252 seconds)
2021-04-13 21:54:29 +0200Lord_of_Life_Lord_of_Life
2021-04-13 21:58:45 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-13 21:59:49 +0200grimpeux(~textual@modemcable153.12-178-173.mc.videotron.ca)
2021-04-13 22:00:37 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-04-13 22:00:40 +0200nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Remote host closed the connection)
2021-04-13 22:00:51 +0200ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus) (Quit: ->)
2021-04-13 22:01:04 +0200Pickchea(~private@unaffiliated/pickchea) (Quit: Leaving)
2021-04-13 22:02:25 +0200santiacq1(~santiacq@r167-60-199-83.dialup.adsl.anteldata.net.uy)
2021-04-13 22:03:21 +0200shailangsa(~shailangs@host86-185-98-61.range86-185.btcentralplus.com) (Ping timeout: 260 seconds)
2021-04-13 22:04:06 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed)
2021-04-13 22:05:11 +0200santiacq(~santiacq@r167-60-229-44.dialup.adsl.anteldata.net.uy) (Ping timeout: 240 seconds)
2021-04-13 22:05:12 +0200petersen(~petersen@redhat/juhp) (Ping timeout: 240 seconds)
2021-04-13 22:07:38 +0200petersen(~petersen@redhat/juhp)
2021-04-13 22:07:46 +0200KeyJoo(~KeyJoo@62.176.30.171) (Ping timeout: 268 seconds)
2021-04-13 22:15:00 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-04-13 22:15:55 +0200sedeki(~textual@unaffiliated/sedeki)
2021-04-13 22:15:55 +0200xprl-gjf(~gavin@98.154.147.147.dyn.plus.net) (Ping timeout: 252 seconds)
2021-04-13 22:17:23 +0200haskellstudent(~quassel@213-225-6-101.nat.highway.a1.net)
2021-04-13 22:19:48 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-13 22:20:09 +0200DavidEichmann(~david@47.27.93.209.dyn.plus.net) (Remote host closed the connection)
2021-04-13 22:20:25 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-13 22:21:23 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-13 22:24:44 +0200__minoru__shirae(~shiraeesh@46.34.206.215)
2021-04-13 22:24:48 +0200grimpeux(~textual@modemcable153.12-178-173.mc.videotron.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-04-13 22:26:31 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2021-04-13 22:31:58 +0200grimpeux(~textual@modemcable153.12-178-173.mc.videotron.ca)
2021-04-13 22:33:20 +0200awkmnrmnaugh
2021-04-13 22:34:37 +0200alx741(~alx741@181.196.68.37) (Ping timeout: 252 seconds)
2021-04-13 22:34:55 +0200grimpeux(~textual@modemcable153.12-178-173.mc.videotron.ca) (Client Quit)
2021-04-13 22:36:16 +0200hypercube(hypercube@gateway/vpn/protonvpn/hypercube) (Ping timeout: 252 seconds)
2021-04-13 22:39:42 +0200Foritus_(~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
2021-04-13 22:39:42 +0200Foritus(~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Disconnected by services)
2021-04-13 22:39:56 +0200Foritus_Foritus
2021-04-13 22:40:03 +0200 <hololeap> is there a name for this: "if not A then B" does not imply "if A then not B"
2021-04-13 22:40:17 +0200 <hololeap> in logic
2021-04-13 22:41:07 +0200srk(~sorki@unaffiliated/srk) (Ping timeout: 260 seconds)
2021-04-13 22:41:26 +0200nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-04-13 22:42:11 +0200 <pjb> Contraposition
2021-04-13 22:42:14 +0200 <pjb> https://en.wikipedia.org/wiki/Contraposition
2021-04-13 22:42:31 +0200xff0x(~xff0x@2001:1a81:52e3:ed00:16c4:781d:2418:6176) (Ping timeout: 260 seconds)
2021-04-13 22:44:13 +0200xff0x(xff0x@gateway/vpn/mullvad/xff0x)
2021-04-13 22:44:23 +0200 <hololeap> it sounds like contraposition is: "if A then B" _does_ imply "if not A then not B"
2021-04-13 22:45:37 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2021-04-13 22:45:53 +0200 <int-e> hololeap: no, for contraposition you need to swap A and B in one of those implications
2021-04-13 22:46:03 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-04-13 22:46:19 +0200 <hololeap> i know, i'm saying what i asked for is not contraposition, but does it have a name? some fallacy name perhaps?
2021-04-13 22:47:44 +0200jakalx(~jakalx@base.jakalx.net) ("Error from remote client")
2021-04-13 22:48:03 +0200 <int-e> hololeap: I'd go with https://en.wikipedia.org/wiki/Denying_the_antecedent
2021-04-13 22:48:06 +0200grimpeux(~textual@modemcable153.12-178-173.mc.videotron.ca)
2021-04-13 22:48:32 +0200xff0x(xff0x@gateway/vpn/mullvad/xff0x) (Ping timeout: 240 seconds)
2021-04-13 22:49:09 +0200alx741(~alx741@181.196.69.92)
2021-04-13 22:50:00 +0200grimpeux(~textual@modemcable153.12-178-173.mc.videotron.ca) (Client Quit)
2021-04-13 22:50:27 +0200xff0x(~xff0x@2001:1a81:52e3:ed00:16c4:781d:2418:6176)
2021-04-13 22:51:08 +0200 <int-e> well, under most circumstances I would just say that it's illogical and not try to name it at all; it seems more useful to point out a counterexample (the implication fails if A and B both true)
2021-04-13 22:51:52 +0200 <hololeap> hm, ok. just want to throw an example out there, since i don't see exactly what i'm looking for on that page, although it might be the correct term: "if you don't do your chores, you will die" does not imply "if you do your chores, you will _not_ die"
2021-04-13 22:52:06 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-04-13 22:52:16 +0200michalz(~user@185.246.204.44) (Remote host closed the connection)
2021-04-13 22:52:25 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr)
2021-04-13 22:52:31 +0200 <hololeap> so if someone argues that the former does imply the latter, is that denying the antecedent?
2021-04-13 22:52:46 +0200amosbird(~amosbird@13.75.119.182) (Ping timeout: 260 seconds)
2021-04-13 22:53:01 +0200amosbird(~amosbird@13.75.119.182)
2021-04-13 22:53:56 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-04-13 22:56:36 +0200 <monochrom> hololeap: Under classical logic, "if not A then not B" is the same as "if B then A", and both are the converse of "if A then B".
2021-04-13 22:57:07 +0200 <monochrom> Under intuitionistic logic, I think I am not so sure which one is still the converse.
2021-04-13 22:57:16 +0200 <monochrom> (but one of them has to be)
2021-04-13 22:58:14 +0200fiedlr(~fiedlr@83.148.33.254) (Remote host closed the connection)
2021-04-13 22:58:30 +0200aerona(~aerona@2600:6c54:4600:f300:92f6:b406:86cc:ef76)
2021-04-13 22:58:33 +0200fiedlr(~fiedlr@83.148.33.254)
2021-04-13 22:58:50 +0200 <monochrom> But also, on top of classical logic, people also add a closed-world or induction meta-rule. Sometimes.
2021-04-13 23:00:11 +0200 <monochrom> So when they say "if you don't do this, you'll die", and perhaps adding a few more similar rules, they also have an implicit "these are the only ways to get you to die", like in Prolog and inductive definitions.
2021-04-13 23:00:17 +0200fiedlr(~fiedlr@83.148.33.254) (Remote host closed the connection)
2021-04-13 23:00:23 +0200alexm_(~alexm_@161.8.254.229)
2021-04-13 23:00:51 +0200 <dolio> Well, that's a good example, because you're going to die regardless.
2021-04-13 23:01:04 +0200 <monochrom> To be sure, when they decide to blackmail you with "if you don't give me $10000 I'll post your pics", yeah, after you give $10000 they will just ask for more.
2021-04-13 23:01:04 +0200 <dolio> Just a matter of when.
2021-04-13 23:01:28 +0200 <monochrom> Conclusion: Only mathematicians and blackmailers are true clasical logicians. >:)
2021-04-13 23:02:40 +0200 <juri_> monochrom: never forget the first rule of crime: never cost anyone more than it would cost to have you killed.
2021-04-13 23:03:11 +0200 <monochrom> That's also a rule of good business. >:)
2021-04-13 23:03:33 +0200dmytrish(~mitra@2a02:8084:a82:d900:f811:9873:2623:c28b)
2021-04-13 23:03:49 +0200 <juri_> the two branches are part of the same field.
2021-04-13 23:03:54 +0200 <monochrom> The authors of Freakonomics would be proud. >:)
2021-04-13 23:04:07 +0200 <koz_> Crime is just business by other means. :P
2021-04-13 23:04:52 +0200alexm_(~alexm_@161.8.254.229) (Ping timeout: 252 seconds)
2021-04-13 23:05:51 +0200 <hpc> sufficiently advanced monetization
2021-04-13 23:07:19 +0200 <juri_> insufficiently advanced monetization is called 'bitcoin'.
2021-04-13 23:07:31 +0200sedeki(~textual@unaffiliated/sedeki) (Quit: Textual IRC Client: www.textualapp.com)
2021-04-13 23:13:12 +0200hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 240 seconds)
2021-04-13 23:14:37 +0200eacameron(uid256985@gateway/web/irccloud.com/x-aldlwnzrztbxujia)
2021-04-13 23:15:36 +0200alexm_(~alexm_@161.8.254.229)
2021-04-13 23:15:51 +0200malumore_(~malumore@151.62.122.89)
2021-04-13 23:16:56 +0200LKoen_(~LKoen@65.250.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2021-04-13 23:17:13 +0200jakalx(~jakalx@base.jakalx.net)
2021-04-13 23:18:27 +0200bob_twinkles(~quassel@ec2-52-37-66-13.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2021-04-13 23:19:01 +0200malumore(~malumore@151.62.122.89) (Ping timeout: 260 seconds)
2021-04-13 23:19:49 +0200tristanC_tristanC
2021-04-13 23:20:11 +0200nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-04-13 23:20:41 +0200fendor(~fendor@91.141.2.26.wireless.dyn.drei.com) (Ping timeout: 240 seconds)
2021-04-13 23:20:44 +0200bob_twinkles(~quassel@ec2-52-37-66-13.us-west-2.compute.amazonaws.com)
2021-04-13 23:25:33 +0200alexm_(~alexm_@161.8.254.229) (Remote host closed the connection)
2021-04-13 23:27:09 +0200mikoto-chan(~anass@gateway/tor-sasl/mikoto-chan) (Ping timeout: 240 seconds)
2021-04-13 23:29:26 +0200nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-04-13 23:31:46 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 240 seconds)
2021-04-13 23:31:54 +0200fiedlr(~fiedlr@83.148.33.254)
2021-04-13 23:33:03 +0200prinned(~vivek@103.206.114.124) (Quit: WeeChat 3.1)
2021-04-13 23:33:52 +0200ubert(~Thunderbi@77.119.128.21.wireless.dyn.drei.com) (Remote host closed the connection)
2021-04-13 23:38:40 +0200kini(~kini@unaffiliated/kini) (Remote host closed the connection)
2021-04-13 23:39:58 +0200kini(~kini@unaffiliated/kini)
2021-04-13 23:41:12 +0200__minoru__shirae(~shiraeesh@46.34.206.215) (Ping timeout: 240 seconds)
2021-04-13 23:41:53 +0200fresheyeball(~isaac@c-71-237-105-37.hsd1.co.comcast.net)
2021-04-13 23:42:09 +0200 <maerwald> are mixed path separators allowed on windows, e.g. "/path/to\\file"?
2021-04-13 23:44:00 +0200stef204(~stef204@unaffiliated/stef-204/x-384198) (Quit: WeeChat 3.1)
2021-04-13 23:45:03 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-13 23:45:22 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2021-04-13 23:46:03 +0200shailangsa(~shailangs@host86-185-98-61.range86-185.btcentralplus.com)
2021-04-13 23:47:38 +0200ram19890(~ram@49.207.130.109) (Ping timeout: 240 seconds)
2021-04-13 23:51:05 +0200acidjnk_new(~acidjnk@p200300d0c72b954090611fa1f3f989eb.dip0.t-ipconnect.de)
2021-04-13 23:52:06 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-04-13 23:52:26 +0200zebrag(~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr)
2021-04-13 23:53:13 +0200nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-04-13 23:55:09 +0200p4trix(~p4trix@72.red-83-47-172.dynamicip.rima-tde.net) (Read error: Connection reset by peer)
2021-04-13 23:57:58 +0200alexm_(~alexm_@161.8.254.229)