2021/12/10

2021-12-10 00:01:41 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
2021-12-10 00:02:38 +0100 <monochrom> Bikeshedding is just a symptom. The underlying mentality is not-invented-here.
2021-12-10 00:03:16 +0100 <geekosaur> "I can do it better!" aka that xkcd
2021-12-10 00:04:15 +0100 <monochrom> Indeed, even the whole notion of "web forum" was created out of a few PHP programmers wanting an excuse to reinvent something, as opposed to, like, why not build upon NNTP.
2021-12-10 00:05:11 +0100 <monochrom> Corollary: Since they're PHP fanatics, of course they couldn't grok the tree model of a discussion thread.
2021-12-10 00:05:38 +0100 <perro> yowch
2021-12-10 00:05:42 +0100 <perro> to be fair, progress is hard
2021-12-10 00:05:46 +0100 <monochrom> It took humanity about 10 years to rediscover the fact that a thread is really a tree, i.e., until Reddit came about.
2021-12-10 00:07:49 +0100jeetelongname(~jeet@eduroam-public-20.nat.port.ac.uk)
2021-12-10 00:08:01 +0100 <monochrom> Progress is hard, but one would think that stagnation would be easier than regress.
2021-12-10 00:08:15 +0100emf(~emf@2620:10d:c091:480::1:58ea) (Ping timeout: 252 seconds)
2021-12-10 00:08:28 +0100 <geekosaur> ask Alan Cox about that one
2021-12-10 00:08:47 +0100 <perro> we're still working on really small timescales
2021-12-10 00:08:51 +0100 <geekosaur> (ex-Linux networking guru)
2021-12-10 00:11:30 +0100nebu(~user@user/wavion) (Ping timeout: 260 seconds)
2021-12-10 00:12:50 +0100doyougnu(~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 252 seconds)
2021-12-10 00:16:13 +0100Sgeo(~Sgeo@user/sgeo)
2021-12-10 00:16:30 +0100 <boxscape> <dsal> You probably have to give them really long names, though -- close enough: lambdas don't have type inference in Java, so unless you pass one as a monomorphic argument you always have to specify the type, e.g. Function<Int, Bool>, or Predicte<Int>, etc (there's not one function type like Haskell's (->), there's as many different ones as you want)
2021-12-10 00:16:54 +0100 <EvanR> wait a thread is really a tree?
2021-12-10 00:16:59 +0100 <EvanR> that sounds random
2021-12-10 00:18:07 +0100 <geekosaur> huh?
2021-12-10 00:20:52 +0100 <monochrom> I'm OK if you say "online discussion is a social construct, so it is random". >:)
2021-12-10 00:21:01 +0100user01(~aj@154.0.137.32) (Quit: Leaving.)
2021-12-10 00:21:19 +0100 <perro> is the ambiguity "thread"?
2021-12-10 00:21:26 +0100 <EvanR> oh
2021-12-10 00:21:28 +0100 <EvanR> reddit
2021-12-10 00:21:33 +0100 <EvanR> not concurrency
2021-12-10 00:21:38 +0100 <perro> ha
2021-12-10 00:22:15 +0100ilkecan[m](~ilkecanma@2001:470:69fc:105::1:79b) (Quit: Client limit exceeded: 20000)
2021-12-10 00:22:19 +0100 <monochrom> You know what, it is concurrency that causes a tree. Mutiple people reply to the same post concurrently...
2021-12-10 00:22:42 +0100 <EvanR> and when you make retroactive edits, it becomes a general graph
2021-12-10 00:24:49 +0100 <monochrom> sheafification of reddit fibre bundles
2021-12-10 00:25:47 +0100waleee(~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Quit: WeeChat 3.3)
2021-12-10 00:26:45 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-12-10 00:26:49 +0100burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk) (Remote host closed the connection)
2021-12-10 00:28:15 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-10 00:30:51 +0100nebu(~user@user/wavion)
2021-12-10 00:31:09 +0100 <geekosaur> yeh, read back a few more lines and you find "discussion thread"
2021-12-10 00:31:13 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.3)
2021-12-10 00:35:58 +0100Midjak(~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Quit: Leaving)
2021-12-10 00:41:33 +0100nebu(~user@user/wavion) (Ping timeout: 250 seconds)
2021-12-10 00:43:00 +0100nebu(~user@user/wavion)
2021-12-10 00:45:44 +0100euandreh(~euandreh@2804:14c:33:9fe5:9808:86a6:acca:9c5)
2021-12-10 00:48:26 +0100CiaoSen(~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Quit: CiaoSen)
2021-12-10 00:49:46 +0100nebu(~user@user/wavion) (Ping timeout: 260 seconds)
2021-12-10 00:49:49 +0100genieliu(~genieliu@111.193.167.10)
2021-12-10 00:51:27 +0100WilliamJ17(~WilliamJ@wireless-student-pt10-182-232.lut.ac.uk) (Quit: Client closed)
2021-12-10 00:55:57 +0100CiaoSen(~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2021-12-10 00:56:58 +0100 <dsal> EvanR: I discuss things in parallel because I type with both hands.
2021-12-10 00:57:28 +0100son0p(~ff@2800:484:1d81:b700:d40b:900:b387:320) (Ping timeout: 268 seconds)
2021-12-10 00:58:40 +0100 <monochrom> If there are two projects due, my left hand and left eye work on one, my right hand and right eye work on the other.
2021-12-10 00:59:10 +0100 <hpc> dsal: but you have 10 fingers :P
2021-12-10 00:59:30 +0100 <hpc> you could be 5 times faster
2021-12-10 00:59:37 +0100 <dsal> hpc: there's a lot of contention. Managing the mutex at that level is too hard.
2021-12-10 00:59:53 +0100 <monochrom> All 10 fingers fight for the Z key.
2021-12-10 01:00:17 +0100 <dsal> The work is parallelized, but they have to agree on timing. It's kind of a hard problem and doesn't work super reliably.
2021-12-10 01:00:26 +0100 <hpc> sometimes it's more efficient to just have one really long finger
2021-12-10 01:01:09 +0100 <hpc> https://theinfosphere.org/images/thumb/b/be/Farnsworth-finglonger1.jpg/225px-Farnsworth-finglonger…
2021-12-10 01:01:18 +0100 <dsal> My head already showed me that picture.
2021-12-10 01:01:26 +0100CiaoSen(~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-12-10 01:01:30 +0100 <monochrom> One really long finger is great for glissando on a piano :)
2021-12-10 01:01:40 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
2021-12-10 01:01:59 +0100jeetelongname(~jeet@eduroam-public-20.nat.port.ac.uk) (Remote host closed the connection)
2021-12-10 01:02:21 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-12-10 01:04:09 +0100Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
2021-12-10 01:07:11 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
2021-12-10 01:08:25 +0100genieliu(~genieliu@111.193.167.10) (Ping timeout: 250 seconds)
2021-12-10 01:11:53 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 250 seconds)
2021-12-10 01:13:13 +0100user0(~aj@154.0.137.32)
2021-12-10 01:14:20 +0100dsrt^(~dsrt@wsip-98-188-240-142.mc.at.cox.net) (Ping timeout: 265 seconds)
2021-12-10 01:18:07 +0100max22-(~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Remote host closed the connection)
2021-12-10 01:19:15 +0100Morrow(~quassel@bzq-110-168-31-106.red.bezeqint.net) (Remote host closed the connection)
2021-12-10 01:21:29 +0100burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk)
2021-12-10 01:21:51 +0100jgeerds(~jgeerds@55d4ac73.access.ecotel.net) (Ping timeout: 250 seconds)
2021-12-10 01:21:57 +0100k60``(~user@static.100.218.46.78.clients.your-server.de) (Ping timeout: 252 seconds)
2021-12-10 01:22:24 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-10 01:26:13 +0100Erutuon(~Erutuon@user/erutuon) (Ping timeout: 240 seconds)
2021-12-10 01:26:37 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 240 seconds)
2021-12-10 01:28:30 +0100Erutuon(~Erutuon@user/erutuon)
2021-12-10 01:33:08 +0100ServerStatsDisco(~serversta@2001:470:69fc:105::1a) (Quit: Client limit exceeded: 20000)
2021-12-10 01:34:23 +0100puke(~puke@user/puke) (Quit: puke)
2021-12-10 01:40:37 +0100neverfindme(~hayden@72.92.246.5)
2021-12-10 01:41:09 +0100Pickchea(~private@user/pickchea) (Ping timeout: 250 seconds)
2021-12-10 01:41:34 +0100vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2021-12-10 01:45:37 +0100mvk(~mvk@2607:fea8:5cdd:f000::9788)
2021-12-10 01:47:55 +0100puke(~puke@user/puke)
2021-12-10 01:49:06 +0100 <dsal> Kind of annoyed that moving this code into a different module has such a large impact on performance. I need fancier whole program optimization.
2021-12-10 01:49:20 +0100ServerStatsDisco(~serversta@2001:470:69fc:105::1a)
2021-12-10 01:49:50 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 01:56:05 +0100acidjnk_new(~acidjnk@pd9e0bdc0.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2021-12-10 01:56:07 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) (Remote host closed the connection)
2021-12-10 01:58:13 +0100dsrt^(~dsrt@wsip-98-188-240-142.mc.at.cox.net)
2021-12-10 01:58:17 +0100k60``(~user@static.100.218.46.78.clients.your-server.de)
2021-12-10 01:59:18 +0100 <int-e> . o O ( if you want performance you have to get inline )
2021-12-10 01:59:34 +0100 <int-e> bad pun, but also kind of true, sadly
2021-12-10 02:00:42 +0100k60``(~user@static.100.218.46.78.clients.your-server.de) (Remote host closed the connection)
2021-12-10 02:02:22 +0100 <dsal> I've found just moving a bit of code into a function has had quite noticeable impact even in the same module regardless of how hard I tell it to inline. I'm guessing it didn't notice it could fuse.
2021-12-10 02:04:51 +0100pfurla(~pfurla@2804:14d:5c81:4104:25b5:2708:65a9:4e7d) (Quit: gone to sleep. ZZZzzz…)
2021-12-10 02:06:42 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3)
2021-12-10 02:06:43 +0100 <johnw> dsal: https://hackage.haskell.org/package/inspection-testing is a nice way to defend against that kind of performance regression
2021-12-10 02:07:27 +0100pfurla(~pfurla@201.17.118.230)
2021-12-10 02:08:09 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-12-10 02:08:09 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-12-10 02:08:09 +0100wroathe(~wroathe@user/wroathe)
2021-12-10 02:08:12 +0100 <dsal> Oh neat.
2021-12-10 02:08:44 +0100 <dsal> I think this was a case where it could actually do the right thing, but wasn't because of what I thought might be a tiny difference that ended up being some unexpected overhead.
2021-12-10 02:09:02 +0100 <dsal> Basically, I made my `Thing` a `Thing a` with a conversion function attached and that had a huge impact.
2021-12-10 02:09:14 +0100 <johnw> yes, things like creating a non-saturated function have ruined my day in a similar way before
2021-12-10 02:11:05 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 252 seconds)
2021-12-10 02:12:55 +0100mvk(~mvk@2607:fea8:5cdd:f000::9788) (Ping timeout: 252 seconds)
2021-12-10 02:13:40 +0100Guest66(~textual@98.13.6.21)
2021-12-10 02:15:40 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26)
2021-12-10 02:18:39 +0100neverfindme(~hayden@72.92.246.5) (Quit: Leaving)
2021-12-10 02:22:25 +0100doyougnu(~doyougnu@c-73-25-202-122.hsd1.or.comcast.net)
2021-12-10 02:28:35 +0100InternetCitizen(~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 250 seconds)
2021-12-10 02:33:02 +0100jkaye(~jkaye@2601:281:8300:7530:1cce:ad41:7c5b:4355)
2021-12-10 02:33:08 +0100InternetCitizen(~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
2021-12-10 02:35:04 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) (Remote host closed the connection)
2021-12-10 02:37:05 +0100Morrow(~quassel@bzq-110-168-31-106.red.bezeqint.net)
2021-12-10 02:44:08 +0100retroid_(~retro@05412d78.skybroadband.com) (Ping timeout: 268 seconds)
2021-12-10 02:45:34 +0100xkuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2021-12-10 02:48:47 +0100user0(~aj@154.0.137.32) (Quit: Leaving.)
2021-12-10 02:49:36 +0100user0(~aj@154.0.137.32)
2021-12-10 02:51:08 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26)
2021-12-10 02:51:36 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 02:51:37 +0100user0(~aj@154.0.137.32) (Client Quit)
2021-12-10 02:53:32 +0100bitmapper(uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-10 02:55:50 +0100bollu(uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-10 02:58:09 +0100k60``(~user@static.100.218.46.78.clients.your-server.de)
2021-12-10 02:59:00 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-10 03:01:15 +0100user0(~aj@154.0.137.32)
2021-12-10 03:01:28 +0100mvk(~mvk@2607:fea8:5cdd:f000::9788)
2021-12-10 03:02:59 +0100user0(~aj@154.0.137.32) (Client Quit)
2021-12-10 03:08:00 +0100burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk) (Remote host closed the connection)
2021-12-10 03:09:00 +0100hololeap(~hololeap@user/hololeap) (Ping timeout: 276 seconds)
2021-12-10 03:11:29 +0100xff0x(~xff0x@2001:1a81:5338:9c00:9209:5fa4:fe4c:a1bd) (Ping timeout: 250 seconds)
2021-12-10 03:13:16 +0100xff0x(~xff0x@2001:1a81:537e:3f00:97ca:7ac8:9d9f:cfb2)
2021-12-10 03:14:22 +0100k60```(~user@94.25.169.9)
2021-12-10 03:14:54 +0100InternetCitizen(~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 260 seconds)
2021-12-10 03:16:32 +0100k60``(~user@static.100.218.46.78.clients.your-server.de) (Ping timeout: 256 seconds)
2021-12-10 03:22:09 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 03:23:37 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 250 seconds)
2021-12-10 03:26:44 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2021-12-10 03:32:13 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 240 seconds)
2021-12-10 03:32:14 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-12-10 03:32:14 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-12-10 03:32:14 +0100wroathe(~wroathe@user/wroathe)
2021-12-10 03:32:49 +0100genieliu(~genieliu@103.37.140.38)
2021-12-10 03:33:32 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-10 03:43:02 +0100ubert1(~Thunderbi@p200300ecdf0ba2c03cbcafca2ab2631d.dip0.t-ipconnect.de)
2021-12-10 03:44:34 +0100ubert(~Thunderbi@p200300ecdf0ba2f664fe176011d10d59.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2021-12-10 03:44:34 +0100ubert1ubert
2021-12-10 03:45:12 +0100emf(~emf@2603-6080-9403-11bf-0000-0000-0000-0007.res6.spectrum.com)
2021-12-10 03:46:42 +0100ub1(~Thunderbi@p200300ecdf0ba2c0b11d357caa48ef17.dip0.t-ipconnect.de)
2021-12-10 03:48:16 +0100ub(~Thunderbi@p200300ecdf0ba2f69d45b59a7f50dcfc.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2021-12-10 03:48:59 +0100ub1ub
2021-12-10 03:49:01 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 240 seconds)
2021-12-10 03:54:11 +0100alex[m]1(~alexchete@2001:470:69fc:105::1:1001)
2021-12-10 03:54:11 +0100ManofLetters[m](~manoflett@2001:470:69fc:105::3be)
2021-12-10 03:54:23 +0100fendor[m](~fendormat@2001:470:69fc:105::fcbd)
2021-12-10 03:54:23 +0100DemiMarieObenour(~alwayscur@2001:470:69fc:105::4886)
2021-12-10 03:54:37 +0100ilkecan[m](~ilkecanma@2001:470:69fc:105::1:79b)
2021-12-10 03:54:49 +0100maerwald[m](~maerwaldm@2001:470:69fc:105::1ee)
2021-12-10 03:54:49 +0100jinsun_(~jinsun@user/jinsun)
2021-12-10 03:54:49 +0100surgeon[m](~surge9nma@2001:470:69fc:105::f585)
2021-12-10 03:54:49 +0100tomku[m](~tomkumozi@2001:470:69fc:105::1:2fcb)
2021-12-10 03:55:04 +0100fcortesi(~fcortesi@2001:470:69fc:105::f3a9)
2021-12-10 03:55:04 +0100utk(~utk@2001:470:69fc:105::1:2fe0)
2021-12-10 03:57:23 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 03:57:39 +0100xff0x(~xff0x@2001:1a81:537e:3f00:97ca:7ac8:9d9f:cfb2) (Ping timeout: 250 seconds)
2021-12-10 03:58:28 +0100xff0x(~xff0x@2001:1a81:537e:3f00:d6d6:fa6f:b314:a474)
2021-12-10 04:01:52 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2021-12-10 04:02:10 +0100emf(~emf@2603-6080-9403-11bf-0000-0000-0000-0007.res6.spectrum.com) (Quit: emf)
2021-12-10 04:02:50 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95)
2021-12-10 04:02:55 +0100jkaye(~jkaye@2601:281:8300:7530:1cce:ad41:7c5b:4355) (Ping timeout: 252 seconds)
2021-12-10 04:03:08 +0100emf(~emf@2603-6080-9403-11bf-0000-0000-0000-0007.res6.spectrum.com)
2021-12-10 04:08:27 +0100jeetelongname(~jeet@eduroam-public-20.nat.port.ac.uk)
2021-12-10 04:09:45 +0100std_mutex[m](~stdmutexm@2001:470:69fc:105::1:4534) (Quit: Client limit exceeded: 20000)
2021-12-10 04:10:03 +0100 <jackdk> in 2017, ocharles wrote an article that can be summarised as "here's a recipe to make MonadFoo classes that are usable by both mtl and effect systems, by making a class whose only method is a `liftFoo :: Free (Coyoneda SomeGADTOfOperations) a -> m a`: https://blog.ocharles.org.uk/posts/2017-08-23-extensible-effects-and-transformers.html
2021-12-10 04:10:15 +0100std_mutex[m](~stdmutexm@2001:470:69fc:105::1:4534)
2021-12-10 04:10:43 +0100nunggu(~q@gateway/tor-sasl/nunggu) (Quit: nunggu)
2021-12-10 04:12:05 +0100 <jackdk> I'm trying to extend it to support things like `local`, in that I have constructors of the GADT like `Reconfigure :: Foo -> MyGADT a -> MyGADT a`. But then the straightfoward lifting goes away, because you want to expose operations like `reconfigure :: MonadFoo m => Foo -> m a -> m a`, at which point I get stuck on that `m a` in negative position. Has anyone here successfully extended this technique in this way?
2021-12-10 04:15:07 +0100pfurla(~pfurla@201.17.118.230) (Quit: gone to sleep. ZZZzzz…)
2021-12-10 04:16:47 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2021-12-10 04:16:47 +0100finn_elija(~finn_elij@user/finn-elija/x-0085643)
2021-12-10 04:16:47 +0100finn_elijaFinnElija
2021-12-10 04:18:18 +0100nfd(~nfd@user/nfd) (Ping timeout: 256 seconds)
2021-12-10 04:18:27 +0100emf(~emf@2603-6080-9403-11bf-0000-0000-0000-0007.res6.spectrum.com) (Quit: emf)
2021-12-10 04:20:14 +0100k60```(~user@94.25.169.9) (Ping timeout: 260 seconds)
2021-12-10 04:20:29 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2021-12-10 04:21:26 +0100 <jackdk> I could change the GADT constructor to be `Reconfigure :: MonadFoo m => Foo -> m a -> MyGADT a` but I suspect that's gonna play poorly at the use site.
2021-12-10 04:30:13 +0100td_(~td@muedsl-82-207-238-085.citykom.de) (Ping timeout: 240 seconds)
2021-12-10 04:32:03 +0100td_(~td@94.134.91.156)
2021-12-10 04:34:15 +0100justsomeguy(~justsomeg@user/justsomeguy)
2021-12-10 04:35:11 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 252 seconds)
2021-12-10 04:38:06 +0100Kevin578(~Kevin578@pool-96-237-112-198.bstnma.fios.verizon.net) (Read error: Connection reset by peer)
2021-12-10 04:39:20 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2021-12-10 04:42:10 +0100doyougnu(~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 260 seconds)
2021-12-10 04:42:58 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
2021-12-10 04:44:12 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1)
2021-12-10 04:48:41 +0100kimjetwav(~user@2607:fea8:2363:8f00:5d2f:a515:1834:3924)
2021-12-10 04:51:44 +0100k60```(~user@94.25.169.9)
2021-12-10 04:52:52 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2021-12-10 04:54:49 +0100nfd(~nfd@user/nfd)
2021-12-10 04:59:29 +0100 <jackdk> yeah this is bad - if i put an `m a` into the GADT like that I can't prove that it's the same `m` that I want to interpret into
2021-12-10 05:02:30 +0100k60```(~user@94.25.169.9) (Ping timeout: 256 seconds)
2021-12-10 05:04:24 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-12-10 05:04:24 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-12-10 05:04:24 +0100wroathe(~wroathe@user/wroathe)
2021-12-10 05:07:30 +0100shriekingnoise(~shrieking@186.137.144.80) (Quit: Quit)
2021-12-10 05:07:39 +0100 <Axman6> isn;t this one of the reasons why effects in polysemy are also passed the effects it's running with? (being very loose with my language, I'm sure)
2021-12-10 05:09:18 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2021-12-10 05:10:25 +0100 <jackdk> I expect so, because this is a "bracket-ish" operation. spoiler: since AWST is a clumsy monad transformer and rightfully departing in amazonka-2.0, I'm trying to build a replacement internally that I will opensource once it's proven. I'm digging around to see if I can make something that's a good base for both mtl and effect systems in the ocharles style, but it isn't looking good so far
2021-12-10 05:13:30 +0100 <jackdk> I suppose you can implement things like `within :: MonadAmazonka m => Region -> m a -> m a` outside of the GADT by (in MTL) using `local` since you know you have a reader inside your `AmazonkaT`, but the best I can think of in `freer-simple` is to interpret the stuff you want to run in some other region separately, which feels pretty awkward
2021-12-10 05:16:27 +0100Topsi(~Tobias@dyndsl-095-033-020-172.ewe-ip-backbone.de)
2021-12-10 05:17:10 +0100 <jackdk> Axman6: I particularly welcome your thoughts since I know you used to do a bunch of amazonkoid stuff
2021-12-10 05:18:27 +0100dsrt^(~dsrt@wsip-98-188-240-142.mc.at.cox.net) (Ping timeout: 250 seconds)
2021-12-10 05:18:34 +0100genieliu(~genieliu@103.37.140.38) (Ping timeout: 260 seconds)
2021-12-10 05:19:01 +0100zebrag(~chris@user/zebrag) (Ping timeout: 240 seconds)
2021-12-10 05:19:54 +0100zebrag(~chris@user/zebrag)
2021-12-10 05:21:18 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-10 05:27:06 +0100 <Axman6> it feels like the missing thing is some constraint that you have some reader/state which you can change the Region in, but I have no idea how to fix that
2021-12-10 05:29:38 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-10 05:30:32 +0100jeetelongname(~jeet@eduroam-public-20.nat.port.ac.uk) (Ping timeout: 240 seconds)
2021-12-10 05:31:04 +0100 <Axman6> can liftWithin :: Region -> Free (Coyodneda Foo) a -> m a also be a part of the interface?
2021-12-10 05:31:48 +0100 <Axman6> feels like a bad hack
2021-12-10 05:32:50 +0100 <Axman6> something like liftLocal :: (Env -> Env) -> Free (Coyodneda Foo) a -> m a might be useful I guess
2021-12-10 05:33:44 +0100justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 268 seconds)
2021-12-10 05:34:09 +0100k60```(~user@94.25.169.9)
2021-12-10 05:35:49 +0100 <jackdk> yeah because I don't want to tie myself to amazonka's Env at the abstract GADT definition stage
2021-12-10 05:36:19 +0100 <jackdk> I considered storing Free (Coyo Foo) a in the GADT but then you can do Amazonka operations AND NOTHING ELSE
2021-12-10 05:36:41 +0100 <Axman6> having m a -> m a feels wrong to me, since this only applies to your Free thing
2021-12-10 05:37:20 +0100 <Axman6> feels like reading isovector's posts on the design of polysemy might be useful, even if it doesn't contain the answer
2021-12-10 05:38:13 +0100 <jackdk> indeed. similar problem if you try a higher rank type: `Within :: Region -> (forall m . MonadFoo m => m a) -> Foo a` lets us choose what `m` is, but at the cost of telling library clients they can't do anything inside that region which isn't only a MonadFoo
2021-12-10 05:39:06 +0100k60```(~user@94.25.169.9) (Ping timeout: 260 seconds)
2021-12-10 05:39:15 +0100Codaraxis(~Codaraxis@user/codaraxis)
2021-12-10 05:41:00 +0100 <jackdk> I've read some of isovector's writing, and it seems like there are only a few contenders: freer-simple if you don't want too much galaxybrain, polysemy if you're willing to use GHC plugins and go all in on galactic haskell, fused-effects if you really really want performance, and eff might be a thing later when the delimited continuation primops appear in widely-used GHCs
2021-12-10 05:41:36 +0100 <jackdk> and not many of them let you write `bracket`-ish things
2021-12-10 05:42:00 +0100 <jackdk> so I'm thinking I may as well abandon this, just write a really good MTL-style lib for now, and let the effects world catch up?
2021-12-10 05:42:59 +0100xff0x(~xff0x@2001:1a81:537e:3f00:d6d6:fa6f:b314:a474) (Ping timeout: 268 seconds)
2021-12-10 05:43:42 +0100xff0x(~xff0x@2001:1a81:537e:3f00:9578:51b0:7e3f:b293)
2021-12-10 05:47:03 +0100genieliu(~genieliu@103.37.140.38)
2021-12-10 05:48:33 +0100Codaraxis_(~Codaraxis@user/codaraxis)
2021-12-10 05:48:55 +0100user0(~aj@154.0.137.32)
2021-12-10 05:51:11 +0100Codaraxis(~Codaraxis@user/codaraxis) (Ping timeout: 250 seconds)
2021-12-10 05:51:24 +0100Codaraxis_(~Codaraxis@user/codaraxis) (Remote host closed the connection)
2021-12-10 05:51:49 +0100Codaraxis_(~Codaraxis@user/codaraxis)
2021-12-10 05:55:26 +0100dsrt^(~dsrt@wsip-98-188-240-142.mc.at.cox.net)
2021-12-10 05:55:52 +0100Axma33016(~Axman6@user/axman6)
2021-12-10 05:58:02 +0100Axman6(~Axman6@user/axman6) (Ping timeout: 260 seconds)
2021-12-10 06:01:32 +0100user01(~aj@154.0.137.32)
2021-12-10 06:01:43 +0100user0(~aj@154.0.137.32) (Ping timeout: 252 seconds)
2021-12-10 06:02:20 +0100 <user01> tesr
2021-12-10 06:03:37 +0100 <jackdk> received user01
2021-12-10 06:03:55 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-10 06:08:12 +0100fryguybob(~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) (Remote host closed the connection)
2021-12-10 06:08:36 +0100zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2021-12-10 06:11:28 +0100awjchen(~awjchen@node-1w7jr9y54rj7c0bzal2n5rlib.ipv6.telus.net)
2021-12-10 06:13:02 +0100xff0x(~xff0x@2001:1a81:537e:3f00:9578:51b0:7e3f:b293) (Ping timeout: 240 seconds)
2021-12-10 06:13:12 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 268 seconds)
2021-12-10 06:13:53 +0100xff0x(~xff0x@2001:1a81:537e:3f00:d5b4:3c9d:ec95:16b3)
2021-12-10 06:17:54 +0100Axma33016Axman6
2021-12-10 06:18:26 +0100dsrt^(~dsrt@wsip-98-188-240-142.mc.at.cox.net) (Ping timeout: 256 seconds)
2021-12-10 06:27:00 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95)
2021-12-10 06:28:00 +0100hgolden(~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (Quit: Konversation terminated!)
2021-12-10 06:29:52 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 06:29:57 +0100genieliu(~genieliu@103.37.140.38) (Ping timeout: 252 seconds)
2021-12-10 06:30:55 +0100hgolden(~hgolden2@cpe-172-114-81-123.socal.res.rr.com)
2021-12-10 06:30:56 +0100Topsi1(~Tobias@dyndsl-095-033-094-234.ewe-ip-backbone.de)
2021-12-10 06:31:25 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 252 seconds)
2021-12-10 06:31:25 +0100Topsi(~Tobias@dyndsl-095-033-020-172.ewe-ip-backbone.de) (Ping timeout: 252 seconds)
2021-12-10 06:34:21 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-12-10 06:37:49 +0100shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2021-12-10 06:39:27 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-12-10 06:39:54 +0100kimjetwav(~user@2607:fea8:2363:8f00:5d2f:a515:1834:3924) (Remote host closed the connection)
2021-12-10 06:40:15 +0100kimjetwav(~user@2607:fea8:2363:8f00:b66e:c3b4:4ab3:f161)
2021-12-10 06:45:13 +0100awjchen(~awjchen@node-1w7jr9y54rj7c0bzal2n5rlib.ipv6.telus.net) ()
2021-12-10 06:45:28 +0100 <Axman6> Sadly, there was no SYN
2021-12-10 06:46:50 +0100ddb(~ddb@ipv6two.tilde.club) (Quit: WeeChat 3.3)
2021-12-10 06:53:52 +0100deadmarshal(~deadmarsh@95.38.116.82)
2021-12-10 06:58:43 +0100genieliu(~genieliu@103.37.140.38)
2021-12-10 06:59:00 +0100 <jackdk> you mean ACK
2021-12-10 07:00:18 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95)
2021-12-10 07:00:44 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2021-12-10 07:01:33 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2021-12-10 07:03:55 +0100mikoto-chan(~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Quit: mikoto-chan)
2021-12-10 07:05:17 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 250 seconds)
2021-12-10 07:07:27 +0100 <Axman6> Nah, you SYNACK'd
2021-12-10 07:07:37 +0100 <Axman6> uh, right, yes
2021-12-10 07:07:51 +0100 <Axman6> no wonder all my TCP connections were going backwards
2021-12-10 07:08:18 +0100 <Axman6> I guess we live in a world where we do not ACK our SYNs
2021-12-10 07:09:04 +0100 <int-e> RST RST RST
2021-12-10 07:09:40 +0100retroid_(~retro@05412d78.skybroadband.com)
2021-12-10 07:15:00 +0100Codaraxis(~Codaraxis@user/codaraxis)
2021-12-10 07:15:24 +0100 <int-e> > unwords $ map (\x -> printf "%.2f" (190 - x/20)) [3738,3728,3693,3672,3602,3581,3580,3576,3546,3539]
2021-12-10 07:15:26 +0100 <lambdabot> "3.10 3.60 5.35 6.40 9.90 10.95 11.00 11.20 12.70 13.05"
2021-12-10 07:17:05 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 07:17:11 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95)
2021-12-10 07:17:22 +0100Codaraxis_(~Codaraxis@user/codaraxis) (Ping timeout: 256 seconds)
2021-12-10 07:21:39 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 268 seconds)
2021-12-10 07:21:49 +0100Techcable(~Techcable@168.235.93.147) (Ping timeout: 240 seconds)
2021-12-10 07:22:02 +0100 <xerox> when cyphase decided do it I did end up off the list but there am I back again in the int-e official scoring :D
2021-12-10 07:22:12 +0100slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-12-10 07:24:02 +0100 <cyphase> \o/
2021-12-10 07:24:20 +0100 <cyphase> had to get it in before 24hrs had passed at least
2021-12-10 07:26:59 +0100 <int-e> xerox: Heh, I don't make the order though.
2021-12-10 07:28:29 +0100chomwitt(~chomwitt@2a02:587:dc0d:3700:12c3:7bff:fe6d:d374)
2021-12-10 07:29:42 +0100deadmarshal(~deadmarsh@95.38.116.82) (Ping timeout: 260 seconds)
2021-12-10 07:31:55 +0100 <xerox> int-e: anything fun from your take on it today?
2021-12-10 07:33:46 +0100 <int-e> too much cut&paste
2021-12-10 07:34:10 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95)
2021-12-10 07:34:51 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 252 seconds)
2021-12-10 07:36:26 +0100k60```(~user@94.25.169.9)
2021-12-10 07:38:54 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 268 seconds)
2021-12-10 07:41:22 +0100k60```(~user@94.25.169.9) (Ping timeout: 268 seconds)
2021-12-10 07:43:37 +0100genieliu(~genieliu@103.37.140.38) (Ping timeout: 250 seconds)
2021-12-10 07:43:50 +0100hololeap(~hololeap@user/hololeap)
2021-12-10 07:46:46 +0100hololeap(~hololeap@user/hololeap) (Remote host closed the connection)
2021-12-10 07:48:06 +0100hololeap(~hololeap@user/hololeap)
2021-12-10 07:54:12 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
2021-12-10 07:55:30 +0100genieliu(~genieliu@103.37.140.24)
2021-12-10 07:57:54 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-12-10 08:00:15 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-10 08:02:36 +0100deadmarshal(~deadmarsh@95.38.116.82)
2021-12-10 08:05:22 +0100michalz(~michalz@185.246.204.61)
2021-12-10 08:05:26 +0100genieliu(~genieliu@103.37.140.24) (Ping timeout: 268 seconds)
2021-12-10 08:06:18 +0100curiousgay(~curiousga@77-120-141-90.kha.volia.net)
2021-12-10 08:07:02 +0100deadmarshal(~deadmarsh@95.38.116.82) (Ping timeout: 260 seconds)
2021-12-10 08:08:49 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95)
2021-12-10 08:09:01 +0100dwt_(~dwt_@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 240 seconds)
2021-12-10 08:09:33 +0100genieliu(~genieliu@103.37.140.38)
2021-12-10 08:09:50 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-12-10 08:10:49 +0100deadmarshal(~deadmarsh@95.38.116.82)
2021-12-10 08:14:05 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 252 seconds)
2021-12-10 08:19:36 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 268 seconds)
2021-12-10 08:27:08 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95)
2021-12-10 08:29:30 +0100pfurla(~pfurla@2804:14d:5c81:4104:25b5:2708:65a9:4e7d)
2021-12-10 08:31:31 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 250 seconds)
2021-12-10 08:32:02 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2021-12-10 08:32:17 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2021-12-10 08:33:05 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:9c45:ef7f:f3cf:1dd6)
2021-12-10 08:33:47 +0100dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2021-12-10 08:34:15 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-10 08:34:45 +0100hololeap(~hololeap@user/hololeap) (Remote host closed the connection)
2021-12-10 08:36:04 +0100hololeap(~hololeap@user/hololeap)
2021-12-10 08:38:11 +0100hololeap(~hololeap@user/hololeap) (Client Quit)
2021-12-10 08:38:26 +0100hololeap(~hololeap@user/hololeap)
2021-12-10 08:39:59 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-10 08:41:37 +0100waleee(~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4)
2021-12-10 08:41:51 +0100mncheck(~mncheck@193.224.205.254)
2021-12-10 08:42:18 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-10 08:42:39 +0100bollu(uid233390@id-233390.helmsley.irccloud.com)
2021-12-10 08:43:24 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-12-10 08:43:43 +0100featurebug(~Username@49.205.122.91)
2021-12-10 08:44:42 +0100jakalx(~jakalx@base.jakalx.net) ()
2021-12-10 08:44:50 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 260 seconds)
2021-12-10 08:51:24 +0100gehmehgeh(~user@user/gehmehgeh)
2021-12-10 08:56:03 +0100x88x88x(~x88x88x@149.28.53.172) (Remote host closed the connection)
2021-12-10 08:56:21 +0100kennyd(~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Session timeout))
2021-12-10 08:58:05 +0100mvk(~mvk@2607:fea8:5cdd:f000::9788) (Ping timeout: 252 seconds)
2021-12-10 08:58:37 +0100x88x88x(~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb)
2021-12-10 09:00:21 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) (Remote host closed the connection)
2021-12-10 09:00:45 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95)
2021-12-10 09:01:59 +0100featurebug(~Username@49.205.122.91) (Quit: Going offline, see ya! (www.adiirc.com))
2021-12-10 09:02:59 +0100curiousgay(~curiousga@77-120-141-90.kha.volia.net) (Quit: Leaving)
2021-12-10 09:03:15 +0100hololeap(~hololeap@user/hololeap) (Ping timeout: 276 seconds)
2021-12-10 09:05:52 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 268 seconds)
2021-12-10 09:05:55 +0100x88x88x(~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb) (Remote host closed the connection)
2021-12-10 09:06:06 +0100vpan(~0@212.117.1.172)
2021-12-10 09:07:03 +0100user01(~aj@154.0.137.32) ()
2021-12-10 09:10:37 +0100x88x88x(~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb)
2021-12-10 09:14:17 +0100jakalx(~jakalx@base.jakalx.net)
2021-12-10 09:18:17 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95)
2021-12-10 09:22:51 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 250 seconds)
2021-12-10 09:23:23 +0100Techcable(~Techcable@168.235.93.147)
2021-12-10 09:23:44 +0100dwt_(~dwt_@c-98-198-103-176.hsd1.tx.comcast.net)
2021-12-10 09:25:04 +0100chele(~chele@user/chele)
2021-12-10 09:27:16 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-12-10 09:28:01 +0100Pickchea(~private@user/pickchea)
2021-12-10 09:36:10 +0100deadmarshal(~deadmarsh@95.38.116.82) (Ping timeout: 260 seconds)
2021-12-10 09:41:21 +0100deadmarshal(~deadmarsh@95.38.116.82)
2021-12-10 09:44:23 +0100max22-(~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
2021-12-10 09:44:52 +0100notzmv(~zmv@user/notzmv)
2021-12-10 09:51:44 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95)
2021-12-10 09:55:35 +0100acidjnk_new(~acidjnk@p200300d0c7271e96496b0bacdae081f8.dip0.t-ipconnect.de)
2021-12-10 09:56:42 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 260 seconds)
2021-12-10 09:59:05 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-12-10 10:00:05 +0100cfricke(~cfricke@user/cfricke)
2021-12-10 10:00:20 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-12-10 10:00:46 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26)
2021-12-10 10:01:09 +0100k60```(~user@94.25.169.9)
2021-12-10 10:06:12 +0100 <aplainzetakind> How do I silence a warning at a particular location in code?
2021-12-10 10:06:17 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) (Ping timeout: 252 seconds)
2021-12-10 10:06:28 +0100 <dminuoso> You cant.
2021-12-10 10:06:36 +0100 <aplainzetakind> :(
2021-12-10 10:06:46 +0100 <dminuoso> best you can do is set {-# OPTIONS_GHC -fno-warn-foo #-} module wide
2021-12-10 10:06:50 +0100 <dminuoso> Or via .cabal file
2021-12-10 10:07:17 +0100 <dminuoso> There was an issue about it in GHC about 10 years ago that was bikeshedded fairly quickly
2021-12-10 10:08:10 +0100 <aplainzetakind> OPTIONS_GHC will do then.
2021-12-10 10:08:11 +0100 <aplainzetakind> Thanks.
2021-12-10 10:08:31 +0100 <aplainzetakind> And incomplete-patterns misfires sometimes right?
2021-12-10 10:09:00 +0100 <dminuoso> aplainzetakind: With lower your guards it have substantially smaller false negatives
2021-12-10 10:09:12 +0100 <dminuoso> So it depends a bit on your GHC version
2021-12-10 10:09:25 +0100 <dminuoso> If you're still running on relatively old versions, you dont have LYG implemented yet.
2021-12-10 10:09:49 +0100 <dminuoso> And back then, the incomplete patterns was horribly broken - few things have produced as many bug reports as that.
2021-12-10 10:10:09 +0100 <aplainzetakind> I'm on 8.10
2021-12-10 10:10:28 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95)
2021-12-10 10:10:30 +0100 <dminuoso> It was a gradual process, I think you'll have to ask the GHC folks how far it was in 8.10
2021-12-10 10:10:47 +0100 <dminuoso> If memory serves right, it's largely implemented in 9.x
2021-12-10 10:10:59 +0100 <aplainzetakind> OK then. I'll shut it up too.
2021-12-10 10:17:34 +0100allbery_b(~geekosaur@xmonad/geekosaur)
2021-12-10 10:17:34 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-12-10 10:17:37 +0100allbery_bgeekosaur
2021-12-10 10:19:15 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 268 seconds)
2021-12-10 10:23:55 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-12-10 10:29:22 +0100genieliu(~genieliu@103.37.140.38) (Ping timeout: 260 seconds)
2021-12-10 10:32:57 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95)
2021-12-10 10:34:03 +0100genieliu(~genieliu@103.37.140.24)
2021-12-10 10:35:03 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-12-10 10:36:42 +0100mstruebing(~maex@2001:41d0:8:93c7::1) (Read error: Connection reset by peer)
2021-12-10 10:37:32 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 240 seconds)
2021-12-10 10:38:03 +0100deadmarshal(~deadmarsh@95.38.116.82) (Ping timeout: 250 seconds)
2021-12-10 10:38:37 +0100vgtw(~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se) (Ping timeout: 240 seconds)
2021-12-10 10:42:54 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 260 seconds)
2021-12-10 10:43:33 +0100deadmarshal(~deadmarsh@95.38.116.82)
2021-12-10 10:47:47 +0100deadmarshal(~deadmarsh@95.38.116.82) (Ping timeout: 250 seconds)
2021-12-10 10:48:18 +0100teo(~teo@user/teo)
2021-12-10 10:48:37 +0100CiaoSen(~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2021-12-10 10:49:09 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95)
2021-12-10 10:49:58 +0100vgtw(~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se)
2021-12-10 10:53:01 +0100ptrcmd(~ptrcmd@user/ptrcmd) (Remote host closed the connection)
2021-12-10 10:54:23 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 268 seconds)
2021-12-10 11:00:29 +0100son0p(~ff@2800:484:1d81:b700:d40b:900:b387:320)
2021-12-10 11:02:51 +0100deadmarshal(~deadmarsh@95.38.116.82)
2021-12-10 11:04:45 +0100cosimone(~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3)
2021-12-10 11:05:16 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95)
2021-12-10 11:05:50 +0100puke(~puke@user/puke) (Read error: Connection reset by peer)
2021-12-10 11:06:04 +0100puke(~puke@user/puke)
2021-12-10 11:06:25 +0100k60```(~user@94.25.169.9) (Ping timeout: 250 seconds)
2021-12-10 11:07:01 +0100 <dminuoso> Mmm, is there a combinator like `IO a -> (a -> IO b) -> (SomeException -> IO b) -> IO b` in base that Im not seeing?
2021-12-10 11:08:09 +0100 <merijn> catch? :p
2021-12-10 11:08:12 +0100 <merijn> :t catch
2021-12-10 11:08:13 +0100 <lambdabot> Exception e => IO a -> (e -> IO a) -> IO a
2021-12-10 11:08:21 +0100 <merijn> I mean, you need 1 extra step
2021-12-10 11:08:30 +0100 <merijn> But that seems fairbairn threshold-y :p
2021-12-10 11:09:00 +0100 <dminuoso> Mmm
2021-12-10 11:09:43 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 252 seconds)
2021-12-10 11:10:27 +0100 <dminuoso> I mean I know I can do `f a h e = fmap (either id id) $ (Left <$> a) `catch` (fmap Right . h)
2021-12-10 11:10:30 +0100 <dminuoso> Or some such
2021-12-10 11:10:39 +0100 <dminuoso> merijn: Is it, really?
2021-12-10 11:10:50 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds)
2021-12-10 11:11:14 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-12-10 11:11:50 +0100 <dminuoso> The naive attempt at doing `f =<< x `catch` f` is not the same.
2021-12-10 11:12:11 +0100 <dminuoso> I want to catch an exception on `x`, but on if it comes from `f`, and then simply *not* proceed.
2021-12-10 11:12:23 +0100 <dminuoso> The IO exception version of `maybe`, if you want
2021-12-10 11:12:34 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2021-12-10 11:12:40 +0100 <merijn> only if it comes from 'f'?
2021-12-10 11:12:52 +0100 <dminuoso> Sorry, not if it comes from `f`
2021-12-10 11:13:15 +0100 <merijn> I mean... "\x f h -> (x `catch` h) >>= f"?
2021-12-10 11:13:27 +0100 <dminuoso> merijn: Yeah still not the same.
2021-12-10 11:13:32 +0100 <merijn> oh, wait, yeah
2021-12-10 11:13:42 +0100 <int-e> ((Left <$> a) `catch` (fmap Right . e)) >>= either h pure
2021-12-10 11:13:45 +0100 <dminuoso> You have to do the above and fiddle an Either through
2021-12-10 11:13:47 +0100 <dminuoso> yeah
2021-12-10 11:14:11 +0100 <dminuoso> Naively it seems this would be a very useful or desirable thing
2021-12-10 11:14:37 +0100 <int-e> so yeah, icky enough to warrant a definition... but maybe too specialized to warrant inclusion in base
2021-12-10 11:15:13 +0100 <int-e> (I realize it's perfect for CPS style programming, but I think many people don't find CPS natural at all)
2021-12-10 11:16:11 +0100 <dminuoso> % exception e h a = ((Left <$> a) `catch` (fmap Right . e)) >>= either h pure
2021-12-10 11:16:11 +0100 <yahb> dminuoso:
2021-12-10 11:16:13 +0100 <dminuoso> % :t exception
2021-12-10 11:16:13 +0100 <yahb> dminuoso: Exception e => (e -> IO b) -> (a -> IO b) -> IO a -> IO b
2021-12-10 11:17:34 +0100 <int-e> % :t handle
2021-12-10 11:17:34 +0100 <yahb> int-e: Exception e => (e -> IO a) -> IO a -> IO a
2021-12-10 11:17:36 +0100zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2021-12-10 11:17:38 +0100 <int-e> % :t catch
2021-12-10 11:17:38 +0100 <yahb> int-e: Exception e => IO a -> (e -> IO a) -> IO a
2021-12-10 11:17:42 +0100 <int-e> :-/
2021-12-10 11:18:37 +0100zaquest(~notzaques@5.130.79.72)
2021-12-10 11:18:49 +0100 <dminuoso> You could even define handle/catch in terms of exception, as `handle h = exception h pure`
2021-12-10 11:19:03 +0100 <dminuoso> int-e: It seems to fit more in line with `either`, `maybe` and those operators.
2021-12-10 11:19:34 +0100 <dminuoso> Im not sure this about CPS programming.
2021-12-10 11:20:06 +0100 <dminuoso> In some traditional languages you could have an exception handler that simply uses a return() or throws an exception itself to shortcircuit the rest of the function. But we cant do this in Haskell
2021-12-10 11:20:26 +0100 <int-e> dminuoso: you're providing a continuation for the exception case and another one for the successful case
2021-12-10 11:20:30 +0100 <dminuoso> Think its the other way around, you have to use CPS to get the effect of `exception` without its existance
2021-12-10 11:21:20 +0100 <int-e> `catch` happens to be what the RTS implements
2021-12-10 11:21:21 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95)
2021-12-10 11:21:35 +0100gehmehgeh(~user@user/gehmehgeh) (Remote host closed the connection)
2021-12-10 11:21:42 +0100 <dminuoso> int-e: Do you think its more idiomatic to do something like `r <- handle (const (pure Nothing)) e; case r of Nothing -> closeSocket ...; Just x -> proceed ...`?
2021-12-10 11:22:13 +0100 <dminuoso> Given how with Maybe equivalent we'd just write `maybe closeSocket proceed x` instead
2021-12-10 11:22:36 +0100 <dminuoso> That "CPS" style seems in line with what we usually write
2021-12-10 11:22:44 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-10 11:22:48 +0100gehmehgeh(~user@user/gehmehgeh)
2021-12-10 11:22:52 +0100 <dminuoso> Oh, and I was missing some `Just <$> e` in that
2021-12-10 11:23:53 +0100 <int-e> dminuoso: I have no opinion... superficially, `closeSocket` sounds like a job for `bracket`
2021-12-10 11:24:19 +0100 <int-e> well, I have an opinion which is that exception handling is unidiomatic no matter how you do it :P
2021-12-10 11:24:32 +0100 <dminuoso> int-e: Sure. I mean specifically Im using websockets, and I want to close the socket with a particular error code.
2021-12-10 11:25:01 +0100 <dminuoso> And a file not exist exception on the very first IO action would produce something akin to a 404, whereas further file not exist exceptions would be something akin to 500
2021-12-10 11:25:42 +0100mc47(~mc47@xmonad/TheMC47)
2021-12-10 11:25:50 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 260 seconds)
2021-12-10 11:27:05 +0100Pickchea(~private@user/pickchea) (Ping timeout: 268 seconds)
2021-12-10 11:27:17 +0100 <dminuoso> So for bracket to work here, Id have to catch the first file not exist exception, and rethrow as some `FirstFileNotFoundException`
2021-12-10 11:28:54 +0100 <int-e> did I mention that I was being superficial
2021-12-10 11:29:02 +0100genieliu(~genieliu@103.37.140.24) (Ping timeout: 240 seconds)
2021-12-10 11:29:47 +0100 <dminuoso> Fair enough. :)
2021-12-10 11:32:50 +0100Erutuon(~Erutuon@user/erutuon) (Ping timeout: 260 seconds)
2021-12-10 11:36:25 +0100 <int-e> dminuoso: Oh, actually... in that `exception`, should `e :: e -> IO b` be run as an exception handler (async exceptions blocked) or as ordinary code? because we seem to differ on that...
2021-12-10 11:37:26 +0100 <dminuoso> int-e: exception handler with async exceptions blocked.
2021-12-10 11:37:39 +0100 <int-e> (basically, if you want to cope with async exceptions, `handle (const (pure Nothing))` is almost never going to be the right thing)
2021-12-10 11:38:04 +0100 <dminuoso> I adopt the unliftio/safe-exceptions mind model that async exceptions should, in general, never be blocked.
2021-12-10 11:38:07 +0100 <dminuoso> Or recovered from.
2021-12-10 11:38:32 +0100 <int-e> but you are in a resource cleanup scenario, aren't you?
2021-12-10 11:38:59 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95)
2021-12-10 11:40:16 +0100 <dminuoso> So what I have is that some client opens a websocket at /foo/1, and my software will deserialize the file files/1.json, and do something with it. But on the occasion that file does not exist, I want to reject the websocket from the get go. to avoid a toctou race, I will simply use eitherDecodeFileStrict' from aeson
2021-12-10 11:41:10 +0100 <int-e> Oh maybe not. You don't need more than `catch` in that case because the handler should just rethrow the exception (so there's no return type to worry about; execution doesn't continue)
2021-12-10 11:41:15 +0100ProfSimm(~ProfSimm@87.227.196.109)
2021-12-10 11:41:20 +0100 <dminuoso> handler pid pending = do { f =<< decode pid; handle f =<< acceptRequest pending }
2021-12-10 11:41:26 +0100 <dminuoso> something along these lines
2021-12-10 11:41:52 +0100 <dminuoso> Uh, hold on
2021-12-10 11:42:03 +0100 <dminuoso> handler pid pending = do { f <- process =<< decode pid; handle f =<< acceptRequest pending }
2021-12-10 11:42:11 +0100 <dminuoso> Now the key is, `process` will also access the file system
2021-12-10 11:42:19 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-12-10 11:42:51 +0100 <dminuoso> And depending on whether decode or whether process throws a file not exist exception, I want the socket closed differently
2021-12-10 11:43:10 +0100 <dminuoso> (or rather I mean, the pending request will be rejected differently)
2021-12-10 11:43:21 +0100 <dminuoso> but this distinction is not relevant
2021-12-10 11:43:44 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 268 seconds)
2021-12-10 11:43:57 +0100vgtw(~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se) (Quit: ZNC - https://znc.in)
2021-12-10 11:44:12 +0100mmhat(~mmh@55d44db9.access.ecotel.net)
2021-12-10 11:51:04 +0100jonathanx(~jonathan@dyn-2-sc.cdg.chalmers.se)
2021-12-10 11:51:23 +0100vgtw(~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se)
2021-12-10 11:53:05 +0100 <int-e> dminuoso: this is kind of horrible, but perhaps the least invasive approach with respect to exception handling would be to track how far you've progressed in a mutable variable (IOVar)?
2021-12-10 11:53:57 +0100vgtw(~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se) (Client Quit)
2021-12-10 11:55:18 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95)
2021-12-10 11:55:55 +0100 <dminuoso> int-e: Mmm, that seems a bit overkill too
2021-12-10 11:55:57 +0100 <dminuoso> https://gist.github.com/dminuoso/66872130a9312fb7106afc1662c90124
2021-12-10 11:56:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-10 11:56:11 +0100 <dminuoso> So this is quickly written sketch (not tested yet, might be typos in there)
2021-12-10 11:56:13 +0100 <dminuoso> of my intent
2021-12-10 11:59:01 +0100 <dminuoso> Guess the surprising thing is that all our exception recovery join the branches back together
2021-12-10 11:59:21 +0100 <dminuoso> both the exception and happy branch
2021-12-10 11:59:43 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 250 seconds)
2021-12-10 12:00:50 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-12-10 12:01:24 +0100 <int-e> except when the exception is rethrown (which a bunch of things actually do)
2021-12-10 12:02:28 +0100pfurla(~pfurla@2804:14d:5c81:4104:25b5:2708:65a9:4e7d) (Quit: gone to sleep. ZZZzzz…)
2021-12-10 12:04:21 +0100 <vpan> https://cabal.readthedocs.io/en/3.6/intro.html#similar-systems says there are 5000 packages on hackage, while https://hackage.haskell.org/packages/browse reports 16248. Assuming 16k is the correct number of packages currently on hackage, 3x looks like a significant understatement. Should this be fixed or am I the only one bothered by that? :)
2021-12-10 12:05:07 +0100Pickchea(~private@user/pickchea)
2021-12-10 12:08:51 +0100phma(~phma@host-67-44-209-94.hnremote.net) (Read error: Connection reset by peer)
2021-12-10 12:10:02 +0100phma(phma@2001:5b0:2172:c188:a9eb:c095:74b0:11cc)
2021-12-10 12:10:05 +0100 <int-e> % :t let f a h e = join (fmap h a `catch` (fmap pure . e)) in f
2021-12-10 12:10:05 +0100 <yahb> int-e: Exception e => IO a1 -> (a1 -> IO a2) -> (e -> IO a2) -> IO a2
2021-12-10 12:11:11 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95)
2021-12-10 12:12:01 +0100 <int-e> dminuoso: ^^ no clue whether this is better in any objective way, but it's free of Either
2021-12-10 12:12:43 +0100CiaoSen(~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2021-12-10 12:16:25 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 268 seconds)
2021-12-10 12:16:28 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 12:18:53 +0100Pickchea(~private@user/pickchea) (Quit: Leaving)
2021-12-10 12:20:54 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
2021-12-10 12:24:07 +0100__monty__(~toonn@user/toonn)
2021-12-10 12:24:52 +0100k60```(~user@94.25.169.9)
2021-12-10 12:29:24 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95)
2021-12-10 12:34:18 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 268 seconds)
2021-12-10 12:34:19 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-12-10 12:38:24 +0100gehmehgeh(~user@user/gehmehgeh) (Ping timeout: 276 seconds)
2021-12-10 12:39:02 +0100gehmehgeh(~user@user/gehmehgeh)
2021-12-10 12:41:10 +0100sprout(~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95)
2021-12-10 12:42:08 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-10 12:44:37 +0100Codaraxis(~Codaraxis@user/codaraxis) (Remote host closed the connection)
2021-12-10 12:45:22 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-10 12:46:37 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 268 seconds)
2021-12-10 12:48:24 +0100kupi(uid212005@id-212005.hampstead.irccloud.com)
2021-12-10 12:57:18 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2021-12-10 13:01:32 +0100jonathanx(~jonathan@dyn-2-sc.cdg.chalmers.se) (Ping timeout: 240 seconds)
2021-12-10 13:02:45 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2021-12-10 13:03:10 +0100__monty__(~toonn@user/toonn)
2021-12-10 13:09:09 +0100sweater(~sweater@206.81.18.26) (Remote host closed the connection)
2021-12-10 13:09:29 +0100sweater(~sweater@206.81.18.26)
2021-12-10 13:12:54 +0100abrantesasf(~abrantesa@187.36.170.211)
2021-12-10 13:13:48 +0100sweater(~sweater@206.81.18.26) (Client Quit)
2021-12-10 13:13:59 +0100sweater(~sweater@206.81.18.26)
2021-12-10 13:14:29 +0100sweater(~sweater@206.81.18.26) (Client Quit)
2021-12-10 13:14:42 +0100sweater(~sweater@206.81.18.26)
2021-12-10 13:18:47 +0100Jing(~hedgehog@2604:a840:3::1001)
2021-12-10 13:20:23 +0100alx741(~alx741@186.178.108.192)
2021-12-10 13:21:10 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-10 13:22:25 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
2021-12-10 13:27:52 +0100vgtw(~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se)
2021-12-10 13:31:52 +0100xkuru(~xkuru@user/xkuru)
2021-12-10 13:36:23 +0100jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2021-12-10 13:36:44 +0100jgeerds(~jgeerds@55d4ac73.access.ecotel.net)
2021-12-10 13:37:51 +0100alx741(~alx741@186.178.108.192) (Ping timeout: 252 seconds)
2021-12-10 13:40:53 +0100k60```(~user@94.25.169.9) (Ping timeout: 268 seconds)
2021-12-10 13:41:53 +0100dsrt^(~dsrt@wsip-98-188-240-142.mc.at.cox.net)
2021-12-10 13:47:37 +0100ProfSimm(~ProfSimm@87.227.196.109) (Quit: Client closed)
2021-12-10 13:48:48 +0100mncheck(~mncheck@193.224.205.254) (Remote host closed the connection)
2021-12-10 13:53:15 +0100deadmarshal(~deadmarsh@95.38.116.82) (Ping timeout: 252 seconds)
2021-12-10 13:53:46 +0100deadmarshal(~deadmarsh@95.38.116.82)
2021-12-10 13:53:51 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2021-12-10 14:00:26 +0100xkuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2021-12-10 14:01:11 +0100genieliu(~genieliu@111.193.167.10)
2021-12-10 14:02:10 +0100max22-(~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 260 seconds)
2021-12-10 14:03:13 +0100jgeerds(~jgeerds@55d4ac73.access.ecotel.net) (Ping timeout: 250 seconds)
2021-12-10 14:06:37 +0100xkuru(~xkuru@user/xkuru)
2021-12-10 14:08:38 +0100xff0x(~xff0x@2001:1a81:537e:3f00:d5b4:3c9d:ec95:16b3) (Ping timeout: 268 seconds)
2021-12-10 14:09:01 +0100genieliu(~genieliu@111.193.167.10) (Ping timeout: 252 seconds)
2021-12-10 14:09:16 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
2021-12-10 14:09:41 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-12-10 14:10:05 +0100Akiva(~Akiva@user/Akiva) (Ping timeout: 265 seconds)
2021-12-10 14:11:59 +0100genieliu(~genieliu@111.193.167.10)
2021-12-10 14:14:06 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-10 14:15:05 +0100xff0x(~xff0x@2001:1a81:537e:3f00:d5b4:3c9d:ec95:16b3)
2021-12-10 14:17:18 +0100k60```(~user@94.25.169.9)
2021-12-10 14:17:21 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 14:19:36 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-12-10 14:21:46 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
2021-12-10 14:23:28 +0100Morrow(~quassel@bzq-110-168-31-106.red.bezeqint.net) (Remote host closed the connection)
2021-12-10 14:24:17 +0100 <dminuoso> int-e: You were absolutely right. My head was stuck in CPS.
2021-12-10 14:24:21 +0100 <dminuoso> For no good reason.
2021-12-10 14:24:38 +0100slowButPresent(~slowButPr@user/slowbutpresent)
2021-12-10 14:24:57 +0100 <dminuoso> All I needed was `getManifest :: Int -> IO Manifest; getManifest pid = handle noSuchFile ...`
2021-12-10 14:25:06 +0100gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-12-10 14:28:46 +0100deadmarshal(~deadmarsh@95.38.116.82) (Ping timeout: 260 seconds)
2021-12-10 14:31:35 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Quit: Leaving)
2021-12-10 14:31:38 +0100DNH(~DNH@2a02:8108:1100:16d8:e582:2d42:b0b2:720b)
2021-12-10 14:33:09 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-12-10 14:33:11 +0100geekosaur(~geekosaur@xmonad/geekosaur)
2021-12-10 14:37:44 +0100jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-12-10 14:38:30 +0100alx741(~alx741@186.178.108.192)
2021-12-10 14:38:35 +0100ddb(~ddb@ipv6two.tilde.club)
2021-12-10 14:39:50 +0100deadmarshal(~deadmarsh@95.38.116.82)
2021-12-10 14:40:35 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.3)
2021-12-10 14:40:56 +0100shriekingnoise(~shrieking@186.137.144.80)
2021-12-10 14:40:58 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2021-12-10 14:47:08 +0100genieliu(~genieliu@111.193.167.10) (Quit: Lost terminal)
2021-12-10 14:47:08 +0100jakalx(~jakalx@base.jakalx.net)
2021-12-10 14:47:45 +0100pfurla(~pfurla@2804:14d:5c81:4104:654d:199b:4253:3c19)
2021-12-10 14:48:10 +0100sluigi(~sluigi@18.31.9.184)
2021-12-10 14:49:38 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-10 14:51:26 +0100 <raehik> What's the difference between Proxy# and Proxy? I know of the words "boxing/unboxing", but I don't really know what they mean
2021-12-10 14:51:42 +0100 <raehik> I can see that Proxy# is more like Void, it can't be constructed on the Value level
2021-12-10 14:52:31 +0100cosimone`(~user@93-47-230-227.ip115.fastwebnet.it)
2021-12-10 14:52:40 +0100cosimone(~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) (Quit: ERC (IRC client for Emacs 27.1))
2021-12-10 14:54:01 +0100max22-(~maxime@2a01cb0883359800d7eef028cd7b4d10.ipv6.abo.wanadoo.fr)
2021-12-10 14:56:59 +0100timCF(~timCF@m91-129-100-224.cust.tele2.ee)
2021-12-10 14:57:43 +0100emf(~emf@2603-6080-9403-11bf-0000-0000-0000-0007.res6.spectrum.com)
2021-12-10 14:57:58 +0100 <timCF> Hello! Does anyone know what's the purpose of irrefutable patterns in Haskell? I think I do understand how it works, but I don't understand why it's needed and what are good use cases for this
2021-12-10 14:58:38 +0100max22-(~maxime@2a01cb0883359800d7eef028cd7b4d10.ipv6.abo.wanadoo.fr) (Ping timeout: 260 seconds)
2021-12-10 15:01:05 +0100xsperry(~xs@user/xsperry) (Remote host closed the connection)
2021-12-10 15:01:57 +0100sluigi(~sluigi@18.31.9.184) (Ping timeout: 256 seconds)
2021-12-10 15:02:54 +0100emf(~emf@2603-6080-9403-11bf-0000-0000-0000-0007.res6.spectrum.com) (Ping timeout: 268 seconds)
2021-12-10 15:03:07 +0100sayola(~vekto@dslb-092-072-095-186.092.072.pools.vodafone-ip.de) (Read error: Connection reset by peer)
2021-12-10 15:03:34 +0100 <boxscape> raehik: proxy# is a value of type Proxy#. It's just an alternative to Proxy that has zero runtime cost
2021-12-10 15:03:59 +0100 <geekosaur> timCF, they're lazy patterns instead of strict
2021-12-10 15:04:02 +0100emf(~emf@2620:10d:c091:480::1:ff4b)
2021-12-10 15:04:40 +0100 <timCF> geekosaur: I thought data and functions in Haskell are lazy by default anyway?
2021-12-10 15:05:10 +0100 <timCF> I mean not only functions, any expressions (like pattern matching)
2021-12-10 15:06:00 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26)
2021-12-10 15:06:09 +0100 <geekosaur> pattern matching is strict by default at top level (but not in let). *something* has to be strict or no evaluation would ever happen at all
2021-12-10 15:06:33 +0100jkaye(~jkaye@2601:281:8300:7530:bc2d:ca62:1f76:4faa)
2021-12-10 15:06:40 +0100 <boxscape> e.g. `f (x, y) = ()` is strict in its argument, i.e. if `x` is bottom, then so is `f x`.
2021-12-10 15:07:02 +0100acidjnk_new(~acidjnk@p200300d0c7271e96496b0bacdae081f8.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-12-10 15:07:27 +0100 <timCF> got it, thanks!
2021-12-10 15:08:12 +0100kupi(uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-10 15:10:15 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) (Ping timeout: 252 seconds)
2021-12-10 15:12:39 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-10 15:14:12 +0100timCF(~timCF@m91-129-100-224.cust.tele2.ee) (Quit: leaving)
2021-12-10 15:15:41 +0100abrantesasf(~abrantesa@187.36.170.211) (Remote host closed the connection)
2021-12-10 15:18:04 +0100abrantesasf(~abrantesa@187.36.170.211)
2021-12-10 15:19:29 +0100dsrt^(~dsrt@wsip-98-188-240-142.mc.at.cox.net) (Ping timeout: 250 seconds)
2021-12-10 15:23:23 +0100ub1(~Thunderbi@p548c998b.dip0.t-ipconnect.de)
2021-12-10 15:23:24 +0100ubert1(~Thunderbi@p200300ecdf1abb7bed76e28c4fd34537.dip0.t-ipconnect.de)
2021-12-10 15:23:37 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-12-10 15:24:46 +0100ub(~Thunderbi@p200300ecdf0ba2c0b11d357caa48ef17.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-12-10 15:25:14 +0100ubert(~Thunderbi@p200300ecdf0ba2c03cbcafca2ab2631d.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-12-10 15:25:14 +0100ub1ubert
2021-12-10 15:31:31 +0100neverfindme(~hayden@158.123.160.43)
2021-12-10 15:34:37 +0100abrantesasf(~abrantesa@187.36.170.211) (Read error: Connection reset by peer)
2021-12-10 15:34:37 +0100Jing(~hedgehog@2604:a840:3::1001) (Remote host closed the connection)
2021-12-10 15:36:40 +0100chele(~chele@user/chele) (Quit: Leaving)
2021-12-10 15:38:52 +0100Jing(~hedgehog@2604:a840:3::1001)
2021-12-10 15:39:22 +0100kupi(uid212005@id-212005.hampstead.irccloud.com)
2021-12-10 15:40:05 +0100fryguybob(~fryguybob@cpe-74-67-169-145.rochester.res.rr.com)
2021-12-10 15:43:22 +0100abrantesasf(~abrantesa@187.36.170.211)
2021-12-10 15:43:42 +0100abrantesasf(~abrantesa@187.36.170.211) (Remote host closed the connection)
2021-12-10 15:48:16 +0100dsrt^(~dsrt@wsip-98-188-240-142.mc.at.cox.net)
2021-12-10 15:50:32 +0100vpan(~0@212.117.1.172) (Ping timeout: 240 seconds)
2021-12-10 15:55:42 +0100max22-(~maxime@2a01cb0883359800942e2037ffd67664.ipv6.abo.wanadoo.fr)
2021-12-10 16:01:22 +0100Jing(~hedgehog@2604:a840:3::1001) (Remote host closed the connection)
2021-12-10 16:01:24 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-12-10 16:01:24 +0100maplike(~maplike@31.209.100.216)
2021-12-10 16:01:42 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:9c45:ef7f:f3cf:1dd6) (Quit: WeeChat 2.8)
2021-12-10 16:01:57 +0100Jing(~hedgehog@2604:a840:3::1001)
2021-12-10 16:04:26 +0100pfurla(~pfurla@2804:14d:5c81:4104:654d:199b:4253:3c19) (Quit: gone to sleep. ZZZzzz…)
2021-12-10 16:05:56 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-12-10 16:06:53 +0100xsperry(~xs@user/xsperry)
2021-12-10 16:08:11 +0100mimmy(~mimmy@184.94.118.194)
2021-12-10 16:08:57 +0100 <raehik> boxscape: sry for delay, thank you. I will keep it in mind when I need to do type ferrying from now, I only knew about Proxy
2021-12-10 16:09:05 +0100 <maplike> can someone show a canonical or just concise (very short yet illustrative) example, that is not _factorial_, of first solving with corecursion/recursion, then ana/cata and then hylo?
2021-12-10 16:10:02 +0100alx741(~alx741@186.178.108.192) (Ping timeout: 260 seconds)
2021-12-10 16:14:24 +0100 <xerox> is there a cabal command to list all possible targets?
2021-12-10 16:15:09 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
2021-12-10 16:17:01 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-12-10 16:21:35 +0100 <yushyin> something like that would be nice, but there is a target syntax for specific modules/files and listing _all_ wouldn't be that useful i guess?
2021-12-10 16:22:57 +0100alx741(~alx741@186.178.109.174)
2021-12-10 16:24:01 +0100Sgeo(~Sgeo@user/sgeo)
2021-12-10 16:24:32 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-10 16:26:48 +0100nickdaly-awaynickdaly
2021-12-10 16:26:53 +0100ph88(~ph88@ip5f5af068.dynamic.kabel-deutschland.de) (Quit: Leaving)
2021-12-10 16:27:44 +0100fr33domlover(~fr33@2.55.41.192)
2021-12-10 16:28:14 +0100alx741(~alx741@186.178.109.174) (Ping timeout: 260 seconds)
2021-12-10 16:28:29 +0100InternetCitizen(~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
2021-12-10 16:31:02 +0100cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.3)
2021-12-10 16:31:42 +0100EvanR(~evan@user/evanr) (Remote host closed the connection)
2021-12-10 16:31:59 +0100EvanR(~evan@2600:1700:ba69:10:1e6b:60f7:fab1:30bf)
2021-12-10 16:32:17 +0100EvanR(~evan@2600:1700:ba69:10:1e6b:60f7:fab1:30bf) (Changing host)
2021-12-10 16:32:17 +0100EvanR(~evan@user/evanr)
2021-12-10 16:32:43 +0100mimmy_(~mimmy@66.115.145.34)
2021-12-10 16:33:07 +0100euandreh(~euandreh@2804:14c:33:9fe5:9808:86a6:acca:9c5) (Ping timeout: 252 seconds)
2021-12-10 16:33:32 +0100mimmy(~mimmy@184.94.118.194) (Ping timeout: 240 seconds)
2021-12-10 16:34:39 +0100Guest|14(~Guest|14@201-43-221-14.dsl.telesp.net.br)
2021-12-10 16:34:49 +0100doyougnu(~doyougnu@c-73-25-202-122.hsd1.or.comcast.net)
2021-12-10 16:34:54 +0100Guest|14(~Guest|14@201-43-221-14.dsl.telesp.net.br) (Client Quit)
2021-12-10 16:35:02 +0100euandreh(~euandreh@2804:14c:33:9fe5:f0cf:5664:8ee5:8e87)
2021-12-10 16:37:43 +0100mimmy_(~mimmy@66.115.145.34) (Ping timeout: 250 seconds)
2021-12-10 16:39:02 +0100mimmy_(~mimmy@184.94.118.194)
2021-12-10 16:40:47 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3)
2021-12-10 16:41:51 +0100alx741(~alx741@157.100.93.160)
2021-12-10 16:41:56 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-12-10 16:45:40 +0100 <boxscape> raehik: there's also something to be said about using `proxy a` instead of either `Proxy a` or `Proxy# a` - that allows the caller of the function to supply any (lifted) type. You lose out on the zero runtime cost though (unless you introduce levity polymorphism I think... but that's probably not worth it)
2021-12-10 16:48:19 +0100neverfindme(~hayden@158.123.160.43) (Ping timeout: 250 seconds)
2021-12-10 16:49:00 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26)
2021-12-10 16:51:26 +0100neverfindme(~hayden@158.123.160.43)
2021-12-10 16:51:26 +0100neverfindme(~hayden@158.123.160.43) (Remote host closed the connection)
2021-12-10 16:51:43 +0100neverfindme(~hayden@158.123.160.43)
2021-12-10 16:59:20 +0100zincy_(~zincy@host86-151-99-97.range86-151.btcentralplus.com)
2021-12-10 16:59:48 +0100abrantesasf(~abrantesa@187.36.170.211)
2021-12-10 17:00:14 +0100ptrcmd(~ptrcmd@user/ptrcmd)
2021-12-10 17:03:09 +0100zincy_(~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Remote host closed the connection)
2021-12-10 17:05:35 +0100 <oats> https://www.youtube.com/watch?v=nY1BCv3xn24
2021-12-10 17:05:42 +0100 <oats> this is a really fascinating talk
2021-12-10 17:14:23 +0100 <oats> I don't think I've ever seen a non-fascinating talk from George Wilson
2021-12-10 17:14:38 +0100timCF(~timCF@m91-129-100-224.cust.tele2.ee)
2021-12-10 17:19:10 +0100dsrt^(~dsrt@wsip-98-188-240-142.mc.at.cox.net) (Ping timeout: 256 seconds)
2021-12-10 17:19:14 +0100 <timCF> Hello! I'm leaning "singletons" design patterns from tutorial made by jle` where he is using a lot of "strange" syntax like `data Door :: DoorState -> Type where; UnsafeMkDoor :: { doorMaterial :: String } -> Door s` in examples. I'm thinking what's the point of using "data" expression where clearly could be used parametrized "newtype" which is more efficient for free, optimized by GHC (I guess) and have
2021-12-10 17:19:20 +0100 <timCF> free stuff like "coerce"?
2021-12-10 17:20:07 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-12-10 17:20:33 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-10 17:20:58 +0100darchite`(~user@2a00:23c6:3584:df00:7dec:bf13:8fa:748c)
2021-12-10 17:22:06 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-12-10 17:22:58 +0100ubert1(~Thunderbi@p200300ecdf1abb7bed76e28c4fd34537.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-12-10 17:23:59 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-12-10 17:26:59 +0100 <geekosaur> GADTs are not normal "data" types
2021-12-10 17:28:20 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) (Remote host closed the connection)
2021-12-10 17:28:22 +0100 <geekosaur> in particular, that describes a type which is "tagged" by a type "s"
2021-12-10 17:28:50 +0100 <geekosaur> (I think you could do that particular case with a non-GADT, but it would still need to be a "data" to accomplish that tagging)
2021-12-10 17:29:26 +0100 <timCF> geekosaur: I mean why not `newtype Door (a :: DoorState) = Door String`?
2021-12-10 17:29:36 +0100 <geekosaur> and part of the point of the tagging is you do not want to simply coerce values
2021-12-10 17:29:49 +0100 <geekosaur> it's not a Door String, it's a Door DoorState
2021-12-10 17:29:54 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:7701:94ac:10aa:c878)
2021-12-10 17:30:25 +0100 <timCF> geekosaur: and then in somewhere in code `let door = Door @'Open "Oak"`
2021-12-10 17:30:31 +0100 <geekosaur> and you do *not* want to be able to cheaply coerce to different DoorState values, since the point of DoorState is to keep you from changing the state under the wrong conditions
2021-12-10 17:30:51 +0100 <geekosaur> jle`'s stuff should explain this, I've been through it a few times
2021-12-10 17:31:31 +0100dsrt^(~dsrt@wsip-98-188-240-142.mc.at.cox.net)
2021-12-10 17:32:06 +0100 <geekosaur> I'm not great with type level stuff but the DoorState examples at least made sense to me
2021-12-10 17:34:46 +0100 <timCF> geekosaur: Yes, examples totally make sense, I'm just trying to understand reasoning behind of using "data" instead of "newtype" in examples. Newtypes also could have phantom type and kind parameters like data.
2021-12-10 17:36:01 +0100PotatoHatsue(~berberman@2001:470:69fc:105::b488)
2021-12-10 17:38:10 +0100 <geekosaur> usually you have more than one parameter
2021-12-10 17:38:53 +0100 <geekosaur> and you keep showing simpler ways to do things. but the whole point of this is to *not* be simple, but to force you to jump through the right hoops that maintain invariants
2021-12-10 17:39:25 +0100 <geekosaur> you wouldn't need to do this with type level stuff at all otherwise
2021-12-10 17:43:12 +0100lbseale(~ep1ctetus@user/ep1ctetus)
2021-12-10 17:43:52 +0100oats(~thomas@user/oats) (Quit: until later, my friends)
2021-12-10 17:44:09 +0100 <timCF> I guess, I have to try stuff like `newtype Door (a :: DoorState) = UnsafeMkDoor { doorMaterial :: String }` instead of similar "data" expression and see why it's not working on actual examples
2021-12-10 17:44:35 +0100oats(~thomas@user/oats)
2021-12-10 17:45:38 +0100 <timCF> If it's even there is "coerce" for newtypes - I just don't use it, and use proper type-level computations instead, not sure will it be any difference then
2021-12-10 17:47:03 +0100cosimone`(~user@93-47-230-227.ip115.fastwebnet.it) (Ping timeout: 250 seconds)
2021-12-10 17:47:18 +0100smartin(~Thunderbi@88.135.18.171)
2021-12-10 17:47:30 +0100cosimone`(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
2021-12-10 17:47:45 +0100oats(~thomas@user/oats) (Client Quit)
2021-12-10 17:48:03 +0100oats(~thomas@user/oats)
2021-12-10 17:50:45 +0100oats(~thomas@user/oats) (Client Quit)
2021-12-10 17:51:14 +0100oats(~thomas@user/oats)
2021-12-10 17:51:28 +0100oats(~thomas@user/oats) (Remote host closed the connection)
2021-12-10 17:51:51 +0100jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-12-10 17:51:52 +0100oats(~thomas@user/oats)
2021-12-10 17:53:11 +0100oats(~thomas@user/oats) (Client Quit)
2021-12-10 17:54:10 +0100 <Franciman> see you!
2021-12-10 17:54:12 +0100Franciman(~Franciman@mx1.fracta.dev) (WeeChat 3.3)
2021-12-10 17:54:37 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-12-10 17:55:57 +0100oats(~thomas@user/oats)
2021-12-10 17:56:48 +0100cosimone`(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Ping timeout: 268 seconds)
2021-12-10 17:57:04 +0100jakalx(~jakalx@base.jakalx.net)
2021-12-10 17:59:10 +0100 <oats> https://nitter.net/GabriellaG439/status/1465908026662010882
2021-12-10 18:01:07 +0100emf(~emf@2620:10d:c091:480::1:ff4b) (Ping timeout: 252 seconds)
2021-12-10 18:01:17 +0100 <geekosaur> timCF, if it lets you openj a door without unlocking it first, it's failing to maintain the invariant in jle`'s example
2021-12-10 18:01:48 +0100dsrt^(~dsrt@wsip-98-188-240-142.mc.at.cox.net) (Remote host closed the connection)
2021-12-10 18:04:02 +0100abrantesasf(~abrantesa@187.36.170.211) (Remote host closed the connection)
2021-12-10 18:04:11 +0100shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-12-10 18:04:11 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 18:06:00 +0100 <jle`> timCF: i don't think in this case there's any reason to not use a newtype in this case, it's not really a GADT, it's just using GADT syntax
2021-12-10 18:06:32 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-10 18:06:52 +0100 <jle`> timCF: i think the idea was to be more "general", in many real cases you might have more than one field
2021-12-10 18:07:52 +0100 <timCF> geekosaur: jle`: thanks for reply! Yes, I'm using product types for sure, but 50% of my types are usually just newtypes, which I want to continue to use with singletons as well.
2021-12-10 18:08:41 +0100 <geekosaur> I mentioned the multiple fields thing earlier
2021-12-10 18:08:57 +0100 <jle`> yup yeah, there is no reason to use data over newtype in that case. i think maybe i originally wrote the tutorial with a data type with multiple fields and removed a field to simplify it
2021-12-10 18:09:09 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 268 seconds)
2021-12-10 18:11:01 +0100 <sprout> https://github.com/egel-lang/aoc-2021/blob/main/day10/task2.eg <- day 10 task 2 of advent of code in egel
2021-12-10 18:12:05 +0100 <timCF> jle`: thanks for tutorial as well! I've used phantom kind parameters for a while, but always had a trouble in lifting/unlifting stuff between type, kind and value levels.. Usually used type class approach, but it's very ugly to use
2021-12-10 18:12:45 +0100 <jle`> np!
2021-12-10 18:13:19 +0100 <jle`> i think i have to update the tutorial for the major version bump of singletons that happened last year
2021-12-10 18:13:31 +0100 <jle`> where Sing is now an injective type family instead of a data family
2021-12-10 18:13:40 +0100 <jle`> two years ago?
2021-12-10 18:13:58 +0100 <jle`> the ecosystem marches on
2021-12-10 18:14:42 +0100shriekingnoise(~shrieking@186.137.144.80) (Remote host closed the connection)
2021-12-10 18:16:58 +0100shriekingnoise(~shrieking@186.137.144.80)
2021-12-10 18:17:47 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
2021-12-10 18:17:50 +0100phma(phma@2001:5b0:2172:c188:a9eb:c095:74b0:11cc) (Read error: Connection reset by peer)
2021-12-10 18:17:51 +0100burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk)
2021-12-10 18:18:10 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26)
2021-12-10 18:19:15 +0100phma(phma@2001:5b0:210f:6be8:16f7:aafd:70ba:5696)
2021-12-10 18:19:39 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-12-10 18:21:03 +0100Pickchea(~private@user/pickchea)
2021-12-10 18:22:28 +0100alx741(~alx741@157.100.93.160) (Quit: alx741)
2021-12-10 18:23:38 +0100alx741(~alx741@181.199.42.79)
2021-12-10 18:24:22 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-12-10 18:27:38 +0100xff0x(~xff0x@2001:1a81:537e:3f00:d5b4:3c9d:ec95:16b3) (Ping timeout: 268 seconds)
2021-12-10 18:27:48 +0100k60```(~user@94.25.169.9) (Remote host closed the connection)
2021-12-10 18:28:04 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:7701:94ac:10aa:c878) (Quit: WeeChat 2.8)
2021-12-10 18:28:25 +0100xff0x(~xff0x@2001:1a81:537e:3f00:6b1a:2a67:475e:9b5f)
2021-12-10 18:29:05 +0100k60```(~user@static.100.218.46.78.clients.your-server.de)
2021-12-10 18:30:07 +0100nvmd(~nvmd@user/nvmd)
2021-12-10 18:32:23 +0100Guest66(~textual@98.13.6.21) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-12-10 18:32:58 +0100CiaoSen(~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2021-12-10 18:34:22 +0100Guest66(~textual@98.13.6.21)
2021-12-10 18:35:07 +0100Guest66(~textual@98.13.6.21) (Client Quit)
2021-12-10 18:36:13 +0100turlando(~turlando@user/turlando) (Ping timeout: 240 seconds)
2021-12-10 18:37:07 +0100turlando(~turlando@93-42-250-112.ip89.fastwebnet.it)
2021-12-10 18:37:07 +0100turlando(~turlando@93-42-250-112.ip89.fastwebnet.it) (Changing host)
2021-12-10 18:37:07 +0100turlando(~turlando@user/turlando)
2021-12-10 18:37:30 +0100CiaoSen(~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-12-10 18:38:26 +0100 <dsal> This code is very satisfying: repair chunk = fix missing ""
2021-12-10 18:39:50 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-12-10 18:40:26 +0100 <monochrom> hahaha nice
2021-12-10 18:40:28 +0100 <xerox> how'd you coerce fix into that
2021-12-10 18:41:04 +0100 <dsal> It's just regular fix.
2021-12-10 18:41:12 +0100 <geekosaur> > fix _ ""
2021-12-10 18:41:16 +0100 <lambdabot> error:
2021-12-10 18:41:16 +0100 <lambdabot> • Found hole: _ :: ([Char] -> t) -> [Char] -> t
2021-12-10 18:41:16 +0100 <lambdabot> Where: ‘t’ is a rigid type variable bound by
2021-12-10 18:41:25 +0100 <xerox> I mean into doing your bidding
2021-12-10 18:41:35 +0100 <monochrom> Convert your vanilla recursive function into using fix.
2021-12-10 18:41:39 +0100 <dsal> Missing tries to parse the input and if it fails, the error says what was missing and it shoves it in there.
2021-12-10 18:42:37 +0100 <dsal> It's not better or worse in this particular situation. It just reads nicely.
2021-12-10 18:43:00 +0100 <xerox> alright, just getting the recursive call as an arg
2021-12-10 18:43:08 +0100 <xerox> it does read awfully nice
2021-12-10 18:43:19 +0100 <dsal> I just couldn't have something called repair that didn't call fix.
2021-12-10 18:43:38 +0100 <EvanR> wreck-it ralph would be proud
2021-12-10 18:44:18 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-12-10 18:48:12 +0100kupi(uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-10 18:48:37 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) (Remote host closed the connection)
2021-12-10 18:49:15 +0100Pickchea(~private@user/pickchea) (Quit: Leaving)
2021-12-10 18:50:28 +0100dsrt^(~dsrt@wsip-98-188-240-142.mc.at.cox.net)
2021-12-10 18:54:37 +0100neverfindme(~hayden@158.123.160.43) (Quit: Leaving)
2021-12-10 18:58:47 +0100econo(uid147250@user/econo)
2021-12-10 18:59:21 +0100zer0bitz(~zer0bitz@dsl-hkibng32-54fbfb-173.dhcp.inet.fi)
2021-12-10 19:05:29 +0100fr33domlover(~fr33@2.55.41.192) (Ping timeout: 250 seconds)
2021-12-10 19:05:52 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-12-10 19:09:26 +0100neverfindme(~hayden@158.123.160.43)
2021-12-10 19:10:34 +0100neverfindme(~hayden@158.123.160.43) (Remote host closed the connection)
2021-12-10 19:11:42 +0100darkstardevx(~darkstard@50.39.115.145) (Read error: Connection reset by peer)
2021-12-10 19:11:49 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-10 19:15:20 +0100Akiva(~Akiva@user/Akiva)
2021-12-10 19:16:59 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-12-10 19:20:14 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-10 19:20:21 +0100ByronJohnson(~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 245 seconds)
2021-12-10 19:21:41 +0100 <sprout> dsal: +1
2021-12-10 19:25:09 +0100jgeerds(~jgeerds@55d4ac73.access.ecotel.net)
2021-12-10 19:29:46 +0100doyougnu(~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 260 seconds)
2021-12-10 19:31:46 +0100mimmy_(~mimmy@184.94.118.194) (Ping timeout: 268 seconds)
2021-12-10 19:34:43 +0100Akiva(~Akiva@user/Akiva) (Ping timeout: 250 seconds)
2021-12-10 19:39:14 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26)
2021-12-10 19:40:11 +0100Megant(megant@user/megant) (Ping timeout: 256 seconds)
2021-12-10 19:40:54 +0100mimmy_(~mimmy@184.94.118.194)
2021-12-10 19:41:37 +0100Megant(megant@user/megant)
2021-12-10 19:49:15 +0100dsrt^(~dsrt@wsip-98-188-240-142.mc.at.cox.net) (Ping timeout: 250 seconds)
2021-12-10 19:51:51 +0100InternetCitizen(~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 252 seconds)
2021-12-10 19:53:18 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Read error: Connection reset by peer)
2021-12-10 19:53:44 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-10 20:01:21 +0100emf(~emf@2620:10d:c091:480::1:a9a4)
2021-12-10 20:01:51 +0100mvk(~mvk@2607:fea8:5cdd:f000::9788)
2021-12-10 20:03:14 +0100max22-(~maxime@2a01cb0883359800942e2037ffd67664.ipv6.abo.wanadoo.fr) (Ping timeout: 268 seconds)
2021-12-10 20:03:36 +0100 <xerox> @src foldM
2021-12-10 20:03:37 +0100 <lambdabot> foldM _ a [] = return a
2021-12-10 20:03:37 +0100 <lambdabot> foldM f a (x:xs) = f a x >>= \fax -> foldM f fax xs
2021-12-10 20:04:00 +0100 <xerox> still using fax'es
2021-12-10 20:06:38 +0100ByronJohnson(~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
2021-12-10 20:08:20 +0100 <sshine> heh
2021-12-10 20:08:21 +0100 <sshine> what?
2021-12-10 20:08:37 +0100 <sshine> oh.
2021-12-10 20:09:09 +0100 <monochrom> Want me to fax you a category theory paper? Just tell me your phone number! >:)
2021-12-10 20:11:52 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-10 20:13:46 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-12-10 20:14:17 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2021-12-10 20:15:21 +0100dsrt^(~dsrt@wsip-98-188-240-142.mc.at.cox.net)
2021-12-10 20:16:47 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-10 20:24:34 +0100darkstarx(~darkstard@50.39.115.145)
2021-12-10 20:25:40 +0100darkstarx(~darkstard@50.39.115.145) (Remote host closed the connection)
2021-12-10 20:26:03 +0100darkstarx(~darkstard@50.39.115.145)
2021-12-10 20:26:05 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-12-10 20:27:13 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-12-10 20:27:30 +0100Morrow(~quassel@bzq-110-168-31-106.red.bezeqint.net)
2021-12-10 20:31:36 +0100darchite`(~user@2a00:23c6:3584:df00:7dec:bf13:8fa:748c) (Remote host closed the connection)
2021-12-10 20:37:37 +0100pfurla(~pfurla@201.17.118.230)
2021-12-10 20:43:46 +0100fossdd(~fossdd@sourcehut/user/fossdd)
2021-12-10 20:47:30 +0100bontaq(~user@ool-45779fe5.dyn.optonline.net)
2021-12-10 20:48:10 +0100beka(~beka@104.193.170.240)
2021-12-10 20:49:37 +0100max22-(~maxime@2a01cb0883359800b0bf91f12c0fefae.ipv6.abo.wanadoo.fr)
2021-12-10 20:50:12 +0100Erutuon(~Erutuon@user/erutuon)
2021-12-10 20:52:09 +0100fossdd(~fossdd@sourcehut/user/fossdd) (Remote host closed the connection)
2021-12-10 20:55:17 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-12-10 20:59:21 +0100jgeerds(~jgeerds@55d4ac73.access.ecotel.net) (Ping timeout: 268 seconds)
2021-12-10 20:59:49 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-10 21:01:45 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-12-10 21:04:39 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-12-10 21:05:30 +0100juhp(~juhp@128.106.188.82) (Ping timeout: 268 seconds)
2021-12-10 21:06:11 +0100Codaraxis(~Codaraxis@user/codaraxis)
2021-12-10 21:07:15 +0100juhp(~juhp@128.106.188.82)
2021-12-10 21:07:15 +0100alx741(~alx741@181.199.42.79) (Read error: Connection reset by peer)
2021-12-10 21:08:00 +0100alx741(~alx741@157.100.93.160)
2021-12-10 21:10:53 +0100meinside(uid24933@id-24933.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-10 21:14:36 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-10 21:15:22 +0100pfurla(~pfurla@201.17.118.230) (Quit: gone to sleep. ZZZzzz…)
2021-12-10 21:17:29 +0100superstar64(~superstar@2600:1700:ed80:50a0:d250:99ff:fe2c:53c4)
2021-12-10 21:17:58 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.3)
2021-12-10 21:19:54 +0100mimmy_(~mimmy@184.94.118.194) (Ping timeout: 260 seconds)
2021-12-10 21:20:10 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-12-10 21:21:08 +0100pfurla(~pfurla@2804:14d:5c81:4104:654d:199b:4253:3c19)
2021-12-10 21:23:27 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) (Remote host closed the connection)
2021-12-10 21:28:33 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26)
2021-12-10 21:28:35 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-12-10 21:31:31 +0100alx741(~alx741@157.100.93.160)
2021-12-10 21:33:05 +0100darkstarx(~darkstard@50.39.115.145) (Read error: Connection reset by peer)
2021-12-10 21:35:57 +0100darkstarx(~darkstard@50.39.115.145)
2021-12-10 21:36:53 +0100darkstarx(~darkstard@50.39.115.145) (Remote host closed the connection)
2021-12-10 21:37:18 +0100darkstarx(~darkstard@50.39.115.145)
2021-12-10 21:38:08 +0100doyougnu(~doyougnu@c-73-25-202-122.hsd1.or.comcast.net)
2021-12-10 21:40:36 +0100pfurla(~pfurla@2804:14d:5c81:4104:654d:199b:4253:3c19) (Quit: gone to sleep. ZZZzzz…)
2021-12-10 21:45:03 +0100azimut_(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds)
2021-12-10 21:48:03 +0100acidjnk_new(~acidjnk@p200300d0c7271e2134fbc39073c29133.dip0.t-ipconnect.de)
2021-12-10 21:48:17 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 21:48:59 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-12-10 21:52:24 +0100jgeerds(~jgeerds@55d4ac73.access.ecotel.net)
2021-12-10 21:54:59 +0100farmfrmjakestate(~farmfromj@user/farmfrmjakestate)
2021-12-10 21:55:16 +0100DNH(~DNH@2a02:8108:1100:16d8:e582:2d42:b0b2:720b) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-12-10 21:57:12 +0100CiaoSen(~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2021-12-10 21:57:52 +0100farmfrmjakestate(~farmfromj@user/farmfrmjakestate) (Client Quit)
2021-12-10 22:00:12 +0100namkeleser(~namkelese@101.179.128.103)
2021-12-10 22:00:46 +0100justsomeguy(~justsomeg@user/justsomeguy)
2021-12-10 22:02:08 +0100smartin(~Thunderbi@88.135.18.171) (Read error: Connection reset by peer)
2021-12-10 22:02:30 +0100smartin(~Thunderbi@88.135.18.171)
2021-12-10 22:03:01 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2021-12-10 22:04:48 +0100pavonia(~user@user/siracusa)
2021-12-10 22:12:51 +0100Feuermagier_(~Feuermagi@138.199.36.189)
2021-12-10 22:14:44 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-12-10 22:15:13 +0100Feuermagier(~Feuermagi@user/feuermagier) (Ping timeout: 252 seconds)
2021-12-10 22:15:28 +0100Feuermagier(~Feuermagi@user/feuermagier)
2021-12-10 22:15:50 +0100michalz(~michalz@185.246.204.61) (Remote host closed the connection)
2021-12-10 22:16:21 +0100mimmy_(~mimmy@2607:fea8:6e0:7f90:21fa:58d6:189b:bd7a)
2021-12-10 22:17:18 +0100burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection)
2021-12-10 22:17:39 +0100Feuermagier_(~Feuermagi@138.199.36.189) (Ping timeout: 268 seconds)
2021-12-10 22:20:54 +0100_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-12-10 22:22:14 +0100superstar64(~superstar@2600:1700:ed80:50a0:d250:99ff:fe2c:53c4) (Quit: Leaving)
2021-12-10 22:22:44 +0100mimmy(~mimmy@cpef81d0f857c83-cmf81d0f857c80.cpe.net.cable.rogers.com)
2021-12-10 22:23:23 +0100justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3)
2021-12-10 22:24:02 +0100shailangsa(~shailangs@host86-161-220-126.range86-161.btcentralplus.com) (Ping timeout: 256 seconds)
2021-12-10 22:25:04 +0100mimmy_(~mimmy@2607:fea8:6e0:7f90:21fa:58d6:189b:bd7a) (Ping timeout: 268 seconds)
2021-12-10 22:25:40 +0100Feuermagier(~Feuermagi@user/feuermagier) (Ping timeout: 268 seconds)
2021-12-10 22:27:09 +0100earendel(uid498179@user/earendel)
2021-12-10 22:28:07 +0100doyougnu(~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Remote host closed the connection)
2021-12-10 22:28:45 +0100 <maplike> can someone give or point to a simple yet illustrative example (_other than factorial_) showing the path starting from corecursion/recursion, to the ana/cata version and then using hylo?
2021-12-10 22:29:12 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-12-10 22:30:10 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-12-10 22:31:19 +0100doyougnu(~doyougnu@c-73-25-202-122.hsd1.or.comcast.net)
2021-12-10 22:31:31 +0100vicfred(~vicfred@user/vicfred)
2021-12-10 22:32:06 +0100DNH(~DNH@2a02:8108:1100:16d8:e582:2d42:b0b2:720b)
2021-12-10 22:34:44 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-10 22:36:26 +0100gehmehgeh(~user@user/gehmehgeh)
2021-12-10 22:37:13 +0100lagash(lagash@lagash.shelltalk.net) (Ping timeout: 252 seconds)
2021-12-10 22:37:14 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-12-10 22:37:24 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-10 22:40:12 +0100Feuermagier(~Feuermagi@user/feuermagier)
2021-12-10 22:40:26 +0100Topsi1(~Tobias@dyndsl-095-033-094-234.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2021-12-10 22:42:17 +0100 <sshine> maplike, I implemented an anamorphism in C# once: https://stackoverflow.com/questions/30844688/what-is-an-anamorphism-and-how-does-one-look-like-in-… -- there are two examples, one being the collatz tree from XKCD, and the other being a family tree.
2021-12-10 22:42:32 +0100InternetCitizen(~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
2021-12-10 22:42:58 +0100xff0x(~xff0x@2001:1a81:537e:3f00:6b1a:2a67:475e:9b5f) (Ping timeout: 260 seconds)
2021-12-10 22:43:38 +0100xff0x(~xff0x@2001:1a81:537e:3f00:56c7:e8a2:3a14:4d05)
2021-12-10 22:44:47 +0100 <sshine> I think I even called the accumulating function over trees "water" :-P
2021-12-10 22:46:21 +0100pfurla(~pfurla@2804:14d:5c81:4104:654d:199b:4253:3c19)
2021-12-10 22:47:44 +0100zardoz(~bc8147f2@cerf.good1.com)
2021-12-10 22:47:59 +0100 <maplike> sshine, that looks interesting thank you!
2021-12-10 22:48:28 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-12-10 22:48:56 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com)
2021-12-10 22:49:03 +0100 <maplike> I was think more of "here's how to implement somethinf (not factorial!, but equally short) using recursion, here it is with ana and cata, and then a hylo verion 1-liner
2021-12-10 22:49:06 +0100 <sshine> maplike, hmm, for hylo... I guess the wikipedia article suggests that fib(n) is a tree-isomorphic hylo. but maybe there are more involved examples.
2021-12-10 22:49:18 +0100dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3)
2021-12-10 22:51:28 +0100 <maplike> ... in Haskell, rather than how to implement ana and cata, or what they mean. fib(n) as tree-isomorphic hylo might be a good one to try
2021-12-10 22:51:33 +0100 <sshine> https://hackage.haskell.org/package/pointless-haskell-0.0.9/docs/Generics-Pointless-Examples-Examp… :P
2021-12-10 22:51:35 +0100smartin(~Thunderbi@88.135.18.171) (Ping timeout: 268 seconds)
2021-12-10 22:52:24 +0100 <maplike> OK< that has fibHylo
2021-12-10 22:52:47 +0100 <sshine> well... some of those seem a little hard to read.
2021-12-10 22:53:31 +0100 <maplike> the perl bits?
2021-12-10 22:53:34 +0100 <sshine> maplike, the idea, as far as I understand, is that the trivial fib(n) = fib(n-1) + fib(n-2) implementation *is* a hylomorphism.
2021-12-10 22:54:16 +0100 <sshine> maplike, because the call tree becomes the tree data structure that the anamorphism part would construct, and the catamorphism then destroys by traversal.
2021-12-10 22:54:23 +0100 <maplike> seems more like 2 anas
2021-12-10 22:54:36 +0100burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk)
2021-12-10 22:54:46 +0100 <sshine> maplike, nah, building a tree is unfolding, reducing the tree to a single number is folding.
2021-12-10 22:55:03 +0100 <maplike> yes, if you think in terms of trees, I see that
2021-12-10 22:55:22 +0100 <maerwald[m]> fibPF = (zero \/ (one \/ add)) . (bang -|- (bang -|- fibPF >< fibPF)) . (id -|- aux) . ((==0)?)
2021-12-10 22:55:39 +0100 <maerwald[m]> F... off? :)
2021-12-10 22:55:42 +0100 <sshine> but then the more efficient fib(n) that remembers the last two steps, is instead a hylomorphism for which the call tree is isomorphic to lists.
2021-12-10 22:55:54 +0100 <sshine> maerwald[m], that's how you code Haskall, right?
2021-12-10 22:56:14 +0100 <maerwald[m]> That's how you commit a crime
2021-12-10 22:56:47 +0100 <maplike> but at least you _can_ do it :D
2021-12-10 22:57:28 +0100 <maplike> sshine, that is the sort of insight and intuition I'm after
2021-12-10 22:57:45 +0100 <maplike> it even sort of makes sense
2021-12-10 22:58:24 +0100vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2021-12-10 22:58:41 +0100 <maerwald[m]> That's why haskell is nr. 2 on most disliked functional languages :p
2021-12-10 23:00:39 +0100 <sshine> maplike, one sec, I think I have an example of something.
2021-12-10 23:00:54 +0100 <maplike> still here
2021-12-10 23:01:18 +0100 <monochrom> Now I"m curious. Which are the other most disliked languages? For example nr.1 and nr.3?
2021-12-10 23:01:26 +0100burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 268 seconds)
2021-12-10 23:01:43 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-10 23:02:25 +0100 <sshine> monochrom, it's not actually true (according to StackOverflow's survey). probably because not enough people actually use it and come to dislike it.
2021-12-10 23:02:29 +0100 <sshine> https://appetiser.com.au/blog/the-most-loved-and-hated-programming-languages-according-to-develope…
2021-12-10 23:02:48 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-12-10 23:03:04 +0100 <sshine> 1. VBA, 2. Objective-C, 3. Assembly, 4. C, 5. PHP, 6. Erlang, 7. Ruby, 8. R, 9. C++, 10. Java.
2021-12-10 23:03:30 +0100 <monochrom> Ah thanks. Haha but what about "bad press is still better than no press"? >:)
2021-12-10 23:03:43 +0100 <sshine> I just don't get why anyone would hate on Erlang. I mean, how many people accidentally stumble into an Erlang job and feel forced to stay? I totally get why people would hate PHP because it's sort of the mud from which so many of us are born.
2021-12-10 23:04:05 +0100 <monochrom> VBA is very disliked but at least everyone still has to brag/lie "I know VBA" on their CVs.
2021-12-10 23:04:09 +0100shailangsa(~shailangs@host86-186-127-128.range86-186.btcentralplus.com)
2021-12-10 23:04:40 +0100 <monochrom> Whereas no one bothers to lie "I know Haskell".
2021-12-10 23:04:44 +0100 <sshine> I'd like about knowing VBA if I knew VBA. but at this point I'd just refuse to even confirm or deny.
2021-12-10 23:05:37 +0100 <sshine> lying about knowing Haskell is probably among the bloopers out there. like lying about speaking Chinese, and then your interviewer speaks fluent Chinese. (that happened to me, and I was only 6 months in, haha.)
2021-12-10 23:06:07 +0100 <monochrom> Yeah Erlang being up there is weird.
2021-12-10 23:06:50 +0100 <maplike> I thought everybody loved Ruby when it first came out
2021-12-10 23:06:50 +0100 <sshine> yeah. for Erlang, I feel like dislike is more like discomfort... knowing you have an awesome VM with a deprecated syntax, I'd feel more sorry than dislike. and probably enjoy it more than most other languages.
2021-12-10 23:07:12 +0100 <sshine> maplike, Ruby is Perl.
2021-12-10 23:08:54 +0100LiaoTao(~LiaoTao@gateway/tor-sasl/liaotao) (Ping timeout: 276 seconds)
2021-12-10 23:09:13 +0100mimmy(~mimmy@cpef81d0f857c83-cmf81d0f857c80.cpe.net.cable.rogers.com) (Ping timeout: 250 seconds)
2021-12-10 23:09:25 +0100 <monochrom> I don't think factorial fibonacci etc are good ways to learn catamorphism and anamorphism.
2021-12-10 23:09:37 +0100LiaoTao(~LiaoTao@gateway/tor-sasl/liaotao)
2021-12-10 23:09:41 +0100 <monochrom> Instead, initial algebras and final coalgebras.
2021-12-10 23:09:59 +0100 <sshine> maplike, so... I guess you could take any greedy algorithm implemented as a recursive function and regard it as a hylomorphism. e.g. the coin change problem.
2021-12-10 23:10:16 +0100 <earendel> no zebras?
2021-12-10 23:10:26 +0100 <sshine> cozebras
2021-12-10 23:10:45 +0100 <monochrom> Good examples of initial algebras are ADTs like "data IntList = Nil | Cons Int IntList" and "data IntTree = Leaf Int | Branch IntTree IntTree".
2021-12-10 23:11:10 +0100 <zardoz> heh, every single time I join (and that is rare), maerwald craps on haskell. he'd be banned in a different channel 1000 times already
2021-12-10 23:11:54 +0100 <geekosaur> thing is, maerwald maintains the primary way of *getting* haskell
2021-12-10 23:12:08 +0100 <monochrom> Unfortunately, or fortunately, he gave us ghcup. He has more than earned his stay.
2021-12-10 23:13:09 +0100 <geekosaur> also he's not the only one who thinks pointfree is fairly ugly
2021-12-10 23:13:26 +0100 <zardoz> as if that is the only thing he complains about
2021-12-10 23:14:08 +0100 <zardoz> monochrom, so if he didn't write that, he'd be banned?
2021-12-10 23:14:22 +0100 <maplike> sshine: what's the simplest example?
2021-12-10 23:14:38 +0100 <monochrom> Maybe after more incidents.
2021-12-10 23:14:40 +0100 <earendel> that fibonacci examples where meant as a joke.
2021-12-10 23:14:45 +0100 <geekosaur> he's also not the only one who thinks laziness by default has problems. he's provided examples of that
2021-12-10 23:14:49 +0100 <maplike> in terms of the unfold part
2021-12-10 23:15:55 +0100 <lbseale> I know VBA but I wouldn't want to put it on my resume, I don't want anyone asking me to write anything in it
2021-12-10 23:15:57 +0100 <earendel> like lazyloading?
2021-12-10 23:15:57 +0100 <sshine> maplike, the simplest example of what?
2021-12-10 23:16:47 +0100 <earendel> i knew if conversation nevers stops its on haskell
2021-12-10 23:16:54 +0100 <earendel> :p
2021-12-10 23:16:59 +0100 <sshine> maplike, https://rosettacode.org/wiki/Count_the_coins#Haskell -- here's a function that generates a tree-like call-stack. you could build it as an anamorphism that generates the tree, and a catamorphism that collapses it.
2021-12-10 23:17:17 +0100 <maplike> so, if we have a recursive solution based on a greedy algorithm,
2021-12-10 23:17:25 +0100 <earendel> a tree-like stack? who would want that?!
2021-12-10 23:17:42 +0100 <sshine> earendel, someone looking for an example of a non-trivial hylomorphism? :-P
2021-12-10 23:18:28 +0100 <maplike> that's a good example for my purposes
2021-12-10 23:18:30 +0100 <earendel> sshine: i would need a trivial one. for starters. also ana/cata
2021-12-10 23:18:41 +0100 <earendel> and cozebra
2021-12-10 23:19:54 +0100 <monochrom> A singly linked list is a very degenerate tree.
2021-12-10 23:20:32 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-12-10 23:20:39 +0100 <sshine> but is it retarded?
2021-12-10 23:20:48 +0100 <earendel> but stack is 1 dimension .. push and pop.. no?
2021-12-10 23:20:58 +0100 <maplike> fyi https://stackoverflow.com/a/69651010
2021-12-10 23:23:45 +0100 <sshine> maplike, ah yes. so this is for counting the number of distinct ways to give change. the related problem was finding a solution that involved the fewest coins.
2021-12-10 23:24:17 +0100 <sshine> where does the Algebra type constructor come from?
2021-12-10 23:24:38 +0100 <monochrom> Scrolling dow you'll find "type Algebra f a = f a -> a"
2021-12-10 23:24:46 +0100 <sshine> oh, they're just type aliases. thanks.
2021-12-10 23:24:54 +0100 <maplike> line 6
2021-12-10 23:25:04 +0100 <monochrom> Or scrolling up, I forgot.
2021-12-10 23:25:55 +0100 <sshine> maplike, the example might be a little confusing with the use of type aliases and arrow operators.
2021-12-10 23:26:51 +0100 <maplike> everybody pretends they don't use Arrows, but they seem to appear quite often.The VBS of abstractions?!
2021-12-10 23:26:55 +0100 <maplike> *VBA
2021-12-10 23:27:00 +0100 <monochrom> hee hee
2021-12-10 23:27:11 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net)
2021-12-10 23:27:59 +0100 <hpc> Arrow is to bash as Category is to sh
2021-12-10 23:28:13 +0100 <hpc> "this script is definitely posix"
2021-12-10 23:28:38 +0100 <hpc> if it didn't have arr it would be a great type class
2021-12-10 23:28:39 +0100 <monochrom> Technicality: >>> and <<< no longer require Arrow. They are from Category now.
2021-12-10 23:28:40 +0100 <geekosaur> I think the most commonly used parts are >>> <<< (reframings of composition) and first, second are just tuple twiddling
2021-12-10 23:28:43 +0100beka(~beka@104.193.170.240) (Ping timeout: 250 seconds)
2021-12-10 23:29:27 +0100 <monochrom> In this case, <<< is (.), >>> is flip(.). THE END.
2021-12-10 23:29:35 +0100 <maplike> I ended up using `&&&` last time I came here :D
2021-12-10 23:29:56 +0100 <geekosaur> % :t (&&&) @(->)
2021-12-10 23:29:57 +0100 <yahb> geekosaur: (b -> c) -> (b -> c') -> b -> (c, c')
2021-12-10 23:30:07 +0100 <geekosaur> more tuple twiddling :)
2021-12-10 23:30:26 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:30:28 +0100 <maplike> here as in freenode :)
2021-12-10 23:30:34 +0100 <geekosaur> I mostly avoid tuples so have little use for most of Arrow
2021-12-10 23:30:41 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:30:48 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:30:51 +0100lagash(lagash@lagash.shelltalk.net)
2021-12-10 23:31:01 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:31:09 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:31:10 +0100 <sshine> I only ever use arrow operators for tuples :P for functions I suppose the most sophisticated I do is applicative.
2021-12-10 23:31:10 +0100max22-(~maxime@2a01cb0883359800b0bf91f12c0fefae.ipv6.abo.wanadoo.fr) (Quit: Leaving)
2021-12-10 23:31:24 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:31:31 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:31:45 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:31:52 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:32:08 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:32:16 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:32:30 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:32:38 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:32:54 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:33:02 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:33:16 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:33:23 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:33:38 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:33:46 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:34:00 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:34:08 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:34:21 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:34:29 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:34:32 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-12-10 23:34:44 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:34:51 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:35:04 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:35:12 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:35:27 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:35:34 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:35:50 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:35:57 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:36:10 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 260 seconds)
2021-12-10 23:36:11 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:36:19 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:36:33 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:36:41 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:36:56 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:37:03 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:37:18 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:37:25 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:37:39 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:37:46 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:38:00 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:38:08 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:38:23 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:38:31 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:38:32 +0100CiaoSen(~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2021-12-10 23:38:48 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:38:51 +0100mc47(~mc47@xmonad/TheMC47) (Quit: Leaving)
2021-12-10 23:38:55 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:39:09 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:39:17 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:39:27 +0100 <maerwald[m]> sshine: wrong link
2021-12-10 23:39:31 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:39:39 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:39:39 +0100ChanServ+o geekosaur
2021-12-10 23:39:43 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-12-10 23:39:50 +0100geekosaur+b lavaman!*@*
2021-12-10 23:39:52 +0100 <maerwald[m]> https://scalac.io/ranking/functional-programming-languages-sentiment-ranking/
2021-12-10 23:40:17 +0100geekosaur-o geekosaur
2021-12-10 23:40:26 +0100CiaoSen(~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2021-12-10 23:40:32 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-12-10 23:40:42 +0100 <sshine> maerwald[m], makes sense! Haskell wouldn't be hated based on popularity, because people don't get pressured into using it.
2021-12-10 23:41:05 +0100 <maerwald[m]> Only purescript ranks worse. My hunch is that the reason is that both haskell and purescript constantly break stuff
2021-12-10 23:42:00 +0100mimmy(~mimmy@2607:fea8:6e0:7f90:2cc0:59c:7081:31f2)
2021-12-10 23:43:08 +0100 <sshine> ...and that they're actually languages people come into contact with.
2021-12-10 23:43:48 +0100 <sshine> who has anything bad to say about Idris? that's like saying something about the cryptocurrency you bought for Ethereum that you traded for Bitcoin... at that point, you only have yourself to blame if things don't work out. :-D
2021-12-10 23:44:14 +0100 <perro> it was called mazacoin and it's still a sore spot for some poeple
2021-12-10 23:44:36 +0100 <perro> are the differences significant?
2021-12-10 23:45:21 +0100 <monochrom> People can still hate something they themselves chose.
2021-12-10 23:45:55 +0100 <sshine> I think what's interesting about the "most negative" scale is actually the least negative ones: Kotlin, Elm, Elixir. they're significantly lower than all the others at >~10%.
2021-12-10 23:48:10 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-10 23:48:31 +0100 <monochrom> In the case of Haskell I would attribute to tooling.
2021-12-10 23:49:18 +0100 <sshine> and learning curve
2021-12-10 23:49:25 +0100 <monochrom> To be sure, none of us has data to support or refute any guess :)
2021-12-10 23:49:51 +0100 <sshine> I happen to have divine insight, but I can't prove it.
2021-12-10 23:50:10 +0100 <monochrom> I think of learning curve as a minor factor because, like, PHP and Python are not in the scope of the comparison, but OCaml is.
2021-12-10 23:50:34 +0100 <perro> soemthing like elm goes out of its way to be easy
2021-12-10 23:50:41 +0100 <dolio> Who was answering the poll?
2021-12-10 23:50:48 +0100 <perro> elixir does a similar job, and people are probablye xposed to it via phoenix which is very on the rails
2021-12-10 23:51:03 +0100 <sshine> dolio, it's based on analysing how people mention the languages, I think.
2021-12-10 23:51:04 +0100 <monochrom> Although, if you mean "learning curve for when to leverage or kill laziness" then yeah, but then I can still smugly blame it on profiling tools :)
2021-12-10 23:51:05 +0100burnsidesLlama(~burnsides@dhcp168-019.wadham.ox.ac.uk)
2021-12-10 23:51:15 +0100 <sshine> dolio, so something like scanning social media, I guess?
2021-12-10 23:51:15 +0100 <dolio> What people?
2021-12-10 23:52:05 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-10 23:52:23 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds)
2021-12-10 23:52:37 +0100 <monochrom> I think the page describes the methodology, but I didn't read it.
2021-12-10 23:53:12 +0100 <monochrom> And yeah I should go back to my Giry monad study instead of slashdotting this :)
2021-12-10 23:53:23 +0100 <maerwald[m]> 10% hate factor for clojure seems to be a methodology error
2021-12-10 23:53:27 +0100 <maerwald[m]> I don't but it
2021-12-10 23:53:34 +0100 <sshine> monochrom, right :) also, negative incentive towards Haskell (13.90%) vs. Rust (12.16%) is pretty close. having recently started to use Rust, I would have to say that being compared with that onboarding experience isn't bad at all.
2021-12-10 23:53:36 +0100 <maerwald[m]> It should be 80%
2021-12-10 23:54:01 +0100 <monochrom> Oh, I happen to know what I would hate about Rust. :)
2021-12-10 23:54:05 +0100 <maerwald[m]> Even clojure experts hate it
2021-12-10 23:54:37 +0100 <earendel> why would you be interested in such trivia?
2021-12-10 23:54:48 +0100 <maerwald[m]> Rust has better tooling, but nightly also constantly breaks stuff
2021-12-10 23:54:50 +0100 <sshine> maerwald[m], maybe the people who hate clojure are too ironic for their ranking algorithm to pick up.
2021-12-10 23:55:04 +0100ChanServ+o litharge
2021-12-10 23:55:04 +0100 <ystael> I used to be a clojure expert kinda ... the things I hated about it weren't its fault, they were its nature, so my fault for using it
2021-12-10 23:55:04 +0100litharge-bo lavaman!*@* litharge
2021-12-10 23:55:08 +0100 <maerwald[m]> I believe breaking changes is the primary factor for hate
2021-12-10 23:55:20 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:55:27 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:55:30 +0100 <maerwald[m]> Clojure doesn't bresk anything. There's no such thing as API in clojure
2021-12-10 23:55:35 +0100 <geekosaur> sigh
2021-12-10 23:55:41 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:55:45 +0100ChanServ+o geekosaur
2021-12-10 23:55:48 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:55:59 +0100 <earendel> second to being badly or never fucked at all?
2021-12-10 23:56:01 +0100lavaman(~lavaman@98.38.249.169)
2021-12-10 23:56:02 +0100geekosaur+b *!*@98.38.249.169
2021-12-10 23:56:04 +0100 <monochrom> Rust's borrow system is great for mundane industrial code, but I happened to choose a bad way to learn and practice Rust. I tried "let me code up a Haskellish recursive ADT in Rust". That didn't end well. It did give me much insight heh.
2021-12-10 23:56:09 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-10 23:56:24 +0100geekosaur-o geekosaur
2021-12-10 23:56:31 +0100 <perro> I get pretty far along in an applicaiton swith rust and realized how much time I'd spent doing trivial shit
2021-12-10 23:56:33 +0100 <maerwald[m]> You can though
2021-12-10 23:57:09 +0100 <perro> it's hard to get a feel for how something like lifetimes work iwithin a codebase without doing it
2021-12-10 23:57:33 +0100 <maerwald[m]> RefCell everything
2021-12-10 23:57:52 +0100 <maerwald[m]> I'm only half joking
2021-12-10 23:58:28 +0100 <earendel> i don't know.. better than having unchecked memcpy in openssh source in 2021
2021-12-10 23:59:33 +0100 <earendel> .. also please don't act as if you were afraid of rust being a gamechanger.
2021-12-10 23:59:49 +0100 <sshine> afraid?
2021-12-10 23:59:53 +0100 <maerwald[m]> Yes, one has to remember that "memory safety" in rust doesn't mean "your program never crashes", but "your program crashes safely... woll, unless. .."