2021-12-10 00:01:41 +0100 | lavaman | (~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 +0100 | jeetelongname | (~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 +0100 | emf | (~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 +0100 | nebu | (~user@user/wavion) (Ping timeout: 260 seconds) |
2021-12-10 00:12:50 +0100 | doyougnu | (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 252 seconds) |
2021-12-10 00:16:13 +0100 | Sgeo | (~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 +0100 | user01 | (~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 +0100 | ilkecan[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 +0100 | waleee | (~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 +0100 | burnsidesLlama | (~burnsides@dhcp168-015.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-12-10 00:28:15 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-10 00:30:51 +0100 | nebu | (~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 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.3) |
2021-12-10 00:35:58 +0100 | Midjak | (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Quit: Leaving) |
2021-12-10 00:41:33 +0100 | nebu | (~user@user/wavion) (Ping timeout: 250 seconds) |
2021-12-10 00:43:00 +0100 | nebu | (~user@user/wavion) |
2021-12-10 00:45:44 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:9808:86a6:acca:9c5) |
2021-12-10 00:48:26 +0100 | CiaoSen | (~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Quit: CiaoSen) |
2021-12-10 00:49:46 +0100 | nebu | (~user@user/wavion) (Ping timeout: 260 seconds) |
2021-12-10 00:49:49 +0100 | genieliu | (~genieliu@111.193.167.10) |
2021-12-10 00:51:27 +0100 | WilliamJ17 | (~WilliamJ@wireless-student-pt10-182-232.lut.ac.uk) (Quit: Client closed) |
2021-12-10 00:55:57 +0100 | CiaoSen | (~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 +0100 | son0p | (~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 +0100 | CiaoSen | (~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 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
2021-12-10 01:01:59 +0100 | jeetelongname | (~jeet@eduroam-public-20.nat.port.ac.uk) (Remote host closed the connection) |
2021-12-10 01:02:21 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-12-10 01:04:09 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-12-10 01:07:11 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2021-12-10 01:08:25 +0100 | genieliu | (~genieliu@111.193.167.10) (Ping timeout: 250 seconds) |
2021-12-10 01:11:53 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 250 seconds) |
2021-12-10 01:13:13 +0100 | user0 | (~aj@154.0.137.32) |
2021-12-10 01:14:20 +0100 | dsrt^ | (~dsrt@wsip-98-188-240-142.mc.at.cox.net) (Ping timeout: 265 seconds) |
2021-12-10 01:18:07 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Remote host closed the connection) |
2021-12-10 01:19:15 +0100 | Morrow | (~quassel@bzq-110-168-31-106.red.bezeqint.net) (Remote host closed the connection) |
2021-12-10 01:21:29 +0100 | burnsidesLlama | (~burnsides@dhcp168-015.wadham.ox.ac.uk) |
2021-12-10 01:21:51 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) (Ping timeout: 250 seconds) |
2021-12-10 01:21:57 +0100 | k60`` | (~user@static.100.218.46.78.clients.your-server.de) (Ping timeout: 252 seconds) |
2021-12-10 01:22:24 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-12-10 01:26:13 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 240 seconds) |
2021-12-10 01:26:37 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 240 seconds) |
2021-12-10 01:28:30 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2021-12-10 01:33:08 +0100 | ServerStatsDisco | (~serversta@2001:470:69fc:105::1a) (Quit: Client limit exceeded: 20000) |
2021-12-10 01:34:23 +0100 | puke | (~puke@user/puke) (Quit: puke) |
2021-12-10 01:40:37 +0100 | neverfindme | (~hayden@72.92.246.5) |
2021-12-10 01:41:09 +0100 | Pickchea | (~private@user/pickchea) (Ping timeout: 250 seconds) |
2021-12-10 01:41:34 +0100 | vicfred | (~vicfred@user/vicfred) (Quit: Leaving) |
2021-12-10 01:45:37 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::9788) |
2021-12-10 01:47:55 +0100 | puke | (~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 +0100 | ServerStatsDisco | (~serversta@2001:470:69fc:105::1a) |
2021-12-10 01:49:50 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 01:56:05 +0100 | acidjnk_new | (~acidjnk@pd9e0bdc0.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-12-10 01:56:07 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) (Remote host closed the connection) |
2021-12-10 01:58:13 +0100 | dsrt^ | (~dsrt@wsip-98-188-240-142.mc.at.cox.net) |
2021-12-10 01:58:17 +0100 | k60`` | (~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 +0100 | k60`` | (~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 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:25b5:2708:65a9:4e7d) (Quit: gone to sleep. ZZZzzz…) |
2021-12-10 02:06:42 +0100 | pretty_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 +0100 | pfurla | (~pfurla@201.17.118.230) |
2021-12-10 02:08:09 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-10 02:08:09 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-10 02:08:09 +0100 | wroathe | (~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 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 252 seconds) |
2021-12-10 02:12:55 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::9788) (Ping timeout: 252 seconds) |
2021-12-10 02:13:40 +0100 | Guest66 | (~textual@98.13.6.21) |
2021-12-10 02:15:40 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) |
2021-12-10 02:18:39 +0100 | neverfindme | (~hayden@72.92.246.5) (Quit: Leaving) |
2021-12-10 02:22:25 +0100 | doyougnu | (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) |
2021-12-10 02:28:35 +0100 | InternetCitizen | (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 250 seconds) |
2021-12-10 02:33:02 +0100 | jkaye | (~jkaye@2601:281:8300:7530:1cce:ad41:7c5b:4355) |
2021-12-10 02:33:08 +0100 | InternetCitizen | (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
2021-12-10 02:35:04 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) (Remote host closed the connection) |
2021-12-10 02:37:05 +0100 | Morrow | (~quassel@bzq-110-168-31-106.red.bezeqint.net) |
2021-12-10 02:44:08 +0100 | retroid_ | (~retro@05412d78.skybroadband.com) (Ping timeout: 268 seconds) |
2021-12-10 02:45:34 +0100 | xkuru | (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
2021-12-10 02:48:47 +0100 | user0 | (~aj@154.0.137.32) (Quit: Leaving.) |
2021-12-10 02:49:36 +0100 | user0 | (~aj@154.0.137.32) |
2021-12-10 02:51:08 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) |
2021-12-10 02:51:36 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-10 02:51:37 +0100 | user0 | (~aj@154.0.137.32) (Client Quit) |
2021-12-10 02:53:32 +0100 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-10 02:55:50 +0100 | bollu | (uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-10 02:58:09 +0100 | k60`` | (~user@static.100.218.46.78.clients.your-server.de) |
2021-12-10 02:59:00 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-10 03:01:15 +0100 | user0 | (~aj@154.0.137.32) |
2021-12-10 03:01:28 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::9788) |
2021-12-10 03:02:59 +0100 | user0 | (~aj@154.0.137.32) (Client Quit) |
2021-12-10 03:08:00 +0100 | burnsidesLlama | (~burnsides@dhcp168-015.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-12-10 03:09:00 +0100 | hololeap | (~hololeap@user/hololeap) (Ping timeout: 276 seconds) |
2021-12-10 03:11:29 +0100 | xff0x | (~xff0x@2001:1a81:5338:9c00:9209:5fa4:fe4c:a1bd) (Ping timeout: 250 seconds) |
2021-12-10 03:13:16 +0100 | xff0x | (~xff0x@2001:1a81:537e:3f00:97ca:7ac8:9d9f:cfb2) |
2021-12-10 03:14:22 +0100 | k60``` | (~user@94.25.169.9) |
2021-12-10 03:14:54 +0100 | InternetCitizen | (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 260 seconds) |
2021-12-10 03:16:32 +0100 | k60`` | (~user@static.100.218.46.78.clients.your-server.de) (Ping timeout: 256 seconds) |
2021-12-10 03:22:09 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 03:23:37 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 250 seconds) |
2021-12-10 03:26:44 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2021-12-10 03:32:13 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Ping timeout: 240 seconds) |
2021-12-10 03:32:14 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-10 03:32:14 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-10 03:32:14 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-10 03:32:49 +0100 | genieliu | (~genieliu@103.37.140.38) |
2021-12-10 03:33:32 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-10 03:43:02 +0100 | ubert1 | (~Thunderbi@p200300ecdf0ba2c03cbcafca2ab2631d.dip0.t-ipconnect.de) |
2021-12-10 03:44:34 +0100 | ubert | (~Thunderbi@p200300ecdf0ba2f664fe176011d10d59.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
2021-12-10 03:44:34 +0100 | ubert1 | ubert |
2021-12-10 03:45:12 +0100 | emf | (~emf@2603-6080-9403-11bf-0000-0000-0000-0007.res6.spectrum.com) |
2021-12-10 03:46:42 +0100 | ub1 | (~Thunderbi@p200300ecdf0ba2c0b11d357caa48ef17.dip0.t-ipconnect.de) |
2021-12-10 03:48:16 +0100 | ub | (~Thunderbi@p200300ecdf0ba2f69d45b59a7f50dcfc.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
2021-12-10 03:48:59 +0100 | ub1 | ub |
2021-12-10 03:49:01 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 240 seconds) |
2021-12-10 03:54:11 +0100 | alex[m]1 | (~alexchete@2001:470:69fc:105::1:1001) |
2021-12-10 03:54:11 +0100 | ManofLetters[m] | (~manoflett@2001:470:69fc:105::3be) |
2021-12-10 03:54:23 +0100 | fendor[m] | (~fendormat@2001:470:69fc:105::fcbd) |
2021-12-10 03:54:23 +0100 | DemiMarieObenour | (~alwayscur@2001:470:69fc:105::4886) |
2021-12-10 03:54:37 +0100 | ilkecan[m] | (~ilkecanma@2001:470:69fc:105::1:79b) |
2021-12-10 03:54:49 +0100 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) |
2021-12-10 03:54:49 +0100 | jinsun_ | (~jinsun@user/jinsun) |
2021-12-10 03:54:49 +0100 | surgeon[m] | (~surge9nma@2001:470:69fc:105::f585) |
2021-12-10 03:54:49 +0100 | tomku[m] | (~tomkumozi@2001:470:69fc:105::1:2fcb) |
2021-12-10 03:55:04 +0100 | fcortesi | (~fcortesi@2001:470:69fc:105::f3a9) |
2021-12-10 03:55:04 +0100 | utk | (~utk@2001:470:69fc:105::1:2fe0) |
2021-12-10 03:57:23 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 03:57:39 +0100 | xff0x | (~xff0x@2001:1a81:537e:3f00:97ca:7ac8:9d9f:cfb2) (Ping timeout: 250 seconds) |
2021-12-10 03:58:28 +0100 | xff0x | (~xff0x@2001:1a81:537e:3f00:d6d6:fa6f:b314:a474) |
2021-12-10 04:01:52 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2021-12-10 04:02:10 +0100 | emf | (~emf@2603-6080-9403-11bf-0000-0000-0000-0007.res6.spectrum.com) (Quit: emf) |
2021-12-10 04:02:50 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) |
2021-12-10 04:02:55 +0100 | jkaye | (~jkaye@2601:281:8300:7530:1cce:ad41:7c5b:4355) (Ping timeout: 252 seconds) |
2021-12-10 04:03:08 +0100 | emf | (~emf@2603-6080-9403-11bf-0000-0000-0000-0007.res6.spectrum.com) |
2021-12-10 04:08:27 +0100 | jeetelongname | (~jeet@eduroam-public-20.nat.port.ac.uk) |
2021-12-10 04:09:45 +0100 | std_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 +0100 | std_mutex[m] | (~stdmutexm@2001:470:69fc:105::1:4534) |
2021-12-10 04:10:43 +0100 | nunggu | (~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 +0100 | pfurla | (~pfurla@201.17.118.230) (Quit: gone to sleep. ZZZzzz…) |
2021-12-10 04:16:47 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2021-12-10 04:16:47 +0100 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2021-12-10 04:16:47 +0100 | finn_elija | FinnElija |
2021-12-10 04:18:18 +0100 | nfd | (~nfd@user/nfd) (Ping timeout: 256 seconds) |
2021-12-10 04:18:27 +0100 | emf | (~emf@2603-6080-9403-11bf-0000-0000-0000-0007.res6.spectrum.com) (Quit: emf) |
2021-12-10 04:20:14 +0100 | k60``` | (~user@94.25.169.9) (Ping timeout: 260 seconds) |
2021-12-10 04:20:29 +0100 | TheCoffeMaker | (~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 +0100 | td_ | (~td@muedsl-82-207-238-085.citykom.de) (Ping timeout: 240 seconds) |
2021-12-10 04:32:03 +0100 | td_ | (~td@94.134.91.156) |
2021-12-10 04:34:15 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-12-10 04:35:11 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Ping timeout: 252 seconds) |
2021-12-10 04:38:06 +0100 | Kevin578 | (~Kevin578@pool-96-237-112-198.bstnma.fios.verizon.net) (Read error: Connection reset by peer) |
2021-12-10 04:39:20 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) |
2021-12-10 04:42:10 +0100 | doyougnu | (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 260 seconds) |
2021-12-10 04:42:58 +0100 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat) |
2021-12-10 04:44:12 +0100 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) |
2021-12-10 04:48:41 +0100 | kimjetwav | (~user@2607:fea8:2363:8f00:5d2f:a515:1834:3924) |
2021-12-10 04:51:44 +0100 | k60``` | (~user@94.25.169.9) |
2021-12-10 04:52:52 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2021-12-10 04:54:49 +0100 | nfd | (~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 +0100 | k60``` | (~user@94.25.169.9) (Ping timeout: 256 seconds) |
2021-12-10 05:04:24 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-10 05:04:24 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-10 05:04:24 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-10 05:07:30 +0100 | shriekingnoise | (~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 +0100 | wroathe | (~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 +0100 | Topsi | (~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 +0100 | dsrt^ | (~dsrt@wsip-98-188-240-142.mc.at.cox.net) (Ping timeout: 250 seconds) |
2021-12-10 05:18:34 +0100 | genieliu | (~genieliu@103.37.140.38) (Ping timeout: 260 seconds) |
2021-12-10 05:19:01 +0100 | zebrag | (~chris@user/zebrag) (Ping timeout: 240 seconds) |
2021-12-10 05:19:54 +0100 | zebrag | (~chris@user/zebrag) |
2021-12-10 05:21:18 +0100 | fizbin | (~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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-10 05:30:32 +0100 | jeetelongname | (~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 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 268 seconds) |
2021-12-10 05:34:09 +0100 | k60``` | (~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 +0100 | k60``` | (~user@94.25.169.9) (Ping timeout: 260 seconds) |
2021-12-10 05:39:15 +0100 | Codaraxis | (~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 +0100 | xff0x | (~xff0x@2001:1a81:537e:3f00:d6d6:fa6f:b314:a474) (Ping timeout: 268 seconds) |
2021-12-10 05:43:42 +0100 | xff0x | (~xff0x@2001:1a81:537e:3f00:9578:51b0:7e3f:b293) |
2021-12-10 05:47:03 +0100 | genieliu | (~genieliu@103.37.140.38) |
2021-12-10 05:48:33 +0100 | Codaraxis_ | (~Codaraxis@user/codaraxis) |
2021-12-10 05:48:55 +0100 | user0 | (~aj@154.0.137.32) |
2021-12-10 05:51:11 +0100 | Codaraxis | (~Codaraxis@user/codaraxis) (Ping timeout: 250 seconds) |
2021-12-10 05:51:24 +0100 | Codaraxis_ | (~Codaraxis@user/codaraxis) (Remote host closed the connection) |
2021-12-10 05:51:49 +0100 | Codaraxis_ | (~Codaraxis@user/codaraxis) |
2021-12-10 05:55:26 +0100 | dsrt^ | (~dsrt@wsip-98-188-240-142.mc.at.cox.net) |
2021-12-10 05:55:52 +0100 | Axma33016 | (~Axman6@user/axman6) |
2021-12-10 05:58:02 +0100 | Axman6 | (~Axman6@user/axman6) (Ping timeout: 260 seconds) |
2021-12-10 06:01:32 +0100 | user01 | (~aj@154.0.137.32) |
2021-12-10 06:01:43 +0100 | user0 | (~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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-12-10 06:08:12 +0100 | fryguybob | (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) (Remote host closed the connection) |
2021-12-10 06:08:36 +0100 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2021-12-10 06:11:28 +0100 | awjchen | (~awjchen@node-1w7jr9y54rj7c0bzal2n5rlib.ipv6.telus.net) |
2021-12-10 06:13:02 +0100 | xff0x | (~xff0x@2001:1a81:537e:3f00:9578:51b0:7e3f:b293) (Ping timeout: 240 seconds) |
2021-12-10 06:13:12 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 268 seconds) |
2021-12-10 06:13:53 +0100 | xff0x | (~xff0x@2001:1a81:537e:3f00:d5b4:3c9d:ec95:16b3) |
2021-12-10 06:17:54 +0100 | Axma33016 | Axman6 |
2021-12-10 06:18:26 +0100 | dsrt^ | (~dsrt@wsip-98-188-240-142.mc.at.cox.net) (Ping timeout: 256 seconds) |
2021-12-10 06:27:00 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) |
2021-12-10 06:28:00 +0100 | hgolden | (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (Quit: Konversation terminated!) |
2021-12-10 06:29:52 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 06:29:57 +0100 | genieliu | (~genieliu@103.37.140.38) (Ping timeout: 252 seconds) |
2021-12-10 06:30:55 +0100 | hgolden | (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) |
2021-12-10 06:30:56 +0100 | Topsi1 | (~Tobias@dyndsl-095-033-094-234.ewe-ip-backbone.de) |
2021-12-10 06:31:25 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 252 seconds) |
2021-12-10 06:31:25 +0100 | Topsi | (~Tobias@dyndsl-095-033-020-172.ewe-ip-backbone.de) (Ping timeout: 252 seconds) |
2021-12-10 06:34:21 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
2021-12-10 06:37:49 +0100 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
2021-12-10 06:39:27 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-12-10 06:39:54 +0100 | kimjetwav | (~user@2607:fea8:2363:8f00:5d2f:a515:1834:3924) (Remote host closed the connection) |
2021-12-10 06:40:15 +0100 | kimjetwav | (~user@2607:fea8:2363:8f00:b66e:c3b4:4ab3:f161) |
2021-12-10 06:45:13 +0100 | awjchen | (~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 +0100 | ddb | (~ddb@ipv6two.tilde.club) (Quit: WeeChat 3.3) |
2021-12-10 06:53:52 +0100 | deadmarshal | (~deadmarsh@95.38.116.82) |
2021-12-10 06:58:43 +0100 | genieliu | (~genieliu@103.37.140.38) |
2021-12-10 06:59:00 +0100 | <jackdk> | you mean ACK |
2021-12-10 07:00:18 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) |
2021-12-10 07:00:44 +0100 | takuan | (~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 +0100 | mikoto-chan | (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Quit: mikoto-chan) |
2021-12-10 07:05:17 +0100 | sprout | (~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 +0100 | retroid_ | (~retro@05412d78.skybroadband.com) |
2021-12-10 07:15:00 +0100 | Codaraxis | (~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 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 07:17:11 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) |
2021-12-10 07:17:22 +0100 | Codaraxis_ | (~Codaraxis@user/codaraxis) (Ping timeout: 256 seconds) |
2021-12-10 07:21:39 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 268 seconds) |
2021-12-10 07:21:49 +0100 | Techcable | (~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 +0100 | slowButPresent | (~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 +0100 | chomwitt | (~chomwitt@2a02:587:dc0d:3700:12c3:7bff:fe6d:d374) |
2021-12-10 07:29:42 +0100 | deadmarshal | (~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 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) |
2021-12-10 07:34:51 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 252 seconds) |
2021-12-10 07:36:26 +0100 | k60``` | (~user@94.25.169.9) |
2021-12-10 07:38:54 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 268 seconds) |
2021-12-10 07:41:22 +0100 | k60``` | (~user@94.25.169.9) (Ping timeout: 268 seconds) |
2021-12-10 07:43:37 +0100 | genieliu | (~genieliu@103.37.140.38) (Ping timeout: 250 seconds) |
2021-12-10 07:43:50 +0100 | hololeap | (~hololeap@user/hololeap) |
2021-12-10 07:46:46 +0100 | hololeap | (~hololeap@user/hololeap) (Remote host closed the connection) |
2021-12-10 07:48:06 +0100 | hololeap | (~hololeap@user/hololeap) |
2021-12-10 07:54:12 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2021-12-10 07:55:30 +0100 | genieliu | (~genieliu@103.37.140.24) |
2021-12-10 07:57:54 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-10 08:00:15 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-10 08:02:36 +0100 | deadmarshal | (~deadmarsh@95.38.116.82) |
2021-12-10 08:05:22 +0100 | michalz | (~michalz@185.246.204.61) |
2021-12-10 08:05:26 +0100 | genieliu | (~genieliu@103.37.140.24) (Ping timeout: 268 seconds) |
2021-12-10 08:06:18 +0100 | curiousgay | (~curiousga@77-120-141-90.kha.volia.net) |
2021-12-10 08:07:02 +0100 | deadmarshal | (~deadmarsh@95.38.116.82) (Ping timeout: 260 seconds) |
2021-12-10 08:08:49 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) |
2021-12-10 08:09:01 +0100 | dwt_ | (~dwt_@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 240 seconds) |
2021-12-10 08:09:33 +0100 | genieliu | (~genieliu@103.37.140.38) |
2021-12-10 08:09:50 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-10 08:10:49 +0100 | deadmarshal | (~deadmarsh@95.38.116.82) |
2021-12-10 08:14:05 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 252 seconds) |
2021-12-10 08:19:36 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 268 seconds) |
2021-12-10 08:27:08 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) |
2021-12-10 08:29:30 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:25b5:2708:65a9:4e7d) |
2021-12-10 08:31:31 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 250 seconds) |
2021-12-10 08:32:02 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2021-12-10 08:32:17 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2021-12-10 08:33:05 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:9c45:ef7f:f3cf:1dd6) |
2021-12-10 08:33:47 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2021-12-10 08:34:15 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-12-10 08:34:45 +0100 | hololeap | (~hololeap@user/hololeap) (Remote host closed the connection) |
2021-12-10 08:36:04 +0100 | hololeap | (~hololeap@user/hololeap) |
2021-12-10 08:38:11 +0100 | hololeap | (~hololeap@user/hololeap) (Client Quit) |
2021-12-10 08:38:26 +0100 | hololeap | (~hololeap@user/hololeap) |
2021-12-10 08:39:59 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-12-10 08:41:37 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) |
2021-12-10 08:41:51 +0100 | mncheck | (~mncheck@193.224.205.254) |
2021-12-10 08:42:18 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-10 08:42:39 +0100 | bollu | (uid233390@id-233390.helmsley.irccloud.com) |
2021-12-10 08:43:24 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-10 08:43:43 +0100 | featurebug | (~Username@49.205.122.91) |
2021-12-10 08:44:42 +0100 | jakalx | (~jakalx@base.jakalx.net) () |
2021-12-10 08:44:50 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 260 seconds) |
2021-12-10 08:51:24 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2021-12-10 08:56:03 +0100 | x88x88x | (~x88x88x@149.28.53.172) (Remote host closed the connection) |
2021-12-10 08:56:21 +0100 | kennyd | (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Session timeout)) |
2021-12-10 08:58:05 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::9788) (Ping timeout: 252 seconds) |
2021-12-10 08:58:37 +0100 | x88x88x | (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb) |
2021-12-10 09:00:21 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) (Remote host closed the connection) |
2021-12-10 09:00:45 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) |
2021-12-10 09:01:59 +0100 | featurebug | (~Username@49.205.122.91) (Quit: Going offline, see ya! (www.adiirc.com)) |
2021-12-10 09:02:59 +0100 | curiousgay | (~curiousga@77-120-141-90.kha.volia.net) (Quit: Leaving) |
2021-12-10 09:03:15 +0100 | hololeap | (~hololeap@user/hololeap) (Ping timeout: 276 seconds) |
2021-12-10 09:05:52 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 268 seconds) |
2021-12-10 09:05:55 +0100 | x88x88x | (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb) (Remote host closed the connection) |
2021-12-10 09:06:06 +0100 | vpan | (~0@212.117.1.172) |
2021-12-10 09:07:03 +0100 | user01 | (~aj@154.0.137.32) () |
2021-12-10 09:10:37 +0100 | x88x88x | (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb) |
2021-12-10 09:14:17 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-12-10 09:18:17 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) |
2021-12-10 09:22:51 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 250 seconds) |
2021-12-10 09:23:23 +0100 | Techcable | (~Techcable@168.235.93.147) |
2021-12-10 09:23:44 +0100 | dwt_ | (~dwt_@c-98-198-103-176.hsd1.tx.comcast.net) |
2021-12-10 09:25:04 +0100 | chele | (~chele@user/chele) |
2021-12-10 09:27:16 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-12-10 09:28:01 +0100 | Pickchea | (~private@user/pickchea) |
2021-12-10 09:36:10 +0100 | deadmarshal | (~deadmarsh@95.38.116.82) (Ping timeout: 260 seconds) |
2021-12-10 09:41:21 +0100 | deadmarshal | (~deadmarsh@95.38.116.82) |
2021-12-10 09:44:23 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) |
2021-12-10 09:44:52 +0100 | notzmv | (~zmv@user/notzmv) |
2021-12-10 09:51:44 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) |
2021-12-10 09:55:35 +0100 | acidjnk_new | (~acidjnk@p200300d0c7271e96496b0bacdae081f8.dip0.t-ipconnect.de) |
2021-12-10 09:56:42 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 260 seconds) |
2021-12-10 09:59:05 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-10 10:00:05 +0100 | cfricke | (~cfricke@user/cfricke) |
2021-12-10 10:00:20 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-12-10 10:00:46 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) |
2021-12-10 10:01:09 +0100 | k60``` | (~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 +0100 | eggplantade | (~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 +0100 | sprout | (~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 +0100 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-12-10 10:17:34 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-12-10 10:17:37 +0100 | allbery_b | geekosaur |
2021-12-10 10:19:15 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 268 seconds) |
2021-12-10 10:23:55 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-12-10 10:29:22 +0100 | genieliu | (~genieliu@103.37.140.38) (Ping timeout: 260 seconds) |
2021-12-10 10:32:57 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) |
2021-12-10 10:34:03 +0100 | genieliu | (~genieliu@103.37.140.24) |
2021-12-10 10:35:03 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-12-10 10:36:42 +0100 | mstruebing | (~maex@2001:41d0:8:93c7::1) (Read error: Connection reset by peer) |
2021-12-10 10:37:32 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 240 seconds) |
2021-12-10 10:38:03 +0100 | deadmarshal | (~deadmarsh@95.38.116.82) (Ping timeout: 250 seconds) |
2021-12-10 10:38:37 +0100 | vgtw | (~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se) (Ping timeout: 240 seconds) |
2021-12-10 10:42:54 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 260 seconds) |
2021-12-10 10:43:33 +0100 | deadmarshal | (~deadmarsh@95.38.116.82) |
2021-12-10 10:47:47 +0100 | deadmarshal | (~deadmarsh@95.38.116.82) (Ping timeout: 250 seconds) |
2021-12-10 10:48:18 +0100 | teo | (~teo@user/teo) |
2021-12-10 10:48:37 +0100 | CiaoSen | (~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2021-12-10 10:49:09 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) |
2021-12-10 10:49:58 +0100 | vgtw | (~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se) |
2021-12-10 10:53:01 +0100 | ptrcmd | (~ptrcmd@user/ptrcmd) (Remote host closed the connection) |
2021-12-10 10:54:23 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 268 seconds) |
2021-12-10 11:00:29 +0100 | son0p | (~ff@2800:484:1d81:b700:d40b:900:b387:320) |
2021-12-10 11:02:51 +0100 | deadmarshal | (~deadmarsh@95.38.116.82) |
2021-12-10 11:04:45 +0100 | cosimone | (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) |
2021-12-10 11:05:16 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) |
2021-12-10 11:05:50 +0100 | puke | (~puke@user/puke) (Read error: Connection reset by peer) |
2021-12-10 11:06:04 +0100 | puke | (~puke@user/puke) |
2021-12-10 11:06:25 +0100 | k60``` | (~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 +0100 | sprout | (~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 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds) |
2021-12-10 11:11:14 +0100 | Lord_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 +0100 | tzh | (~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 +0100 | zaquest | (~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 +0100 | zaquest | (~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 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) |
2021-12-10 11:21:35 +0100 | gehmehgeh | (~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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-10 11:22:48 +0100 | gehmehgeh | (~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 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2021-12-10 11:25:50 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 260 seconds) |
2021-12-10 11:27:05 +0100 | Pickchea | (~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 +0100 | genieliu | (~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 +0100 | Erutuon | (~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 +0100 | sprout | (~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 +0100 | ProfSimm | (~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 +0100 | tromp | (~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 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 268 seconds) |
2021-12-10 11:43:57 +0100 | vgtw | (~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se) (Quit: ZNC - https://znc.in) |
2021-12-10 11:44:12 +0100 | mmhat | (~mmh@55d44db9.access.ecotel.net) |
2021-12-10 11:51:04 +0100 | jonathanx | (~jonathan@dyn-2-sc.cdg.chalmers.se) |
2021-12-10 11:51:23 +0100 | vgtw | (~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 +0100 | vgtw | (~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se) (Client Quit) |
2021-12-10 11:55:18 +0100 | sprout | (~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 +0100 | merijn | (~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 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 250 seconds) |
2021-12-10 12:00:50 +0100 | merijn | (~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 +0100 | pfurla | (~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 +0100 | Pickchea | (~private@user/pickchea) |
2021-12-10 12:08:51 +0100 | phma | (~phma@host-67-44-209-94.hnremote.net) (Read error: Connection reset by peer) |
2021-12-10 12:10:02 +0100 | phma | (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 +0100 | sprout | (~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 +0100 | CiaoSen | (~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-12-10 12:16:25 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 268 seconds) |
2021-12-10 12:16:28 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 12:18:53 +0100 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2021-12-10 12:20:54 +0100 | lavaman | (~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 +0100 | k60``` | (~user@94.25.169.9) |
2021-12-10 12:29:24 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) |
2021-12-10 12:34:18 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) (Ping timeout: 268 seconds) |
2021-12-10 12:34:19 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-12-10 12:38:24 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Ping timeout: 276 seconds) |
2021-12-10 12:39:02 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2021-12-10 12:41:10 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) |
2021-12-10 12:42:08 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-12-10 12:44:37 +0100 | Codaraxis | (~Codaraxis@user/codaraxis) (Remote host closed the connection) |
2021-12-10 12:45:22 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-10 12:46:37 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 268 seconds) |
2021-12-10 12:48:24 +0100 | kupi | (uid212005@id-212005.hampstead.irccloud.com) |
2021-12-10 12:57:18 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2021-12-10 13:01:32 +0100 | jonathanx | (~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 +0100 | sweater | (~sweater@206.81.18.26) (Remote host closed the connection) |
2021-12-10 13:09:29 +0100 | sweater | (~sweater@206.81.18.26) |
2021-12-10 13:12:54 +0100 | abrantesasf | (~abrantesa@187.36.170.211) |
2021-12-10 13:13:48 +0100 | sweater | (~sweater@206.81.18.26) (Client Quit) |
2021-12-10 13:13:59 +0100 | sweater | (~sweater@206.81.18.26) |
2021-12-10 13:14:29 +0100 | sweater | (~sweater@206.81.18.26) (Client Quit) |
2021-12-10 13:14:42 +0100 | sweater | (~sweater@206.81.18.26) |
2021-12-10 13:18:47 +0100 | Jing | (~hedgehog@2604:a840:3::1001) |
2021-12-10 13:20:23 +0100 | alx741 | (~alx741@186.178.108.192) |
2021-12-10 13:21:10 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-10 13:22:25 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2021-12-10 13:27:52 +0100 | vgtw | (~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se) |
2021-12-10 13:31:52 +0100 | xkuru | (~xkuru@user/xkuru) |
2021-12-10 13:36:23 +0100 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
2021-12-10 13:36:44 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) |
2021-12-10 13:37:51 +0100 | alx741 | (~alx741@186.178.108.192) (Ping timeout: 252 seconds) |
2021-12-10 13:40:53 +0100 | k60``` | (~user@94.25.169.9) (Ping timeout: 268 seconds) |
2021-12-10 13:41:53 +0100 | dsrt^ | (~dsrt@wsip-98-188-240-142.mc.at.cox.net) |
2021-12-10 13:47:37 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Quit: Client closed) |
2021-12-10 13:48:48 +0100 | mncheck | (~mncheck@193.224.205.254) (Remote host closed the connection) |
2021-12-10 13:53:15 +0100 | deadmarshal | (~deadmarsh@95.38.116.82) (Ping timeout: 252 seconds) |
2021-12-10 13:53:46 +0100 | deadmarshal | (~deadmarsh@95.38.116.82) |
2021-12-10 13:53:51 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2021-12-10 14:00:26 +0100 | xkuru | (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
2021-12-10 14:01:11 +0100 | genieliu | (~genieliu@111.193.167.10) |
2021-12-10 14:02:10 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 260 seconds) |
2021-12-10 14:03:13 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) (Ping timeout: 250 seconds) |
2021-12-10 14:06:37 +0100 | xkuru | (~xkuru@user/xkuru) |
2021-12-10 14:08:38 +0100 | xff0x | (~xff0x@2001:1a81:537e:3f00:d5b4:3c9d:ec95:16b3) (Ping timeout: 268 seconds) |
2021-12-10 14:09:01 +0100 | genieliu | (~genieliu@111.193.167.10) (Ping timeout: 252 seconds) |
2021-12-10 14:09:16 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds) |
2021-12-10 14:09:41 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-12-10 14:10:05 +0100 | Akiva | (~Akiva@user/Akiva) (Ping timeout: 265 seconds) |
2021-12-10 14:11:59 +0100 | genieliu | (~genieliu@111.193.167.10) |
2021-12-10 14:14:06 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-12-10 14:15:05 +0100 | xff0x | (~xff0x@2001:1a81:537e:3f00:d5b4:3c9d:ec95:16b3) |
2021-12-10 14:17:18 +0100 | k60``` | (~user@94.25.169.9) |
2021-12-10 14:17:21 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 14:19:36 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-12-10 14:21:46 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 260 seconds) |
2021-12-10 14:23:28 +0100 | Morrow | (~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 +0100 | slowButPresent | (~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 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-12-10 14:28:46 +0100 | deadmarshal | (~deadmarsh@95.38.116.82) (Ping timeout: 260 seconds) |
2021-12-10 14:31:35 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Quit: Leaving) |
2021-12-10 14:31:38 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:e582:2d42:b0b2:720b) |
2021-12-10 14:33:09 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-12-10 14:33:11 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-12-10 14:37:44 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-12-10 14:38:30 +0100 | alx741 | (~alx741@186.178.108.192) |
2021-12-10 14:38:35 +0100 | ddb | (~ddb@ipv6two.tilde.club) |
2021-12-10 14:39:50 +0100 | deadmarshal | (~deadmarsh@95.38.116.82) |
2021-12-10 14:40:35 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.3) |
2021-12-10 14:40:56 +0100 | shriekingnoise | (~shrieking@186.137.144.80) |
2021-12-10 14:40:58 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2021-12-10 14:47:08 +0100 | genieliu | (~genieliu@111.193.167.10) (Quit: Lost terminal) |
2021-12-10 14:47:08 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-12-10 14:47:45 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:654d:199b:4253:3c19) |
2021-12-10 14:48:10 +0100 | sluigi | (~sluigi@18.31.9.184) |
2021-12-10 14:49:38 +0100 | merijn | (~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 +0100 | cosimone` | (~user@93-47-230-227.ip115.fastwebnet.it) |
2021-12-10 14:52:40 +0100 | cosimone | (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) (Quit: ERC (IRC client for Emacs 27.1)) |
2021-12-10 14:54:01 +0100 | max22- | (~maxime@2a01cb0883359800d7eef028cd7b4d10.ipv6.abo.wanadoo.fr) |
2021-12-10 14:56:59 +0100 | timCF | (~timCF@m91-129-100-224.cust.tele2.ee) |
2021-12-10 14:57:43 +0100 | emf | (~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 +0100 | max22- | (~maxime@2a01cb0883359800d7eef028cd7b4d10.ipv6.abo.wanadoo.fr) (Ping timeout: 260 seconds) |
2021-12-10 15:01:05 +0100 | xsperry | (~xs@user/xsperry) (Remote host closed the connection) |
2021-12-10 15:01:57 +0100 | sluigi | (~sluigi@18.31.9.184) (Ping timeout: 256 seconds) |
2021-12-10 15:02:54 +0100 | emf | (~emf@2603-6080-9403-11bf-0000-0000-0000-0007.res6.spectrum.com) (Ping timeout: 268 seconds) |
2021-12-10 15:03:07 +0100 | sayola | (~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 +0100 | emf | (~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 +0100 | eggplantade | (~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 +0100 | jkaye | (~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 +0100 | acidjnk_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 +0100 | kupi | (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-10 15:10:15 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) (Ping timeout: 252 seconds) |
2021-12-10 15:12:39 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-12-10 15:14:12 +0100 | timCF | (~timCF@m91-129-100-224.cust.tele2.ee) (Quit: leaving) |
2021-12-10 15:15:41 +0100 | abrantesasf | (~abrantesa@187.36.170.211) (Remote host closed the connection) |
2021-12-10 15:18:04 +0100 | abrantesasf | (~abrantesa@187.36.170.211) |
2021-12-10 15:19:29 +0100 | dsrt^ | (~dsrt@wsip-98-188-240-142.mc.at.cox.net) (Ping timeout: 250 seconds) |
2021-12-10 15:23:23 +0100 | ub1 | (~Thunderbi@p548c998b.dip0.t-ipconnect.de) |
2021-12-10 15:23:24 +0100 | ubert1 | (~Thunderbi@p200300ecdf1abb7bed76e28c4fd34537.dip0.t-ipconnect.de) |
2021-12-10 15:23:37 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-12-10 15:24:46 +0100 | ub | (~Thunderbi@p200300ecdf0ba2c0b11d357caa48ef17.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2021-12-10 15:25:14 +0100 | ubert | (~Thunderbi@p200300ecdf0ba2c03cbcafca2ab2631d.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2021-12-10 15:25:14 +0100 | ub1 | ubert |
2021-12-10 15:31:31 +0100 | neverfindme | (~hayden@158.123.160.43) |
2021-12-10 15:34:37 +0100 | abrantesasf | (~abrantesa@187.36.170.211) (Read error: Connection reset by peer) |
2021-12-10 15:34:37 +0100 | Jing | (~hedgehog@2604:a840:3::1001) (Remote host closed the connection) |
2021-12-10 15:36:40 +0100 | chele | (~chele@user/chele) (Quit: Leaving) |
2021-12-10 15:38:52 +0100 | Jing | (~hedgehog@2604:a840:3::1001) |
2021-12-10 15:39:22 +0100 | kupi | (uid212005@id-212005.hampstead.irccloud.com) |
2021-12-10 15:40:05 +0100 | fryguybob | (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) |
2021-12-10 15:43:22 +0100 | abrantesasf | (~abrantesa@187.36.170.211) |
2021-12-10 15:43:42 +0100 | abrantesasf | (~abrantesa@187.36.170.211) (Remote host closed the connection) |
2021-12-10 15:48:16 +0100 | dsrt^ | (~dsrt@wsip-98-188-240-142.mc.at.cox.net) |
2021-12-10 15:50:32 +0100 | vpan | (~0@212.117.1.172) (Ping timeout: 240 seconds) |
2021-12-10 15:55:42 +0100 | max22- | (~maxime@2a01cb0883359800942e2037ffd67664.ipv6.abo.wanadoo.fr) |
2021-12-10 16:01:22 +0100 | Jing | (~hedgehog@2604:a840:3::1001) (Remote host closed the connection) |
2021-12-10 16:01:24 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-12-10 16:01:24 +0100 | maplike | (~maplike@31.209.100.216) |
2021-12-10 16:01:42 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:9c45:ef7f:f3cf:1dd6) (Quit: WeeChat 2.8) |
2021-12-10 16:01:57 +0100 | Jing | (~hedgehog@2604:a840:3::1001) |
2021-12-10 16:04:26 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:654d:199b:4253:3c19) (Quit: gone to sleep. ZZZzzz…) |
2021-12-10 16:05:56 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-12-10 16:06:53 +0100 | xsperry | (~xs@user/xsperry) |
2021-12-10 16:08:11 +0100 | mimmy | (~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 +0100 | alx741 | (~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 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds) |
2021-12-10 16:17:01 +0100 | raehik | (~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 +0100 | alx741 | (~alx741@186.178.109.174) |
2021-12-10 16:24:01 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2021-12-10 16:24:32 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-12-10 16:26:48 +0100 | nickdaly-away | nickdaly |
2021-12-10 16:26:53 +0100 | ph88 | (~ph88@ip5f5af068.dynamic.kabel-deutschland.de) (Quit: Leaving) |
2021-12-10 16:27:44 +0100 | fr33domlover | (~fr33@2.55.41.192) |
2021-12-10 16:28:14 +0100 | alx741 | (~alx741@186.178.109.174) (Ping timeout: 260 seconds) |
2021-12-10 16:28:29 +0100 | InternetCitizen | (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
2021-12-10 16:31:02 +0100 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.3) |
2021-12-10 16:31:42 +0100 | EvanR | (~evan@user/evanr) (Remote host closed the connection) |
2021-12-10 16:31:59 +0100 | EvanR | (~evan@2600:1700:ba69:10:1e6b:60f7:fab1:30bf) |
2021-12-10 16:32:17 +0100 | EvanR | (~evan@2600:1700:ba69:10:1e6b:60f7:fab1:30bf) (Changing host) |
2021-12-10 16:32:17 +0100 | EvanR | (~evan@user/evanr) |
2021-12-10 16:32:43 +0100 | mimmy_ | (~mimmy@66.115.145.34) |
2021-12-10 16:33:07 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:9808:86a6:acca:9c5) (Ping timeout: 252 seconds) |
2021-12-10 16:33:32 +0100 | mimmy | (~mimmy@184.94.118.194) (Ping timeout: 240 seconds) |
2021-12-10 16:34:39 +0100 | Guest|14 | (~Guest|14@201-43-221-14.dsl.telesp.net.br) |
2021-12-10 16:34:49 +0100 | doyougnu | (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) |
2021-12-10 16:34:54 +0100 | Guest|14 | (~Guest|14@201-43-221-14.dsl.telesp.net.br) (Client Quit) |
2021-12-10 16:35:02 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:f0cf:5664:8ee5:8e87) |
2021-12-10 16:37:43 +0100 | mimmy_ | (~mimmy@66.115.145.34) (Ping timeout: 250 seconds) |
2021-12-10 16:39:02 +0100 | mimmy_ | (~mimmy@184.94.118.194) |
2021-12-10 16:40:47 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3) |
2021-12-10 16:41:51 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-10 16:41:56 +0100 | Vajb | (~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 +0100 | neverfindme | (~hayden@158.123.160.43) (Ping timeout: 250 seconds) |
2021-12-10 16:49:00 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) |
2021-12-10 16:51:26 +0100 | neverfindme | (~hayden@158.123.160.43) |
2021-12-10 16:51:26 +0100 | neverfindme | (~hayden@158.123.160.43) (Remote host closed the connection) |
2021-12-10 16:51:43 +0100 | neverfindme | (~hayden@158.123.160.43) |
2021-12-10 16:59:20 +0100 | zincy_ | (~zincy@host86-151-99-97.range86-151.btcentralplus.com) |
2021-12-10 16:59:48 +0100 | abrantesasf | (~abrantesa@187.36.170.211) |
2021-12-10 17:00:14 +0100 | ptrcmd | (~ptrcmd@user/ptrcmd) |
2021-12-10 17:03:09 +0100 | zincy_ | (~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 +0100 | timCF | (~timCF@m91-129-100-224.cust.tele2.ee) |
2021-12-10 17:19:10 +0100 | dsrt^ | (~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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-10 17:20:58 +0100 | darchite` | (~user@2a00:23c6:3584:df00:7dec:bf13:8fa:748c) |
2021-12-10 17:22:06 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-10 17:22:58 +0100 | ubert1 | (~Thunderbi@p200300ecdf1abb7bed76e28c4fd34537.dip0.t-ipconnect.de) (Remote host closed the connection) |
2021-12-10 17:23:59 +0100 | tromp | (~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 +0100 | eggplantade | (~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 +0100 | lortabac | (~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 +0100 | dsrt^ | (~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 +0100 | PotatoHatsue | (~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 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) |
2021-12-10 17:43:52 +0100 | oats | (~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 +0100 | oats | (~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 +0100 | cosimone` | (~user@93-47-230-227.ip115.fastwebnet.it) (Ping timeout: 250 seconds) |
2021-12-10 17:47:18 +0100 | smartin | (~Thunderbi@88.135.18.171) |
2021-12-10 17:47:30 +0100 | cosimone` | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) |
2021-12-10 17:47:45 +0100 | oats | (~thomas@user/oats) (Client Quit) |
2021-12-10 17:48:03 +0100 | oats | (~thomas@user/oats) |
2021-12-10 17:50:45 +0100 | oats | (~thomas@user/oats) (Client Quit) |
2021-12-10 17:51:14 +0100 | oats | (~thomas@user/oats) |
2021-12-10 17:51:28 +0100 | oats | (~thomas@user/oats) (Remote host closed the connection) |
2021-12-10 17:51:51 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-12-10 17:51:52 +0100 | oats | (~thomas@user/oats) |
2021-12-10 17:53:11 +0100 | oats | (~thomas@user/oats) (Client Quit) |
2021-12-10 17:54:10 +0100 | <Franciman> | see you! |
2021-12-10 17:54:12 +0100 | Franciman | (~Franciman@mx1.fracta.dev) (WeeChat 3.3) |
2021-12-10 17:54:37 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-12-10 17:55:57 +0100 | oats | (~thomas@user/oats) |
2021-12-10 17:56:48 +0100 | cosimone` | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Ping timeout: 268 seconds) |
2021-12-10 17:57:04 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-12-10 17:59:10 +0100 | <oats> | https://nitter.net/GabriellaG439/status/1465908026662010882 |
2021-12-10 18:01:07 +0100 | emf | (~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 +0100 | dsrt^ | (~dsrt@wsip-98-188-240-142.mc.at.cox.net) (Remote host closed the connection) |
2021-12-10 18:04:02 +0100 | abrantesasf | (~abrantesa@187.36.170.211) (Remote host closed the connection) |
2021-12-10 18:04:11 +0100 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
2021-12-10 18:04:11 +0100 | lavaman | (~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 +0100 | merijn | (~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 +0100 | lavaman | (~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 +0100 | shriekingnoise | (~shrieking@186.137.144.80) (Remote host closed the connection) |
2021-12-10 18:16:58 +0100 | shriekingnoise | (~shrieking@186.137.144.80) |
2021-12-10 18:17:47 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds) |
2021-12-10 18:17:50 +0100 | phma | (phma@2001:5b0:2172:c188:a9eb:c095:74b0:11cc) (Read error: Connection reset by peer) |
2021-12-10 18:17:51 +0100 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-12-10 18:18:10 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) |
2021-12-10 18:19:15 +0100 | phma | (phma@2001:5b0:210f:6be8:16f7:aafd:70ba:5696) |
2021-12-10 18:19:39 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-12-10 18:21:03 +0100 | Pickchea | (~private@user/pickchea) |
2021-12-10 18:22:28 +0100 | alx741 | (~alx741@157.100.93.160) (Quit: alx741) |
2021-12-10 18:23:38 +0100 | alx741 | (~alx741@181.199.42.79) |
2021-12-10 18:24:22 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-12-10 18:27:38 +0100 | xff0x | (~xff0x@2001:1a81:537e:3f00:d5b4:3c9d:ec95:16b3) (Ping timeout: 268 seconds) |
2021-12-10 18:27:48 +0100 | k60``` | (~user@94.25.169.9) (Remote host closed the connection) |
2021-12-10 18:28:04 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:7701:94ac:10aa:c878) (Quit: WeeChat 2.8) |
2021-12-10 18:28:25 +0100 | xff0x | (~xff0x@2001:1a81:537e:3f00:6b1a:2a67:475e:9b5f) |
2021-12-10 18:29:05 +0100 | k60``` | (~user@static.100.218.46.78.clients.your-server.de) |
2021-12-10 18:30:07 +0100 | nvmd | (~nvmd@user/nvmd) |
2021-12-10 18:32:23 +0100 | Guest66 | (~textual@98.13.6.21) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-12-10 18:32:58 +0100 | CiaoSen | (~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2021-12-10 18:34:22 +0100 | Guest66 | (~textual@98.13.6.21) |
2021-12-10 18:35:07 +0100 | Guest66 | (~textual@98.13.6.21) (Client Quit) |
2021-12-10 18:36:13 +0100 | turlando | (~turlando@user/turlando) (Ping timeout: 240 seconds) |
2021-12-10 18:37:07 +0100 | turlando | (~turlando@93-42-250-112.ip89.fastwebnet.it) |
2021-12-10 18:37:07 +0100 | turlando | (~turlando@93-42-250-112.ip89.fastwebnet.it) (Changing host) |
2021-12-10 18:37:07 +0100 | turlando | (~turlando@user/turlando) |
2021-12-10 18:37:30 +0100 | CiaoSen | (~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 +0100 | tromp | (~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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-12-10 18:48:12 +0100 | kupi | (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-10 18:48:37 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) (Remote host closed the connection) |
2021-12-10 18:49:15 +0100 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2021-12-10 18:50:28 +0100 | dsrt^ | (~dsrt@wsip-98-188-240-142.mc.at.cox.net) |
2021-12-10 18:54:37 +0100 | neverfindme | (~hayden@158.123.160.43) (Quit: Leaving) |
2021-12-10 18:58:47 +0100 | econo | (uid147250@user/econo) |
2021-12-10 18:59:21 +0100 | zer0bitz | (~zer0bitz@dsl-hkibng32-54fbfb-173.dhcp.inet.fi) |
2021-12-10 19:05:29 +0100 | fr33domlover | (~fr33@2.55.41.192) (Ping timeout: 250 seconds) |
2021-12-10 19:05:52 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-12-10 19:09:26 +0100 | neverfindme | (~hayden@158.123.160.43) |
2021-12-10 19:10:34 +0100 | neverfindme | (~hayden@158.123.160.43) (Remote host closed the connection) |
2021-12-10 19:11:42 +0100 | darkstardevx | (~darkstard@50.39.115.145) (Read error: Connection reset by peer) |
2021-12-10 19:11:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-10 19:15:20 +0100 | Akiva | (~Akiva@user/Akiva) |
2021-12-10 19:16:59 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-12-10 19:20:14 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-12-10 19:20:21 +0100 | ByronJohnson | (~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 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) |
2021-12-10 19:29:46 +0100 | doyougnu | (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 260 seconds) |
2021-12-10 19:31:46 +0100 | mimmy_ | (~mimmy@184.94.118.194) (Ping timeout: 268 seconds) |
2021-12-10 19:34:43 +0100 | Akiva | (~Akiva@user/Akiva) (Ping timeout: 250 seconds) |
2021-12-10 19:39:14 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) |
2021-12-10 19:40:11 +0100 | Megant | (megant@user/megant) (Ping timeout: 256 seconds) |
2021-12-10 19:40:54 +0100 | mimmy_ | (~mimmy@184.94.118.194) |
2021-12-10 19:41:37 +0100 | Megant | (megant@user/megant) |
2021-12-10 19:49:15 +0100 | dsrt^ | (~dsrt@wsip-98-188-240-142.mc.at.cox.net) (Ping timeout: 250 seconds) |
2021-12-10 19:51:51 +0100 | InternetCitizen | (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 252 seconds) |
2021-12-10 19:53:18 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Read error: Connection reset by peer) |
2021-12-10 19:53:44 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-12-10 20:01:21 +0100 | emf | (~emf@2620:10d:c091:480::1:a9a4) |
2021-12-10 20:01:51 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::9788) |
2021-12-10 20:03:14 +0100 | max22- | (~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 +0100 | ByronJohnson | (~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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-10 20:13:46 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-10 20:14:17 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2021-12-10 20:15:21 +0100 | dsrt^ | (~dsrt@wsip-98-188-240-142.mc.at.cox.net) |
2021-12-10 20:16:47 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-12-10 20:24:34 +0100 | darkstarx | (~darkstard@50.39.115.145) |
2021-12-10 20:25:40 +0100 | darkstarx | (~darkstard@50.39.115.145) (Remote host closed the connection) |
2021-12-10 20:26:03 +0100 | darkstarx | (~darkstard@50.39.115.145) |
2021-12-10 20:26:05 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-10 20:27:13 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-10 20:27:30 +0100 | Morrow | (~quassel@bzq-110-168-31-106.red.bezeqint.net) |
2021-12-10 20:31:36 +0100 | darchite` | (~user@2a00:23c6:3584:df00:7dec:bf13:8fa:748c) (Remote host closed the connection) |
2021-12-10 20:37:37 +0100 | pfurla | (~pfurla@201.17.118.230) |
2021-12-10 20:43:46 +0100 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-12-10 20:47:30 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) |
2021-12-10 20:48:10 +0100 | beka | (~beka@104.193.170.240) |
2021-12-10 20:49:37 +0100 | max22- | (~maxime@2a01cb0883359800b0bf91f12c0fefae.ipv6.abo.wanadoo.fr) |
2021-12-10 20:50:12 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2021-12-10 20:52:09 +0100 | fossdd | (~fossdd@sourcehut/user/fossdd) (Remote host closed the connection) |
2021-12-10 20:55:17 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-10 20:59:21 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) (Ping timeout: 268 seconds) |
2021-12-10 20:59:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-10 21:01:45 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-10 21:04:39 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-12-10 21:05:30 +0100 | juhp | (~juhp@128.106.188.82) (Ping timeout: 268 seconds) |
2021-12-10 21:06:11 +0100 | Codaraxis | (~Codaraxis@user/codaraxis) |
2021-12-10 21:07:15 +0100 | juhp | (~juhp@128.106.188.82) |
2021-12-10 21:07:15 +0100 | alx741 | (~alx741@181.199.42.79) (Read error: Connection reset by peer) |
2021-12-10 21:08:00 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-10 21:10:53 +0100 | meinside | (uid24933@id-24933.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-10 21:14:36 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-10 21:15:22 +0100 | pfurla | (~pfurla@201.17.118.230) (Quit: gone to sleep. ZZZzzz…) |
2021-12-10 21:17:29 +0100 | superstar64 | (~superstar@2600:1700:ed80:50a0:d250:99ff:fe2c:53c4) |
2021-12-10 21:17:58 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.3) |
2021-12-10 21:19:54 +0100 | mimmy_ | (~mimmy@184.94.118.194) (Ping timeout: 260 seconds) |
2021-12-10 21:20:10 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-10 21:21:08 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:654d:199b:4253:3c19) |
2021-12-10 21:23:27 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) (Remote host closed the connection) |
2021-12-10 21:28:33 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) |
2021-12-10 21:28:35 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-10 21:31:31 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-10 21:33:05 +0100 | darkstarx | (~darkstard@50.39.115.145) (Read error: Connection reset by peer) |
2021-12-10 21:35:57 +0100 | darkstarx | (~darkstard@50.39.115.145) |
2021-12-10 21:36:53 +0100 | darkstarx | (~darkstard@50.39.115.145) (Remote host closed the connection) |
2021-12-10 21:37:18 +0100 | darkstarx | (~darkstard@50.39.115.145) |
2021-12-10 21:38:08 +0100 | doyougnu | (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) |
2021-12-10 21:40:36 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:654d:199b:4253:3c19) (Quit: gone to sleep. ZZZzzz…) |
2021-12-10 21:45:03 +0100 | azimut_ | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds) |
2021-12-10 21:48:03 +0100 | acidjnk_new | (~acidjnk@p200300d0c7271e2134fbc39073c29133.dip0.t-ipconnect.de) |
2021-12-10 21:48:17 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 21:48:59 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-10 21:52:24 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) |
2021-12-10 21:54:59 +0100 | farmfrmjakestate | (~farmfromj@user/farmfrmjakestate) |
2021-12-10 21:55:16 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:e582:2d42:b0b2:720b) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-12-10 21:57:12 +0100 | CiaoSen | (~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2021-12-10 21:57:52 +0100 | farmfrmjakestate | (~farmfromj@user/farmfrmjakestate) (Client Quit) |
2021-12-10 22:00:12 +0100 | namkeleser | (~namkelese@101.179.128.103) |
2021-12-10 22:00:46 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-12-10 22:02:08 +0100 | smartin | (~Thunderbi@88.135.18.171) (Read error: Connection reset by peer) |
2021-12-10 22:02:30 +0100 | smartin | (~Thunderbi@88.135.18.171) |
2021-12-10 22:03:01 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2021-12-10 22:04:48 +0100 | pavonia | (~user@user/siracusa) |
2021-12-10 22:12:51 +0100 | Feuermagier_ | (~Feuermagi@138.199.36.189) |
2021-12-10 22:14:44 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-10 22:15:13 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) (Ping timeout: 252 seconds) |
2021-12-10 22:15:28 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) |
2021-12-10 22:15:50 +0100 | michalz | (~michalz@185.246.204.61) (Remote host closed the connection) |
2021-12-10 22:16:21 +0100 | mimmy_ | (~mimmy@2607:fea8:6e0:7f90:21fa:58d6:189b:bd7a) |
2021-12-10 22:17:18 +0100 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-12-10 22:17:39 +0100 | Feuermagier_ | (~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 +0100 | superstar64 | (~superstar@2600:1700:ed80:50a0:d250:99ff:fe2c:53c4) (Quit: Leaving) |
2021-12-10 22:22:44 +0100 | mimmy | (~mimmy@cpef81d0f857c83-cmf81d0f857c80.cpe.net.cable.rogers.com) |
2021-12-10 22:23:23 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3) |
2021-12-10 22:24:02 +0100 | shailangsa | (~shailangs@host86-161-220-126.range86-161.btcentralplus.com) (Ping timeout: 256 seconds) |
2021-12-10 22:25:04 +0100 | mimmy_ | (~mimmy@2607:fea8:6e0:7f90:21fa:58d6:189b:bd7a) (Ping timeout: 268 seconds) |
2021-12-10 22:25:40 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) (Ping timeout: 268 seconds) |
2021-12-10 22:27:09 +0100 | earendel | (uid498179@user/earendel) |
2021-12-10 22:28:07 +0100 | doyougnu | (~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 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-12-10 22:30:10 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-10 22:31:19 +0100 | doyougnu | (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) |
2021-12-10 22:31:31 +0100 | vicfred | (~vicfred@user/vicfred) |
2021-12-10 22:32:06 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:e582:2d42:b0b2:720b) |
2021-12-10 22:34:44 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-12-10 22:36:26 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2021-12-10 22:37:13 +0100 | lagash | (lagash@lagash.shelltalk.net) (Ping timeout: 252 seconds) |
2021-12-10 22:37:14 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-12-10 22:37:24 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-12-10 22:40:12 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) |
2021-12-10 22:40:26 +0100 | Topsi1 | (~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 +0100 | InternetCitizen | (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
2021-12-10 22:42:58 +0100 | xff0x | (~xff0x@2001:1a81:537e:3f00:6b1a:2a67:475e:9b5f) (Ping timeout: 260 seconds) |
2021-12-10 22:43:38 +0100 | xff0x | (~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 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:654d:199b:4253:3c19) |
2021-12-10 22:47:44 +0100 | zardoz | (~bc8147f2@cerf.good1.com) |
2021-12-10 22:47:59 +0100 | <maplike> | sshine, that looks interesting thank you! |
2021-12-10 22:48:28 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-10 22:48:56 +0100 | whatsupdoc | (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 +0100 | dhouthoo | (~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 +0100 | smartin | (~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 +0100 | burnsidesLlama | (~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 +0100 | vicfred | (~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 +0100 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 268 seconds) |
2021-12-10 23:01:43 +0100 | merijn | (~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 +0100 | tromp | (~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 +0100 | shailangsa | (~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 +0100 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) (Ping timeout: 276 seconds) |
2021-12-10 23:09:13 +0100 | mimmy | (~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 +0100 | LiaoTao | (~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 +0100 | fizbin | (~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 +0100 | myShoggoth | (~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 +0100 | beka | (~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 +0100 | lavaman | (~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 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:30:48 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-10 23:30:51 +0100 | lagash | (lagash@lagash.shelltalk.net) |
2021-12-10 23:31:01 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:31:09 +0100 | lavaman | (~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 +0100 | max22- | (~maxime@2a01cb0883359800b0bf91f12c0fefae.ipv6.abo.wanadoo.fr) (Quit: Leaving) |
2021-12-10 23:31:24 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:31:31 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-10 23:31:45 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:31:52 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-10 23:32:08 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:32:16 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-10 23:32:30 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:32:38 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-10 23:32:54 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:33:02 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-10 23:33:16 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:33:23 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-10 23:33:38 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:33:46 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-10 23:34:00 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:34:08 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-10 23:34:21 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:34:29 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-10 23:34:32 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-12-10 23:34:44 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:34:51 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-10 23:35:04 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:35:12 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-10 23:35:27 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:35:34 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-10 23:35:50 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:35:57 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-10 23:36:10 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 260 seconds) |
2021-12-10 23:36:11 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:36:19 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-10 23:36:33 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:36:41 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-10 23:36:56 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:37:03 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-10 23:37:18 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:37:25 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-10 23:37:39 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:37:46 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-10 23:38:00 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:38:08 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-10 23:38:23 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:38:31 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-10 23:38:32 +0100 | CiaoSen | (~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2021-12-10 23:38:48 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:38:51 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Quit: Leaving) |
2021-12-10 23:38:55 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-10 23:39:09 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:39:17 +0100 | lavaman | (~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 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:39:39 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-10 23:39:39 +0100 | ChanServ | +o geekosaur |
2021-12-10 23:39:43 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2021-12-10 23:39:50 +0100 | geekosaur | +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 +0100 | geekosaur | -o geekosaur |
2021-12-10 23:40:26 +0100 | CiaoSen | (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2021-12-10 23:40:32 +0100 | tromp | (~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 +0100 | mimmy | (~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 +0100 | fizbin | (~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 +0100 | burnsidesLlama | (~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 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-10 23:52:23 +0100 | fizbin | (~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 +0100 | ChanServ | +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 +0100 | litharge | -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 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:55:27 +0100 | lavaman | (~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 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:55:45 +0100 | ChanServ | +o geekosaur |
2021-12-10 23:55:48 +0100 | lavaman | (~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 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-10 23:56:02 +0100 | geekosaur | +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 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-10 23:56:24 +0100 | geekosaur | -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. .." |