2021/06/01

2021-06-01 00:00:36 +0200o1lo01ol1o(~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com)
2021-06-01 00:00:37 +0200nikoo
2021-06-01 00:01:20 +0200 <ski> b
2021-06-01 00:01:44 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-01 00:03:03 +0200Guest41(~Guest41@187.83.249.216.dyn.smithville.net) (Quit: Client closed)
2021-06-01 00:03:11 +0200ystael(~ystael@user/ystael) (Quit: Lost terminal)
2021-06-01 00:03:31 +0200eddiemundo[m]eddiemundo
2021-06-01 00:03:49 +0200chaosite(~chaosite@user/chaosite) (Ping timeout: 268 seconds)
2021-06-01 00:05:40 +0200o1lo01ol1o(~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com) (Ping timeout: 268 seconds)
2021-06-01 00:09:36 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving)
2021-06-01 00:11:37 +0200L29Ah(~L29Ah@user/l29ah) (Remote host closed the connection)
2021-06-01 00:12:03 +0200michalz(~user@185.246.204.45) (Remote host closed the connection)
2021-06-01 00:12:10 +0200hubvu(uid495858@id-495858.tinside.irccloud.com)
2021-06-01 00:12:27 +0200shiraeeshi(~shiraeesh@109.166.59.30)
2021-06-01 00:14:06 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-01 00:14:19 +0200eddiemundo(~jshenmatr@2001:470:69fc:105::a80) (Quit: node-irc says goodbye)
2021-06-01 00:14:33 +0200eddiemundo(~jshenmatr@2001:470:69fc:105::a80)
2021-06-01 00:14:39 +0200 <shapr> c
2021-06-01 00:14:44 +0200srk(~sorki@user/srk) (Ping timeout: 252 seconds)
2021-06-01 00:14:44 +0200eddiemundo(~jshenmatr@2001:470:69fc:105::a80) (Client Quit)
2021-06-01 00:15:14 +0200eddiemundo(~eddiemund@2001:470:69fc:105::a80)
2021-06-01 00:15:51 +0200eddiemundo(~eddiemund@2001:470:69fc:105::a80) (Client Quit)
2021-06-01 00:15:55 +0200 <hpc> c++
2021-06-01 00:16:07 +0200eddiemundo(~eddiemund@2001:470:69fc:105::a80)
2021-06-01 00:17:06 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-06-01 00:18:21 +0200eddiemundo(~eddiemund@2001:470:69fc:105::a80) (Client Quit)
2021-06-01 00:18:36 +0200eddiemundo(~eddiemund@2001:470:69fc:105::a80)
2021-06-01 00:18:48 +0200eddiemundo(~eddiemund@2001:470:69fc:105::a80) (Client Quit)
2021-06-01 00:19:51 +0200mekeor(~user@2001:a61:3a45:d101:3a96:2c15:924e:ebf9) (Ping timeout: 268 seconds)
2021-06-01 00:22:24 +0200ddellacosta(~ddellacos@86.106.143.66) (Remote host closed the connection)
2021-06-01 00:25:43 +0200Natch(~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) (Read error: Connection reset by peer)
2021-06-01 00:30:41 +0200srk(~sorki@user/srk)
2021-06-01 00:34:30 +0200urdh(~urdh@h88-129-148-132.cust.a3fiber.se) (Ping timeout: 264 seconds)
2021-06-01 00:35:41 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-06-01 00:37:50 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-01 00:39:58 +0200brandonh(~brandonh@151.38.169.228) (Quit: brandonh)
2021-06-01 00:40:29 +0200bfrk(~Thunderbi@200116b84534a60005aeadf137ee420f.dip.versatel-1u1.de)
2021-06-01 00:40:45 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Remote host closed the connection)
2021-06-01 00:41:00 +0200urdh(~urdh@h88-129-148-132.cust.a3fiber.se)
2021-06-01 00:41:06 +0200Deide(~Deide@user/deide) (Quit: Seeee yaaaa)
2021-06-01 00:41:19 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9)
2021-06-01 00:43:07 +0200adium(adium@user/adium)
2021-06-01 00:44:17 +0200Bartosz(~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-01 00:45:17 +0200o1lo01ol1o(~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com)
2021-06-01 00:45:32 +0200acertain(sid470584@stonehaven.irccloud.com) (Ping timeout: 252 seconds)
2021-06-01 00:45:46 +0200amir(sid22336@user/amir) (Ping timeout: 264 seconds)
2021-06-01 00:45:46 +0200zot(sid449795@stonehaven.irccloud.com) (Ping timeout: 264 seconds)
2021-06-01 00:45:49 +0200zopsi(sid153252@id-153252.stonehaven.irccloud.com) (Ping timeout: 272 seconds)
2021-06-01 00:45:56 +0200hydroxonium(uid500654@id-500654.stonehaven.irccloud.com) (Read error: Connection reset by peer)
2021-06-01 00:45:56 +0200dmj`(sid72307@id-72307.stonehaven.irccloud.com) (Read error: Connection reset by peer)
2021-06-01 00:46:01 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Ping timeout: 272 seconds)
2021-06-01 00:46:01 +0200hamishmack(sid389057@id-389057.stonehaven.irccloud.com) (Ping timeout: 272 seconds)
2021-06-01 00:46:04 +0200mthvedt(uid501949@id-501949.stonehaven.irccloud.com) (Read error: Connection reset by peer)
2021-06-01 00:46:04 +0200astra(sid289983@user/astrazeneca) (Read error: Connection reset by peer)
2021-06-01 00:46:05 +0200rubin55(sid175221@id-175221.stonehaven.irccloud.com) (Read error: Connection reset by peer)
2021-06-01 00:46:06 +0200peteretep(sid143467@id-143467.stonehaven.irccloud.com) (Read error: Connection reset by peer)
2021-06-01 00:46:08 +0200jakesyl(sid56879@id-56879.stonehaven.irccloud.com) (Read error: Connection reset by peer)
2021-06-01 00:46:08 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com) (Read error: Connection reset by peer)
2021-06-01 00:46:10 +0200Firedancer(sid336191@id-336191.stonehaven.irccloud.com) (Read error: Connection reset by peer)
2021-06-01 00:46:32 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2021-06-01 00:47:05 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 264 seconds)
2021-06-01 00:47:11 +0200ehamberg(sid18208@stonehaven.irccloud.com) (Ping timeout: 252 seconds)
2021-06-01 00:47:11 +0200joel135(sid136450@stonehaven.irccloud.com) (Ping timeout: 252 seconds)
2021-06-01 00:47:11 +0200jneira(~jneira@166.red-81-39-172.dynamicip.rima-tde.net) (Quit: Connection closed)
2021-06-01 00:47:44 +0200leif(uid501722@id-501722.stonehaven.irccloud.com) (Ping timeout: 252 seconds)
2021-06-01 00:47:55 +0200SanchayanMaity(sid478177@id-478177.stonehaven.irccloud.com) (Ping timeout: 272 seconds)
2021-06-01 00:49:10 +0200urdh(~urdh@h88-129-148-132.cust.a3fiber.se) (Quit: Boom!)
2021-06-01 00:49:58 +0200urdh(~urdh@h88-129-148-132.cust.a3fiber.se)
2021-06-01 00:50:05 +0200o1lo01ol1o(~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com) (Ping timeout: 264 seconds)
2021-06-01 00:51:28 +0200zot(sid449795@id-449795.stonehaven.irccloud.com)
2021-06-01 00:51:33 +0200ehamberg(sid18208@id-18208.stonehaven.irccloud.com)
2021-06-01 00:51:34 +0200dmj`(sid72307@id-72307.stonehaven.irccloud.com)
2021-06-01 00:51:37 +0200hydroxonium(uid500654@id-500654.stonehaven.irccloud.com)
2021-06-01 00:51:43 +0200peteretep(sid143467@id-143467.stonehaven.irccloud.com)
2021-06-01 00:51:43 +0200acertain(sid470584@id-470584.stonehaven.irccloud.com)
2021-06-01 00:51:44 +0200amir(sid22336@user/amir)
2021-06-01 00:51:45 +0200hamishmack(sid389057@id-389057.stonehaven.irccloud.com)
2021-06-01 00:51:46 +0200mthvedt(uid501949@id-501949.stonehaven.irccloud.com)
2021-06-01 00:51:46 +0200zopsi(sid153252@id-153252.stonehaven.irccloud.com)
2021-06-01 00:51:53 +0200rubin55(sid175221@id-175221.stonehaven.irccloud.com)
2021-06-01 00:52:02 +0200astra_(sid289983@id-289983.stonehaven.irccloud.com)
2021-06-01 00:52:03 +0200Firedancer(sid336191@id-336191.stonehaven.irccloud.com)
2021-06-01 00:52:03 +0200jakesyl(sid56879@id-56879.stonehaven.irccloud.com)
2021-06-01 00:52:05 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com)
2021-06-01 00:52:22 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 264 seconds)
2021-06-01 00:52:30 +0200SanchayanMaity(sid478177@id-478177.stonehaven.irccloud.com)
2021-06-01 00:52:40 +0200joel135(sid136450@id-136450.stonehaven.irccloud.com)
2021-06-01 00:52:50 +0200leif(uid501722@id-501722.stonehaven.irccloud.com)
2021-06-01 00:53:20 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-01 00:54:42 +0200hyiltiz(~quassel@31.220.5.250)
2021-06-01 00:55:16 +0200ddellacosta(~ddellacos@89.45.224.222)
2021-06-01 00:56:50 +0200aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
2021-06-01 00:57:55 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
2021-06-01 00:58:06 +0200astra_amish
2021-06-01 01:00:02 +0200amish(sid289983@id-289983.stonehaven.irccloud.com) ()
2021-06-01 01:00:10 +0200ddellacosta(~ddellacos@89.45.224.222) (Ping timeout: 264 seconds)
2021-06-01 01:00:17 +0200amish(sid289983@id-289983.stonehaven.irccloud.com)
2021-06-01 01:02:02 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-01 01:02:18 +0200amish(sid289983@id-289983.stonehaven.irccloud.com) (Changing host)
2021-06-01 01:02:18 +0200amish(sid289983@user/amish)
2021-06-01 01:02:55 +0200LukeHoersten(~LukeHoers@user/lukehoersten)
2021-06-01 01:03:02 +0200o1lo01ol1o(~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com)
2021-06-01 01:03:24 +0200amishastra
2021-06-01 01:03:29 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9)
2021-06-01 01:03:49 +0200pe200012_(~pe200012@119.131.208.84)
2021-06-01 01:03:57 +0200pe200012(~pe200012@119.131.208.84) (Ping timeout: 265 seconds)
2021-06-01 01:04:56 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2021-06-01 01:04:57 +0200urdh(~urdh@h88-129-148-132.cust.a3fiber.se) (Quit: Boom!)
2021-06-01 01:06:16 +0200urdh(~urdh@h88-129-148-132.cust.a3fiber.se)
2021-06-01 01:07:32 +0200o1lo01ol1o(~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com) (Ping timeout: 252 seconds)
2021-06-01 01:09:22 +0200L29Ah(~L29Ah@user/l29ah)
2021-06-01 01:11:03 +0200aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2021-06-01 01:15:42 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-01 01:22:22 +0200bfrk1(~Thunderbi@200116b84593d400e083e41adfb91d63.dip.versatel-1u1.de)
2021-06-01 01:24:22 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-01 01:24:39 +0200bfrk(~Thunderbi@200116b84534a60005aeadf137ee420f.dip.versatel-1u1.de) (Ping timeout: 272 seconds)
2021-06-01 01:24:39 +0200bfrk1bfrk
2021-06-01 01:27:04 +0200dpl_(~dpl@77-121-78-163.chn.volia.net) (Ping timeout: 268 seconds)
2021-06-01 01:27:28 +0200shapr(~user@pool-108-28-144-11.washdc.fios.verizon.net) (Ping timeout: 244 seconds)
2021-06-01 01:29:50 +0200ddellacosta(~ddellacos@86.106.143.222)
2021-06-01 01:33:56 +0200alex3(~Chel@BSN-77-82-41.static.siol.net) (Ping timeout: 252 seconds)
2021-06-01 01:34:53 +0200ddellacosta(~ddellacos@86.106.143.222) (Ping timeout: 265 seconds)
2021-06-01 01:35:36 +0200Scotty_Trees(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Quit: Leaving)
2021-06-01 01:37:38 +0200eldritch_(~eldritch@134.209.221.71)
2021-06-01 01:37:59 +0200notzmv(~zmv@user/notzmv)
2021-06-01 01:39:47 +0200alex3(~Chel@BSN-77-82-41.static.siol.net)
2021-06-01 01:43:01 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 272 seconds)
2021-06-01 01:46:45 +0200mustafa(~mustafa@rockylinux/releng/mstg)
2021-06-01 01:47:21 +0200willbush(~user@47.183.200.14)
2021-06-01 01:49:29 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 264 seconds)
2021-06-01 01:53:13 +0200Scotty_Trees(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net)
2021-06-01 01:56:42 +0200cheater(~Username@user/cheater) (Ping timeout: 264 seconds)
2021-06-01 01:56:58 +0200cheater(~Username@user/cheater)
2021-06-01 02:04:09 +0200ddellacosta(~ddellacos@86.106.143.157)
2021-06-01 02:06:00 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Read error: Connection reset by peer)
2021-06-01 02:06:56 +0200tremon(~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in)
2021-06-01 02:07:28 +0200Heffalump(~ganesh@urchin.earth.li)
2021-06-01 02:07:34 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-06-01 02:08:31 +0200jsilver(~jonathan@2601:282:300:aa0:e0bc:bc4e:7821:4001)
2021-06-01 02:08:35 +0200ddellacosta(~ddellacos@86.106.143.157) (Ping timeout: 252 seconds)
2021-06-01 02:08:42 +0200Heffalump(~ganesh@urchin.earth.li) ()
2021-06-01 02:09:37 +0200waleee(~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 272 seconds)
2021-06-01 02:12:24 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-01 02:13:03 +0200jsilver(~jonathan@2601:282:300:aa0:e0bc:bc4e:7821:4001) (Quit: Leaving)
2021-06-01 02:16:58 +0200Cubic(~hannesste@ip5f5be453.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds)
2021-06-01 02:17:37 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2021-06-01 02:17:37 +0200Kaiepi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
2021-06-01 02:18:12 +0200Kaiepi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net)
2021-06-01 02:24:05 +0200steeps(~steeps@cpc121168-oxfd27-2-0-cust161.4-3.cable.virginm.net)
2021-06-01 02:24:32 +0200cheater(~Username@user/cheater) (Ping timeout: 252 seconds)
2021-06-01 02:24:53 +0200cheater(~Username@user/cheater)
2021-06-01 02:30:03 +0200hmmmas(~chenqisu1@183.217.202.217)
2021-06-01 02:31:41 +0200argento(~argent0@168.227.96.53) (Ping timeout: 252 seconds)
2021-06-01 02:34:47 +0200o1lo01ol1o(~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com)
2021-06-01 02:34:55 +0200Erutuon(~Erutuon@user/erutuon)
2021-06-01 02:39:18 +0200o1lo01ol1o(~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com) (Ping timeout: 264 seconds)
2021-06-01 02:40:45 +0200hmmmas(~chenqisu1@183.217.202.217) (Quit: Leaving.)
2021-06-01 02:41:17 +0200sm2n(~sm2n@user/sm2n) (Ping timeout: 272 seconds)
2021-06-01 02:41:30 +0200ddellacosta(~ddellacos@89.45.224.40)
2021-06-01 02:41:43 +0200hmmmas(~chenqisu1@183.217.202.217)
2021-06-01 02:42:10 +0200steeps(~steeps@cpc121168-oxfd27-2-0-cust161.4-3.cable.virginm.net) (Quit: Leaving)
2021-06-01 02:42:15 +0200Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-133-166.cust.tzulo.com)
2021-06-01 02:44:05 +0200boioioing(~boioioing@cpe-76-84-141-127.neb.res.rr.com) (Ping timeout: 264 seconds)
2021-06-01 02:45:21 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-01 02:46:25 +0200ddellacosta(~ddellacos@89.45.224.40) (Ping timeout: 265 seconds)
2021-06-01 02:46:32 +0200bfrk(~Thunderbi@200116b84593d400e083e41adfb91d63.dip.versatel-1u1.de) (Ping timeout: 252 seconds)
2021-06-01 02:46:59 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-06-01 02:49:00 +0200argento(~argent0@168.227.96.53)
2021-06-01 02:49:50 +0200raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
2021-06-01 02:50:56 +0200oxide(~lambda@user/oxide) (Ping timeout: 268 seconds)
2021-06-01 02:51:33 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 268 seconds)
2021-06-01 02:51:41 +0200oxide(~lambda@user/oxide)
2021-06-01 02:52:20 +0200pe200012(~pe200012@120.236.162.14)
2021-06-01 02:52:29 +0200pe200012_(~pe200012@119.131.208.84) (Ping timeout: 272 seconds)
2021-06-01 02:53:42 +0200cheater(~Username@user/cheater) (Ping timeout: 264 seconds)
2021-06-01 02:53:49 +0200cheater(~Username@user/cheater)
2021-06-01 02:53:50 +0200notzmv(~zmv@user/notzmv)
2021-06-01 02:54:16 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 244 seconds)
2021-06-01 02:54:16 +0200hylisper2(~yaaic@111.119.208.67) (Ping timeout: 244 seconds)
2021-06-01 02:56:06 +0200Erutuon(~Erutuon@user/erutuon)
2021-06-01 02:59:22 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Remote host closed the connection)
2021-06-01 03:01:30 +0200tonyday(~user@202-65-93-249.ip4.superloop.com)
2021-06-01 03:02:57 +0200chisui(~chisui@200116b86662dd0045dcdbf42fb73e43.dip.versatel-1u1.de)
2021-06-01 03:03:29 +0200 <tonyday> I was wondering if anyone would be interested in a project I'm calling docperf, like doctest except for performance benchmarking?
2021-06-01 03:03:33 +0200wenzel(~wenzel@user/wenzel) (Read error: Connection reset by peer)
2021-06-01 03:03:57 +0200wenzel(~wenzel@user/wenzel)
2021-06-01 03:04:24 +0200 <tonyday> Covering the basics, like checking the Order claim of a function, and documenting the expected factor.
2021-06-01 03:04:34 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-01 03:05:24 +0200 <tonyday> The design ethic would be that performance, like tests, are very useful when they're right next to the code.
2021-06-01 03:05:32 +0200boioioing(~boioioing@cpe-76-84-141-127.neb.res.rr.com)
2021-06-01 03:05:57 +0200 <cdsmith> It sounds intriguing. Off-hand, my thoughts are (a) I care about performance claims for only a tiny number of packages, but for that tiny package set, it's very important. Not sure if that argues for or against. And (b) complexity claims in Haskell can be complex, since they depend on how much of the result is evaluated.
2021-06-01 03:06:53 +0200 <cdsmith> Err, I should have said "can be complicated". That's probably clearer than mixing meanings of "complex"
2021-06-01 03:08:16 +0200 <tonyday> Yes, I'm forever adding and subtracting -XStrictData or is it -XDataStrict, measuring that empirically. Help with that etc.
2021-06-01 03:12:35 +0200siraben(~siraben@user/siraben) (Quit: node-irc says goodbye)
2021-06-01 03:12:53 +0200siraben(~siraben@user/siraben)
2021-06-01 03:16:07 +0200ddellacosta(~ddellacos@89.45.224.131)
2021-06-01 03:16:51 +0200 <tonyday> If someone has designed some "strict in the spline" style, say, then performance usage should be part of the documentation, showing the implications of miss-use.
2021-06-01 03:17:34 +0200wei2912(~wei2912@112.199.250.21)
2021-06-01 03:20:34 +0200renzhi(~xp@2607:fa49:6500:bc00::e7b)
2021-06-01 03:20:38 +0200ddellacosta(~ddellacos@89.45.224.131) (Ping timeout: 252 seconds)
2021-06-01 03:20:44 +0200argento(~argent0@168.227.96.53) (Ping timeout: 265 seconds)
2021-06-01 03:20:44 +0200ixlun(~user@109.249.184.235) (Read error: Connection reset by peer)
2021-06-01 03:21:51 +0200ixlun(~user@109.249.184.235)
2021-06-01 03:22:52 +0200 <tonyday> It would be great to direct core to the comments as well. It would be alert to core changes then.
2021-06-01 03:24:26 +0200Guest86(~Guest86@189.197.116.11)
2021-06-01 03:24:49 +0200hylisper(~yaaic@111.119.208.67)
2021-06-01 03:24:51 +0200argento(~argent0@168.227.96.53)
2021-06-01 03:26:53 +0200ubikium(~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) (Ping timeout: 272 seconds)
2021-06-01 03:27:08 +0200ubikium(~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net)
2021-06-01 03:28:46 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-01 03:28:47 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 272 seconds)
2021-06-01 03:30:20 +0200Guest86ram535
2021-06-01 03:32:09 +0200xff0x_(~xff0x@2001:1a81:52ca:4f00:908c:1e58:afd0:4053)
2021-06-01 03:34:18 +0200lavaman(~lavaman@98.38.249.169)
2021-06-01 03:35:45 +0200xff0x(~xff0x@port-92-195-46-148.dynamic.as20676.net) (Ping timeout: 272 seconds)
2021-06-01 03:38:55 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 272 seconds)
2021-06-01 03:45:23 +0200geekosaur(~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 265 seconds)
2021-06-01 03:48:03 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2021-06-01 03:48:15 +0200 <sm[m]> hi tonyday, it sounds very interesting. Would it be mostly useful for "small" code (tight loops..) ? Or also describing application/system performance ?
2021-06-01 03:51:23 +0200 <tonyday> small certainly. But my Vector chains break at a certain level of compositional complexity, and it's difficult to spot where. I'd like to see fusion in the lab with some form of benchmark or standard so to speak.
2021-06-01 03:51:38 +0200 <tonyday> just an example
2021-06-01 03:55:42 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-06-01 03:55:53 +0200ddellacosta(~ddellacos@89.45.224.131)
2021-06-01 03:59:29 +0200 <tonyday> I do use the same mechanisms to measure latencies in a tcp connection, though, so its pretty flexible.
2021-06-01 03:59:48 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9)
2021-06-01 04:00:14 +0200ddellacosta(~ddellacos@89.45.224.131) (Ping timeout: 252 seconds)
2021-06-01 04:03:45 +0200o1lo01ol1o(~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com)
2021-06-01 04:04:53 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Ping timeout: 272 seconds)
2021-06-01 04:07:12 +0200argento(~argent0@168.227.96.53) (Quit: leaving)
2021-06-01 04:07:23 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 252 seconds)
2021-06-01 04:07:32 +0200argento(~argent0@168.227.96.53)
2021-06-01 04:07:39 +0200hubvu(uid495858@id-495858.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2021-06-01 04:10:26 +0200Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-133-166.cust.tzulo.com) (Quit: Leaving)
2021-06-01 04:10:29 +0200alex3(~Chel@BSN-77-82-41.static.siol.net) (Ping timeout: 268 seconds)
2021-06-01 04:12:54 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2021-06-01 04:12:54 +0200FinnElijaGuest2152
2021-06-01 04:12:54 +0200finn_elijaFinnElija
2021-06-01 04:16:02 +0200Guest2152(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 268 seconds)
2021-06-01 04:21:33 +0200ikex(~ash@user/ikex)
2021-06-01 04:23:02 +0200chisui(~chisui@200116b86662dd0045dcdbf42fb73e43.dip.versatel-1u1.de) (Ping timeout: 250 seconds)
2021-06-01 04:27:47 +0200ddellacosta(~ddellacos@86.106.121.196)
2021-06-01 04:29:04 +0200lawt(~lawt@2601:200:8101:f140:dea6:32ff:fea1:adfa) (Quit: WeeChat 2.8)
2021-06-01 04:31:29 +0200td_(~td@muedsl-82-207-238-238.citykom.de) (Ping timeout: 264 seconds)
2021-06-01 04:32:45 +0200ddellacosta(~ddellacos@86.106.121.196) (Ping timeout: 272 seconds)
2021-06-01 04:33:18 +0200td_(~td@94.134.91.112)
2021-06-01 04:34:08 +0200falafel_(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-06-01 04:34:14 +0200beka(~beka@104.193.170-254.PUBLIC.monkeybrains.net)
2021-06-01 04:37:59 +0200myShoggoth(~myShoggot@97-120-89-117.ptld.qwest.net)
2021-06-01 04:39:53 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 264 seconds)
2021-06-01 04:41:23 +0200Erutuon(~Erutuon@user/erutuon)
2021-06-01 04:42:02 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2021-06-01 04:42:59 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-01 04:44:23 +0200alex3(~Chel@BSN-77-82-41.static.siol.net)
2021-06-01 04:46:36 +0200cheater1__(~Username@user/cheater)
2021-06-01 04:46:41 +0200cheater(~Username@user/cheater) (Ping timeout: 272 seconds)
2021-06-01 04:46:48 +0200cheater1__cheater
2021-06-01 04:50:15 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9)
2021-06-01 04:50:34 +0200mustafa(~mustafa@rockylinux/releng/mstg) (Ping timeout: 268 seconds)
2021-06-01 04:57:57 +0200boioioing(~boioioing@cpe-76-84-141-127.neb.res.rr.com) (Remote host closed the connection)
2021-06-01 05:00:37 +0200xprlgjf(~gavin@60.27.93.209.dyn.plus.net) (Ping timeout: 272 seconds)
2021-06-01 05:03:31 +0200boxscape(~boxscape@user/boxscape) (Ping timeout: 268 seconds)
2021-06-01 05:04:25 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-01 05:05:22 +0200oxide(~lambda@user/oxide) (Ping timeout: 268 seconds)
2021-06-01 05:06:01 +0200ikex(~ash@user/ikex) (Ping timeout: 244 seconds)
2021-06-01 05:06:53 +0200ddellacosta(~ddellacos@89.46.62.196)
2021-06-01 05:07:02 +0200oxide(~lambda@user/oxide)
2021-06-01 05:07:16 +0200eddiemundo[m](~eddiemun_@2001:470:69fc:105::a9c)
2021-06-01 05:07:46 +0200eddiemundo[m]eddiemundo
2021-06-01 05:08:52 +0200eddiemundo(~eddiemun_@2001:470:69fc:105::a9c) (Client Quit)
2021-06-01 05:09:08 +0200eddiemundo(~eddiemund@2001:470:69fc:105::a9c)
2021-06-01 05:11:54 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2021-06-01 05:12:01 +0200ddellacosta(~ddellacos@89.46.62.196) (Ping timeout: 272 seconds)
2021-06-01 05:16:18 +0200 <arahael> What's the difference between 'set' and 'assign' with haskelll's lenses?
2021-06-01 05:16:22 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 264 seconds)
2021-06-01 05:16:48 +0200otto_s_(~user@p5de2ffe1.dip0.t-ipconnect.de)
2021-06-01 05:18:17 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-06-01 05:19:45 +0200willbush(~user@47.183.200.14) (Remote host closed the connection)
2021-06-01 05:20:11 +0200otto_s(~user@p5de2fbac.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2021-06-01 05:20:13 +0200 <glguy> arahael, assign uses MonadState
2021-06-01 05:21:46 +0200 <arahael> glguy: Oooh? I've not covered MonadState as such when it comes to lenses.
2021-06-01 05:22:08 +0200o1lo01ol1o(~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com) (Remote host closed the connection)
2021-06-01 05:23:23 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-01 05:23:53 +0200o1lo01ol1o(~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com)
2021-06-01 05:24:37 +0200 <sm[m]> tonyday: are these effectively performance tests ? Can't you express those with ordinary doctest ?
2021-06-01 05:24:50 +0200mustafa(~mustafa@rockylinux/releng/mstg)
2021-06-01 05:26:35 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds)
2021-06-01 05:26:50 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-06-01 05:27:14 +0200berberman_(~berberman@user/berberman)
2021-06-01 05:27:41 +0200berberman(~berberman@user/berberman) (Ping timeout: 252 seconds)
2021-06-01 05:27:59 +0200AgentM(~agentm@pool-162-83-130-212.nycmny.fios.verizon.net)
2021-06-01 05:28:14 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
2021-06-01 05:28:14 +0200aighearach_Aighearach
2021-06-01 05:28:48 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-06-01 05:28:48 +0200o1lo01ol1o(~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com) (Ping timeout: 268 seconds)
2021-06-01 05:32:50 +0200kiweun(~sheepduck@2607:fea8:2a60:b700::5d55) (Remote host closed the connection)
2021-06-01 05:35:05 +0200sheepduck(~sheepduck@2607:fea8:2a60:b700::8a94)
2021-06-01 05:35:36 +0200lavaman(~lavaman@98.38.249.169)
2021-06-01 05:36:17 +0200mustafa(~mustafa@rockylinux/releng/mstg) (Ping timeout: 264 seconds)
2021-06-01 05:36:54 +0200nerdypepper(znc@152.67.162.71) (Changing host)
2021-06-01 05:36:54 +0200nerdypepper(znc@user/nerdypepper)
2021-06-01 05:37:02 +0200shiraeeshi(~shiraeesh@109.166.59.30) (Ping timeout: 265 seconds)
2021-06-01 05:39:03 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-06-01 05:40:07 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 244 seconds)
2021-06-01 05:40:37 +0200evolve75`(~user@c-76-20-160-130.hsd1.mi.comcast.net)
2021-06-01 05:40:42 +0200monochrom(trebla@216.138.220.146) (Quit: NO CARRIER)
2021-06-01 05:40:59 +0200monochrom(trebla@216.138.220.146)
2021-06-01 05:44:16 +0200shiraeeshi(~shiraeesh@109.166.59.30)
2021-06-01 05:45:28 +0200smitop(uid328768@user/smitop) (Quit: Connection closed for inactivity)
2021-06-01 05:53:29 +0200argento(~argent0@168.227.96.53) (Remote host closed the connection)
2021-06-01 05:54:19 +0200leeb(~leeb@KD111239155018.au-net.ne.jp)
2021-06-01 05:54:28 +0200alx741(~alx741@186.178.108.160) (Quit: alx741)
2021-06-01 05:54:55 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-06-01 06:00:22 +0200pe200012(~pe200012@120.236.162.14) (Read error: Connection reset by peer)
2021-06-01 06:00:48 +0200pe200012(~pe200012@119.131.208.84)
2021-06-01 06:02:31 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
2021-06-01 06:03:08 +0200mustafa(~mustafa@rockylinux/releng/mstg)
2021-06-01 06:04:51 +0200lavaman(~lavaman@98.38.249.169)
2021-06-01 06:05:10 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-01 06:05:25 +0200lavaman(~lavaman@98.38.249.169)
2021-06-01 06:05:31 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-01 06:05:47 +0200lavaman(~lavaman@98.38.249.169)
2021-06-01 06:05:55 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-01 06:06:10 +0200lavaman(~lavaman@98.38.249.169)
2021-06-01 06:06:17 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-01 06:06:32 +0200lavaman(~lavaman@98.38.249.169)
2021-06-01 06:06:39 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-01 06:08:16 +0200renzhi(~xp@2607:fa49:6500:bc00::e7b) (Ping timeout: 268 seconds)
2021-06-01 06:10:29 +0200cheater(~Username@user/cheater) (Ping timeout: 264 seconds)
2021-06-01 06:10:30 +0200mustafa(~mustafa@rockylinux/releng/mstg) (Ping timeout: 264 seconds)
2021-06-01 06:10:48 +0200cheater(~Username@user/cheater)
2021-06-01 06:12:35 +0200evolve75`(~user@c-76-20-160-130.hsd1.mi.comcast.net) (Ping timeout: 268 seconds)
2021-06-01 06:18:18 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-01 06:18:18 +0200ubikium(~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) (Read error: Connection reset by peer)
2021-06-01 06:18:37 +0200ubikium(~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net)
2021-06-01 06:22:10 +0200slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-06-01 06:29:54 +0200lbseale_(~lbseale@ip72-194-54-201.sb.sd.cox.net)
2021-06-01 06:33:17 +0200lbseale(~lbseale@ip72-194-54-201.sb.sd.cox.net) (Ping timeout: 264 seconds)
2021-06-01 06:35:22 +0200wonko(~wjc@62.115.229.50)
2021-06-01 06:38:22 +0200 <tonyday> sm: yes, you just have a few differences; compile not ghci, an ability to record a "performance" in the comments (eg "O(N^2): 12"), and an ability to trigger an error/warning if there is a regression.
2021-06-01 06:38:27 +0200dhu1337(~dhu1337@user/dhu1337)
2021-06-01 06:38:34 +0200ram535(~Guest86@189.197.116.11) (Quit: Client closed)
2021-06-01 06:39:43 +0200danso(~danso@23-233-111-52.cpe.pppoe.ca) (Ping timeout: 268 seconds)
2021-06-01 06:40:27 +0200 <tonyday> I think cabal-extras can help with all of that
2021-06-01 06:43:43 +0200 <tonyday> And we would be able to check for regressions in CI and all that
2021-06-01 06:45:10 +0200mustafa(~mustafa@rockylinux/releng/mstg)
2021-06-01 06:46:55 +0200v01d4lph4(~v01d4lph4@122.160.65.250)
2021-06-01 06:46:55 +0200v01d4lph4(~v01d4lph4@122.160.65.250) (Changing host)
2021-06-01 06:46:55 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4)
2021-06-01 06:48:09 +0200dhu1337(~dhu1337@user/dhu1337) (Quit: dhu1337)
2021-06-01 06:48:41 +0200oniko
2021-06-01 06:49:52 +0200mustafa(~mustafa@rockylinux/releng/mstg) (Ping timeout: 244 seconds)
2021-06-01 06:49:55 +0200lbseale__(~lbseale@ip72-194-54-201.sb.sd.cox.net)
2021-06-01 06:53:24 +0200lbseale_(~lbseale@ip72-194-54-201.sb.sd.cox.net) (Ping timeout: 265 seconds)
2021-06-01 06:54:01 +0200o1lo01ol1o(~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com)
2021-06-01 06:56:11 +0200gambpang(~ian@207.181.230.156) (Remote host closed the connection)
2021-06-01 06:56:39 +0200hylisper(~yaaic@111.119.208.67) (Quit: Yaaic - Yet another Android IRC client - http://www.yaaic.org)
2021-06-01 06:57:20 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
2021-06-01 06:58:29 +0200o1lo01ol1o(~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com) (Ping timeout: 264 seconds)
2021-06-01 07:02:16 +0200img(~img@2405:6580:b1c0:2500:43d1:94bf:adb9:8dcf) (Quit: ZNC 1.8.1 - https://znc.in)
2021-06-01 07:04:07 +0200leptest
2021-06-01 07:04:07 +0200testlep
2021-06-01 07:04:49 +0200AgentM(~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) (Quit: Leaving.)
2021-06-01 07:10:53 +0200img(~img@2405:6580:b1c0:2500:1e68:3732:5209:e4c0)
2021-06-01 07:13:55 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-01 07:17:00 +0200hololeap(hololeap@user/hololeap)
2021-06-01 07:17:16 +0200 <hololeap> hi, I'm looking for some help with this: http://sprunge.us/rOOfCr
2021-06-01 07:17:57 +0200 <hololeap> I set up a GADT rose tree that carries a couple types for each node in a type-level rose tree
2021-06-01 07:18:41 +0200 <hololeap> at some point I want to forget this extra type-level info and convert it to a regular Tree, but I'm not sure how to do this
2021-06-01 07:19:26 +0200 <dy> I think that's a forgetful functor... but I can't remember :^)
2021-06-01 07:19:38 +0200wallymathieu(~wallymath@81-234-151-21-no94.tbcn.telia.com)
2021-06-01 07:21:08 +0200 <hololeap> I thought I would need to do something like: fromFoo :: (forall t. FooItem t -> x) -> (forall ts. Foo ts) -> x
2021-06-01 07:22:38 +0200Athas(athas@2a01:7c8:aaac:1cf:885f:6d75:b55f:82a8) (Quit: ZNC 1.8.2 - https://znc.in)
2021-06-01 07:22:54 +0200Athas(athas@2a01:7c8:aaac:1cf:7de4:bc5c:7241:d6d9)
2021-06-01 07:24:55 +0200vicfred_(~vicfred@static-198-54-131-72.cust.tzulo.com)
2021-06-01 07:25:30 +0200falafel_(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 264 seconds)
2021-06-01 07:27:53 +0200schuelermine(~schuelerm@user/schuelermine) (Ping timeout: 264 seconds)
2021-06-01 07:27:53 +0200chisui(~chisui@200116b866065d0037bb6f0935c2f6da.dip.versatel-1u1.de)
2021-06-01 07:28:22 +0200vicfred(~vicfred@user/vicfred) (Ping timeout: 264 seconds)
2021-06-01 07:30:11 +0200 <hololeap> I did just find a typo, but it seems like no matter what I do here I end up with errors like this: Could not deduce: ts2 ~ ts from the context: ts1 ~ 'Node '(r, a) ts
2021-06-01 07:30:18 +0200myShoggoth(~myShoggot@97-120-89-117.ptld.qwest.net) (Ping timeout: 264 seconds)
2021-06-01 07:30:50 +0200vicfred_(~vicfred@static-198-54-131-72.cust.tzulo.com) (Quit: Leaving)
2021-06-01 07:34:15 +0200pe200012_(~pe200012@120.236.162.14)
2021-06-01 07:34:30 +0200pe200012(~pe200012@119.131.208.84) (Ping timeout: 264 seconds)
2021-06-01 07:34:36 +0200shiraeeshi(~shiraeesh@109.166.59.30) (Ping timeout: 268 seconds)
2021-06-01 07:35:17 +0200chisui(~chisui@200116b866065d0037bb6f0935c2f6da.dip.versatel-1u1.de) (Quit: Client closed)
2021-06-01 07:36:22 +0200xff0x_(~xff0x@2001:1a81:52ca:4f00:908c:1e58:afd0:4053) (Ping timeout: 244 seconds)
2021-06-01 07:36:55 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2021-06-01 07:37:18 +0200xff0x_(~xff0x@2001:1a81:52ca:4f00:5ed9:a747:2841:c1b7)
2021-06-01 07:39:27 +0200mustafa(~mustafa@rockylinux/releng/mstg)
2021-06-01 07:40:48 +0200michalz(~user@185.246.204.45)
2021-06-01 07:41:51 +0200chomwitt(~Pitsikoko@2a02:587:dc02:b00:b16c:5166:feb8:97d5)
2021-06-01 07:43:37 +0200Bartosz(~textual@24.35.90.211)
2021-06-01 07:43:37 +0200Bartosz(~textual@24.35.90.211) (Client Quit)
2021-06-01 07:44:41 +0200mustafa(~mustafa@rockylinux/releng/mstg) (Ping timeout: 264 seconds)
2021-06-01 07:45:19 +0200 <hololeap> ok, here's a question that should get to the crux of the issue: if I have a heterogeneous list of types with a Show instance, how can I convert it to a regular list of type [String] ?
2021-06-01 07:45:46 +0200 <hololeap> *each type in the heterogeneous list has a Show instance
2021-06-01 07:47:47 +0200 <hololeap> data HList (ts :: [Type]) where ; HNil :: HList '[] ; (:-:) :: Show t => t -> HList ts -> HList (t ': ts)
2021-06-01 07:48:01 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-06-01 07:51:33 +0200Bartosz(~textual@24.35.90.211)
2021-06-01 07:55:05 +0200nschoe(~quassel@91-162-58-134.subs.proxad.net)
2021-06-01 07:57:02 +0200beka(~beka@104.193.170-254.PUBLIC.monkeybrains.net) (Ping timeout: 244 seconds)
2021-06-01 07:57:14 +0200 <int-e> hololeap: https://paste.debian.net/1199557/ ...that doesn't seem to raise any difficulties
2021-06-01 07:58:20 +0200 <int-e> (well, the function is terribly named)
2021-06-01 07:59:51 +0200nschoe(~quassel@91-162-58-134.subs.proxad.net) (Ping timeout: 272 seconds)
2021-06-01 08:00:34 +0200 <Bartosz> dy: I thought about it and I think real world is not a perfect model for functors. A functor can contain an arbitrary type inside, so as a container it has to be enormous. It must be able to hold an aircraft carrier, the sun, the galaxy, etc.
2021-06-01 08:00:41 +0200Guest6538(~Guest65@2400:8902::f03c:92ff:fe60:98d8)
2021-06-01 08:01:10 +0200 <Guest6538> I have a simple Parsec question, how to filter comment on this code https://paste.ubuntu.com/p/tSbwNBNxhw/
2021-06-01 08:02:03 +0200 <int-e> hololeap: fromHListWith :: (forall a. Show a => a -> b) -> HList ts -> [b] <--this type may be more to the point.
2021-06-01 08:02:03 +0200 <Guest6538> it parses something like "a=b" is ok, but I'd like to ignore like "--comment"
2021-06-01 08:03:02 +0200vicentius(~vicentius@user/vicentius)
2021-06-01 08:04:49 +0200 <dy> Bartosz: so functors are hammerspace :p
2021-06-01 08:04:59 +0200amk(~amk@176.61.106.150) (Ping timeout: 252 seconds)
2021-06-01 08:05:53 +0200amk(~amk@176.61.106.150)
2021-06-01 08:08:46 +0200 <hololeap> hm, actually my original idea seems to work without the (forall ts. ...) surrounding the tree and forest data types
2021-06-01 08:09:49 +0200vicentius(~vicentius@user/vicentius) (Quit: Leaving)
2021-06-01 08:11:28 +0200manicennui(uid349235@id-349235.tinside.irccloud.com)
2021-06-01 08:15:34 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-06-01 08:15:42 +0200 <hololeap> dy: I think comonads are hammerspace. those are things you can always pull something out of
2021-06-01 08:16:24 +0200 <dminuoso> Guest6538: https://hackage.haskell.org/package/parsec-3.1.14.0/docs/Text-Parsec-Token.html
2021-06-01 08:18:19 +0200 <dminuoso> Guest6538: Alternatively you can just reimplement the `space` combinator from megaparsec, it's really trivial
2021-06-01 08:18:43 +0200 <dminuoso> And adopt the rule that you always use `space` before or after (pick one!) each lexeme
2021-06-01 08:20:54 +0200 <dy> More concretely (hah) you can also just parse a CST (concrete syntax tree) first and then map it to the AST you want.
2021-06-01 08:21:26 +0200 <dy> The distinction with a CST is that there exists a bijection from it to/from the original source.
2021-06-01 08:21:38 +0200danso(~danso@23-233-111-52.cpe.pppoe.ca)
2021-06-01 08:21:40 +0200dyeplexer(~dyeplexer@user/dyeplexer)
2021-06-01 08:22:10 +0200nschoe(~quassel@91-162-58-134.subs.proxad.net)
2021-06-01 08:22:24 +0200 <dminuoso> Mmm, usually a CST does not contain whitespace or comments.
2021-06-01 08:24:09 +0200 <Guest6538> dminuoso, can I just use parsec to implement that? I don't install megaparsec yet
2021-06-01 08:24:13 +0200 <dminuoso> Guest6538: Yes.
2021-06-01 08:24:20 +0200 <dy> They don't contain whitespace but they do contain token positions you could recreate the whitespace from
2021-06-01 08:24:26 +0200 <dminuoso> https://hackage.haskell.org/package/megaparsec-9.0.1/docs/src/Text.Megaparsec.Lexer.html#space
2021-06-01 08:24:31 +0200 <dy> Comments otoh are usually in CSTs, at least in my e Irwin en
2021-06-01 08:24:31 +0200Bartosz(~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-01 08:24:35 +0200 <dy> My experience*
2021-06-01 08:26:13 +0200 <hololeap> hm, here's an interesting one: a class function where instances occasionally need extra arguments passed in, in order to produce the desired output.
2021-06-01 08:26:41 +0200 <dy> hololeap: as an example of...?
2021-06-01 08:27:01 +0200nschoe(~quassel@91-162-58-134.subs.proxad.net) (Ping timeout: 268 seconds)
2021-06-01 08:27:14 +0200 <hololeap> I'm just thinking of ways to implement this
2021-06-01 08:27:26 +0200 <dy> I missed the context/not in my backlog
2021-06-01 08:27:34 +0200 <hololeap> no context :p
2021-06-01 08:27:45 +0200 <dy> What are you trying to implement?
2021-06-01 08:27:55 +0200 <hololeap> what I just described
2021-06-01 08:28:14 +0200 <dy> Do you mean class as in typeclass?
2021-06-01 08:28:18 +0200 <dy> Or like more traditional class?
2021-06-01 08:28:23 +0200 <hololeap> no, a typeclass
2021-06-01 08:28:32 +0200 <dy> I'm reminded of how printf works in Haskell
2021-06-01 08:28:51 +0200 <hololeap> hm, yeah that should be a good example to look at
2021-06-01 08:29:23 +0200nschoe(~quassel@91-162-58-134.subs.proxad.net)
2021-06-01 08:29:57 +0200 <dy> The trick there is recursion at the instance definition level I believe
2021-06-01 08:30:34 +0200 <dy> But I don't think Printf is actually properly type safe.
2021-06-01 08:30:55 +0200leeb_(~leeb@KD111239153130.au-net.ne.jp)
2021-06-01 08:30:59 +0200 <dy> Would require dependent types to be properly type safe I think.
2021-06-01 08:31:16 +0200cheater1__(~Username@user/cheater)
2021-06-01 08:31:20 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:bdf8:f228:7df7:147f)
2021-06-01 08:31:31 +0200cheater(~Username@user/cheater) (Ping timeout: 272 seconds)
2021-06-01 08:31:34 +0200 <hololeap> I have 23 language extensions enabled in my module right now :p
2021-06-01 08:31:37 +0200cheater1__cheater
2021-06-01 08:31:59 +0200 <dy> I think I heard something about dependent typing coming to mainline GHC?
2021-06-01 08:32:03 +0200 <dy> I feel like that's... probably going to be messy.
2021-06-01 08:32:12 +0200 <dy> Refinement types seem a better Pareto optimal choice.
2021-06-01 08:32:25 +0200 <hololeap> nah
2021-06-01 08:32:30 +0200Toast52(~Toast52@151.192.167.120)
2021-06-01 08:32:48 +0200 <Guest6538> why there's char in parsec, but not string? use satisfy to match a string?
2021-06-01 08:32:54 +0200 <dy> Refinement types are a bit more intuitive and map nicely to more traditional notions of code contracts.
2021-06-01 08:32:55 +0200 <hololeap> most of them are quite safe, except maybe AllowAmbiguousTypes and NoMonomorphismRestriction
2021-06-01 08:33:29 +0200 <dy> There comes a day in every Haskell programmer's life when they just have to give up and enable NoMonomorphismRestricfion :p
2021-06-01 08:33:35 +0200leeb(~leeb@KD111239155018.au-net.ne.jp) (Ping timeout: 252 seconds)
2021-06-01 08:33:35 +0200 <dy> Perhaps for reasons they do not understand.
2021-06-01 08:33:44 +0200mustafa(~mustafa@rockylinux/releng/mstg)
2021-06-01 08:33:47 +0200 <dminuoso> Uh. No?
2021-06-01 08:34:01 +0200 <dy> It's a joke.
2021-06-01 08:34:12 +0200 <[exa]> Guest6538: https://hackage.haskell.org/package/megaparsec-9.0.1/docs/Text-Megaparsec-Char.html#v:string ?
2021-06-01 08:34:19 +0200 <dy> Just one of those extensions I've seen people enable blindly after seeing error messages mentioning it a lot.
2021-06-01 08:34:26 +0200 <Guest6538> [exa] I mean in parsec
2021-06-01 08:34:30 +0200 <dminuoso> Curious, I have not seen this behavior.
2021-06-01 08:34:42 +0200 <[exa]> Guest6538: uh sorry I'm aliasing the names automatically now :D
2021-06-01 08:34:43 +0200ru0mad(~ru0mad@82-64-17-144.subs.proxad.net)
2021-06-01 08:34:45 +0200 <dminuoso> Guest6538: https://hackage.haskell.org/package/parsec-3.1.14.0/docs/Text-Parsec-Char.html#v:string
2021-06-01 08:35:05 +0200 <Guest6538> ok, my mistake
2021-06-01 08:35:06 +0200nschoe(~quassel@91-162-58-134.subs.proxad.net) (Ping timeout: 264 seconds)
2021-06-01 08:35:22 +0200 <[exa]> yap there it is :]
2021-06-01 08:36:24 +0200 <[exa]> even if not, you could easily construct it, roughly as `traverse char`
2021-06-01 08:37:20 +0200neceve(~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130)
2021-06-01 08:37:58 +0200 <dminuoso> string s = tokens show updatePosString s
2021-06-01 08:38:29 +0200mustafa(~mustafa@rockylinux/releng/mstg) (Ping timeout: 272 seconds)
2021-06-01 08:38:32 +0200 <dminuoso> If you naively just parse each character, you'll get horrid error messages.
2021-06-01 08:38:41 +0200sondre(~sondrelun@cm-84.212.100.140.getinternet.no)
2021-06-01 08:39:11 +0200azeem(~azeem@dynamic-adsl-84-220-228-254.clienti.tiscali.it)
2021-06-01 08:39:26 +0200 <dminuoso> Rather than `expected "foobar"`, it would tell you `expected 'b'`, which for more complex strings is not going to be very helpful
2021-06-01 08:39:56 +0200 <dminuoso> And if there's any <|>, you might not even know what's going on if the character could come from any of the choices.
2021-06-01 08:40:22 +0200 <[exa]> yeah that's the "roughly" warning. :]
2021-06-01 08:40:37 +0200ru0mad(~ru0mad@82-64-17-144.subs.proxad.net) (Quit: leaving)
2021-06-01 08:41:39 +0200 <[exa]> kinda thinking, why'd they have the "show" in the definition? doesn't it totally obliterate any unicode in the error messages?
2021-06-01 08:42:46 +0200pe200012_(~pe200012@120.236.162.14) (Ping timeout: 264 seconds)
2021-06-01 08:45:14 +0200rubin55(sid175221@id-175221.stonehaven.irccloud.com) ()
2021-06-01 08:45:35 +0200rubin55(sid175221@id-175221.stonehaven.irccloud.com)
2021-06-01 08:45:56 +0200rubin55(sid175221@id-175221.stonehaven.irccloud.com) (Client Quit)
2021-06-01 08:46:24 +0200rubin55(sid175221@id-175221.stonehaven.irccloud.com)
2021-06-01 08:46:32 +0200holy_(~h01y_b4z0@2400:adc1:178:c800:9e45:76a9:57f2:1665)
2021-06-01 08:47:24 +0200Cubic(~hannesste@ip5f5be453.dynamic.kabel-deutschland.de)
2021-06-01 08:50:41 +0200 <Guest6538> comment = string "--" *> (manyTill anyChar newline)
2021-06-01 08:50:47 +0200 <Guest6538> newSpaces = spaces <|> comment
2021-06-01 08:51:27 +0200mc47(~yecinem@89.246.239.190)
2021-06-01 08:52:08 +0200 <hololeap> dy, is this what you were referring to by refinement types? https://hackage.haskell.org/package/refined
2021-06-01 08:52:16 +0200 <dy> No, think Liquid Haskell
2021-06-01 08:52:19 +0200 <int-e> > let x --> y = y in 2 --> 4
2021-06-01 08:52:20 +0200 <lambdabot> 4
2021-06-01 08:52:23 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-01 08:52:24 +0200 <Guest6538> Expected type: ParsecT String u Data.Functor.Identity.Identity () ; Actual type: ParsecT String u Data.Functor.Identity.Identity [Char]; In the second argument of ‘(<|>)’,
2021-06-01 08:52:28 +0200 <hololeap> I've never used it
2021-06-01 08:52:42 +0200 <Guest6538> where is wrong?
2021-06-01 08:52:59 +0200 <Axman6> what is the type of: comment, spaces and <|>
2021-06-01 08:53:24 +0200 <int-e> :t void
2021-06-01 08:53:24 +0200 <dy> It looks like that refined package is a similar idea? Not entirely clear. Haven't seen it befofez
2021-06-01 08:53:25 +0200 <lambdabot> Functor f => f a -> f ()
2021-06-01 08:53:32 +0200beka(~beka@104.193.170-254.PUBLIC.monkeybrains.net)
2021-06-01 08:53:37 +0200 <Axman6> int-e: we'll get to that ;)
2021-06-01 08:53:38 +0200 <Guest6538> oh, <|> ask the same type
2021-06-01 08:53:42 +0200 <int-e> Axman6: I know
2021-06-01 08:54:17 +0200 <dy> Untyped comments? In my Haskell?
2021-06-01 08:54:26 +0200 <dy> "It's more likely than you think!"
2021-06-01 08:55:03 +0200 <int-e> dy: "untyped", hmmmm. Sometimes it's better to not type a comment and let the code speak for itself.
2021-06-01 08:55:28 +0200 <int-e> @where semantics
2021-06-01 08:55:28 +0200 <lambdabot> I know nothing about semantics.
2021-06-01 08:55:40 +0200 <dminuoso> That should be a quote.
2021-06-01 08:55:52 +0200chele(~chele@user/chele)
2021-06-01 08:56:42 +0200azeem(~azeem@dynamic-adsl-84-220-228-254.clienti.tiscali.it) (Quit: Quit)
2021-06-01 08:56:51 +0200azeem(~azeem@dynamic-adsl-84-220-228-254.clienti.tiscali.it)
2021-06-01 08:58:02 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-01 08:58:23 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2021-06-01 08:59:29 +0200 <hololeap> I also haven't seen it befofez
2021-06-01 09:02:34 +0200 <Guest6538> comment = string "--" *> (manyTill anyChar newline) $> ()
2021-06-01 09:02:40 +0200 <Guest6538> newSpaces = spaces <|> comment
2021-06-01 09:02:55 +0200 <Guest6538> dminuoso use this newSpaces intead of spaces is ok?
2021-06-01 09:05:22 +0200 <dminuoso> Guest6538: Its not needed, `spaces` already covers this need.
2021-06-01 09:06:04 +0200 <dminuoso> Guest6538: The idea is that `space` takes three lexers/consumers. One that consumes regular whitespace, one that consumes line comments and one that consumes block comments.
2021-06-01 09:06:12 +0200 <dminuoso> So if we look at the implementation
2021-06-01 09:06:41 +0200 <dminuoso> space sp line block = skipMany (choice [sp, line, block])
2021-06-01 09:07:00 +0200 <dminuoso> You can see this just munches all contiguous whitespace, line and block comments
2021-06-01 09:07:29 +0200 <dminuoso> Ah naming confusion
2021-06-01 09:08:05 +0200raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-06-01 09:08:18 +0200 <dminuoso> Guest6538: Its not enough
2021-06-01 09:08:39 +0200 <Guest6538> dminuoso, but this `spaces` is from megaparsec?
2021-06-01 09:08:55 +0200 <dminuoso> Guest6538: So lets avoid confusion now:
2021-06-01 09:09:00 +0200 <dminuoso> I propose a simple combinator called:
2021-06-01 09:09:13 +0200 <Guest6538> dminuoso what if the comment character is not '--' but '#' or '//'?
2021-06-01 09:09:21 +0200 <dminuoso> munch sp line block = skipMany (choice [sp, line, block])
2021-06-01 09:09:41 +0200 <dminuoso> The implementation of `munch` mimics the implementation of `space` from megaparsec, it's unlike `space` from parsec.
2021-06-01 09:09:47 +0200gehmehgeh(~user@user/gehmehgeh)
2021-06-01 09:10:01 +0200 <dminuoso> Guest6538: This combinator is almost like your `newSpaces` but differs chiefly in 3 aspects.
2021-06-01 09:10:13 +0200 <dminuoso> 1) Your combinator wont work if there's any further whitespace after the comment
2021-06-01 09:10:23 +0200 <dminuoso> 2) Your combinator wont accept block comments (might be important to you or not)
2021-06-01 09:10:34 +0200 <dminuoso> 3) Your combinator is fixed rather than parametrized
2021-06-01 09:11:02 +0200tonyday(~user@202-65-93-249.ip4.superloop.com) (Remote host closed the connection)
2021-06-01 09:12:13 +0200 <dminuoso> The idea is that you'd write something like `sc = munch spaces lineComment blockComment where lineComment = string "--" *> manyTill anyChar newline; blockComment = string "{-" *> manyTill anyChar (string "-}")`
2021-06-01 09:12:25 +0200jakzale(uid499518@id-499518.charlton.irccloud.com)
2021-06-01 09:12:28 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-06-01 09:13:21 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-06-01 09:14:20 +0200thiross(~user@173.242.113.143.16clouds.com)
2021-06-01 09:14:28 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-06-01 09:14:43 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-06-01 09:17:43 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-06-01 09:17:54 +0200gehmehgeh(~user@user/gehmehgeh)
2021-06-01 09:17:57 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-06-01 09:18:53 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
2021-06-01 09:20:37 +0200xprlgjf(~gavin@60.27.93.209.dyn.plus.net)
2021-06-01 09:22:41 +0200 <Guest6538> dminuoso, I should copy `spaces` and `lexeme` from https://hackage.haskell.org/package/megaparsec-9.0.1/docs/src/Text.Megaparsec.Lexer.html#space ?
2021-06-01 09:25:51 +0200dpl_(~dpl@77-121-78-163.chn.volia.net)
2021-06-01 09:26:25 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-06-01 09:26:39 +0200ixlun(~user@109.249.184.235) (Remote host closed the connection)
2021-06-01 09:26:49 +0200Shaeto(~Shaeto@94.25.234.213)
2021-06-01 09:28:33 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-06-01 09:35:04 +0200riatre(~quassel@2001:310:6000:f::5198:1)
2021-06-01 09:36:07 +0200riatre_(~quassel@2001:310:6000:f::5198:1) (Ping timeout: 272 seconds)
2021-06-01 09:36:23 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-06-01 09:36:32 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-06-01 09:36:35 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-01 09:36:53 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-06-01 09:38:33 +0200holy_(~h01y_b4z0@2400:adc1:178:c800:9e45:76a9:57f2:1665) (Ping timeout: 268 seconds)
2021-06-01 09:38:35 +0200river(~river@tilde.team/user/river) (Quit: Leaving)
2021-06-01 09:41:06 +0200thiross(~user@173.242.113.143.16clouds.com) (Ping timeout: 264 seconds)
2021-06-01 09:41:14 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds)
2021-06-01 09:44:32 +0200thiross(~user@173.242.113.143.16clouds.com)
2021-06-01 09:45:28 +0200 <albet70> is there bot here?
2021-06-01 09:45:32 +0200 <dminuoso> Yes.
2021-06-01 09:45:58 +0200 <albet70> :t id
2021-06-01 09:45:59 +0200 <lambdabot> a -> a
2021-06-01 09:46:14 +0200 <dminuoso> We also have yahb, which can be triggered by %
2021-06-01 09:46:16 +0200 <dminuoso> % :t id
2021-06-01 09:46:16 +0200 <yahb> dminuoso: a -> a
2021-06-01 09:46:36 +0200 <albet70> what it short for?
2021-06-01 09:46:41 +0200 <dminuoso> Yet another haskell bot
2021-06-01 09:46:55 +0200 <albet70> :)
2021-06-01 09:47:04 +0200 <dminuoso> yahb exposes ghci directly, while lambdabot is way more special and multi purpose
2021-06-01 09:47:21 +0200 <dminuoso> lambdabot has stuff like @pl
2021-06-01 09:47:40 +0200 <albet70> and hoogle bot?
2021-06-01 09:47:52 +0200 <dminuoso> Mmm, I think lambdabot can hoogle
2021-06-01 09:47:56 +0200 <dminuoso> @hoogle a -> a
2021-06-01 09:47:56 +0200 <lambdabot> Prelude id :: a -> a
2021-06-01 09:47:56 +0200 <lambdabot> Data.Function id :: a -> a
2021-06-01 09:47:56 +0200 <lambdabot> GHC.Base breakpoint :: a -> a
2021-06-01 09:48:03 +0200 <albet70> ok
2021-06-01 09:48:19 +0200schuelermine(~anselmsch@user/schuelermine)
2021-06-01 09:48:46 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-01 09:49:07 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-01 09:52:04 +0200Athas(athas@2a01:7c8:aaac:1cf:7de4:bc5c:7241:d6d9) (Quit: ZNC 1.8.2 - https://znc.in)
2021-06-01 09:52:14 +0200Athas(athas@sigkill.dk)
2021-06-01 09:52:40 +0200Flonk(~Flonk@ec2-52-40-29-25.us-west-2.compute.amazonaws.com) (Quit: Ping timeout (120 seconds))
2021-06-01 09:53:06 +0200Flonk(~Flonk@ec2-52-40-29-25.us-west-2.compute.amazonaws.com)
2021-06-01 09:54:32 +0200shryke(~shryke@190.43.6.93.rev.sfr.net)
2021-06-01 09:56:02 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-01 09:56:21 +0200shryke_(~shryke@91.103.43.254)
2021-06-01 09:56:39 +0200bfrk(~Thunderbi@200116b84593d400e083e41adfb91d63.dip.versatel-1u1.de)
2021-06-01 09:58:01 +0200nschoe(~quassel@178.251.84.79)
2021-06-01 09:58:05 +0200raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
2021-06-01 09:58:45 +0200brandonh(~brandonh@151.44.69.241)
2021-06-01 09:59:06 +0200shryke(~shryke@190.43.6.93.rev.sfr.net) (Ping timeout: 264 seconds)
2021-06-01 09:59:35 +0200raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-06-01 10:03:27 +0200Bartosz(~textual@24.35.90.211)
2021-06-01 10:05:04 +0200dhil(~dhil@195.213.192.85)
2021-06-01 10:07:28 +0200hendursa1(~weechat@user/hendursaga)
2021-06-01 10:07:36 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-06-01 10:08:11 +0200beka(~beka@104.193.170-254.PUBLIC.monkeybrains.net) (Ping timeout: 252 seconds)
2021-06-01 10:08:35 +0200Kaiepi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Read error: Connection reset by peer)
2021-06-01 10:08:42 +0200Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net)
2021-06-01 10:08:58 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
2021-06-01 10:10:07 +0200hendursaga(~weechat@user/hendursaga) (Ping timeout: 252 seconds)
2021-06-01 10:12:30 +0200ikex(~ash@user/ikex)
2021-06-01 10:13:56 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-06-01 10:16:54 +0200azeem(~azeem@dynamic-adsl-84-220-228-254.clienti.tiscali.it) (Remote host closed the connection)
2021-06-01 10:17:03 +0200azeem(~azeem@dynamic-adsl-84-220-228-254.clienti.tiscali.it)
2021-06-01 10:19:49 +0200guest0123(~aaron@2601:602:a080:fa0:21da:7ddc:2cc6:a10c) (Ping timeout: 272 seconds)
2021-06-01 10:21:23 +0200thiross(~user@173.242.113.143.16clouds.com) (Ping timeout: 252 seconds)
2021-06-01 10:21:37 +0200thiross(~user@173.242.113.143.16clouds.com)
2021-06-01 10:23:51 +0200fendor_(~fendor@178.165.178.245.wireless.dyn.drei.com)
2021-06-01 10:25:23 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2021-06-01 10:26:42 +0200fendor(~fendor@178.115.56.93.wireless.dyn.drei.com) (Ping timeout: 264 seconds)
2021-06-01 10:27:54 +0200Bartosz(~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-01 10:33:22 +0200holy_(~h01y_b4z0@2400:adc1:178:c800:9e45:76a9:57f2:1665)
2021-06-01 10:35:05 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 264 seconds)
2021-06-01 10:36:23 +0200fendor_fendor
2021-06-01 10:36:46 +0200xff0x_(~xff0x@2001:1a81:52ca:4f00:5ed9:a747:2841:c1b7) (Ping timeout: 264 seconds)
2021-06-01 10:37:30 +0200xff0x_(~xff0x@2001:1a81:52ca:4f00:158d:7c0b:fd80:1302)
2021-06-01 10:37:37 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds)
2021-06-01 10:39:51 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-06-01 10:40:41 +0200schuelermine(~anselmsch@user/schuelermine) (Quit: WeeChat 3.1)
2021-06-01 10:43:14 +0200 <Taneb> I dislike Yesod-style pervasive quasiquotes :(
2021-06-01 10:45:02 +0200 <Hecate> Taneb: I managed to avoid persistent, working with Yesod
2021-06-01 10:45:11 +0200 <Hecate> but uh, the route declaration still resists :<
2021-06-01 10:46:24 +0200Guest6538(~Guest65@2400:8902::f03c:92ff:fe60:98d8) (Quit: Client closed)
2021-06-01 10:47:08 +0200 <albet70> I use scotty
2021-06-01 10:47:14 +0200 <albet70> it's more easy to ise
2021-06-01 10:47:16 +0200 <albet70> ise
2021-06-01 10:50:05 +0200azeem(~azeem@dynamic-adsl-84-220-228-254.clienti.tiscali.it) (Read error: Connection reset by peer)
2021-06-01 10:52:14 +0200dyeplexer(~dyeplexer@user/dyeplexer) (Remote host closed the connection)
2021-06-01 10:53:49 +0200holy_(~h01y_b4z0@2400:adc1:178:c800:9e45:76a9:57f2:1665) (Ping timeout: 272 seconds)
2021-06-01 10:56:06 +0200wanagnuj(~wanagnuj@101.95.97.158)
2021-06-01 10:56:26 +0200ubert(~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233)
2021-06-01 10:57:25 +0200kuribas(~user@ptr-25vy0i96apm5u45pamz.18120a2.ip6.access.telenet.be)
2021-06-01 10:58:38 +0200 <merijn> Friends don't let friends use persistent >.>
2021-06-01 10:59:29 +0200 <kuribas> merijn: why not?
2021-06-01 11:00:57 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Remote host closed the connection)
2021-06-01 11:00:59 +0200 <merijn> The API is incredibly hard to use safely/correctly, it makes it incredibly tedious to do non-trivial operations and in general (in the long run) just seems to produce more work than it saves
2021-06-01 11:01:33 +0200 <merijn> Oh, also easy to leak resources
2021-06-01 11:01:38 +0200matsurago(~matsurago@nttkyo1723091.tkyo.nt.ngn.ppp.infoweb.ne.jp)
2021-06-01 11:01:59 +0200 <merijn> Because it was designed for an older version of conduit (that guaranteed prompt finalisation), but conduit no longer does that
2021-06-01 11:02:17 +0200azeem(~azeem@dynamic-adsl-84-220-228-254.clienti.tiscali.it)
2021-06-01 11:02:41 +0200ubikium(~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) (Ping timeout: 264 seconds)
2021-06-01 11:03:10 +0200boxscape(~boxscape@user/boxscape)
2021-06-01 11:03:31 +0200ubikium(~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net)
2021-06-01 11:03:53 +0200dpl_(~dpl@77-121-78-163.chn.volia.net) (Ping timeout: 264 seconds)
2021-06-01 11:04:14 +0200 <Taneb> Sadly I am stuck with persistent
2021-06-01 11:04:37 +0200 <boxscape> % type A :: forall a -> (Allowed a ~ True) => Type; data A a = A a deriving Show
2021-06-01 11:04:37 +0200 <yahb> boxscape: ; <interactive>:14:45: error:; Ambiguous occurrence `Type'; It could refer to; either `Language.Haskell.TH.Type', imported from `Language.Haskell.TH' (and originally defined in `Language.Haskell.TH.Syntax'); or `Data.Kind.Type', imported from `Data.Kind' (and originally defined in `GHC.Types')
2021-06-01 11:04:42 +0200 <Taneb> My objection is quasiquotes mean I have to learn another, poorly documented, language, to do anythiing
2021-06-01 11:04:43 +0200 <boxscape> err
2021-06-01 11:04:57 +0200 <boxscape> % type family Allowed a where Allowed Int = True; Allowed _ = False
2021-06-01 11:04:57 +0200 <yahb> boxscape:
2021-06-01 11:04:58 +0200 <boxscape> % type A :: forall a -> (Allowed a ~ True) => *; data A a = A a deriving Show
2021-06-01 11:04:58 +0200 <yahb> boxscape:
2021-06-01 11:05:02 +0200 <boxscape> % A "not allowed"
2021-06-01 11:05:02 +0200 <yahb> boxscape: A "not allowed"
2021-06-01 11:05:09 +0200 <boxscape> this does not seem like it should work?
2021-06-01 11:05:09 +0200dunj3(~dunj3@2001:16b8:3059:9800:5856:7ab4:1dd8:26ae)
2021-06-01 11:06:27 +0200 <merijn> Taneb: Same
2021-06-01 11:07:02 +0200 <merijn> Taneb: But the fact that I have a considerable amount of commits in persistent to keep my own stuff working is why I can't recommend others get started with it :p
2021-06-01 11:07:31 +0200 <merijn> My advice would be: Just use SQL >.>
2021-06-01 11:09:18 +0200 <tdammers> SQL is a pretty reasonable DSL for SQL
2021-06-01 11:09:28 +0200lavaman(~lavaman@98.38.249.169)
2021-06-01 11:10:33 +0200 <merijn> SQL also really scratches my "purely functional language with a basis in math" itch :p
2021-06-01 11:10:51 +0200 <nshepperd> boxscape: i don't think class constraints in kinds work, or mean anything
2021-06-01 11:11:05 +0200cheater(~Username@user/cheater) (Ping timeout: 264 seconds)
2021-06-01 11:11:11 +0200cheater1__(~Username@user/cheater)
2021-06-01 11:11:11 +0200cheater1__cheater
2021-06-01 11:11:21 +0200 <boxscape> nshepperd I was under the impression that that implies to *class* constraints but not equality constraints, but I might be wrong
2021-06-01 11:11:36 +0200Torro(Torro@gateway/vpn/protonvpn/torro)
2021-06-01 11:12:12 +0200matsurago(~matsurago@nttkyo1723091.tkyo.nt.ngn.ppp.infoweb.ne.jp) (Quit: Leaving)
2021-06-01 11:12:16 +0200 <boxscape> % type B :: forall a -> Eq a => *; data B a = B a deriving Show
2021-06-01 11:12:16 +0200 <yahb> boxscape: ; <interactive>:20:11: error:; * Illegal constraint in a kind: forall a -> Eq a => *; * In a standalone kind signature for `B': forall a -> Eq a => *
2021-06-01 11:12:26 +0200 <boxscape> nshepperd for what it's worth it doesn't say that the equality constraint is illegal
2021-06-01 11:12:30 +0200 <nshepperd> hm
2021-06-01 11:14:05 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 264 seconds)
2021-06-01 11:14:05 +0200azeem(~azeem@dynamic-adsl-84-220-228-254.clienti.tiscali.it) (Ping timeout: 264 seconds)
2021-06-01 11:14:38 +0200 <boxscape> % type C :: forall a -> (a ~ Int) => *; data C a = C a deriving Show -- (there's actually no need to bring type families into this)
2021-06-01 11:14:38 +0200 <yahb> boxscape:
2021-06-01 11:15:00 +0200wei2912(~wei2912@112.199.250.21) (Quit: Lost terminal)
2021-06-01 11:15:32 +0200 <nshepperd> % :t A
2021-06-01 11:15:32 +0200 <yahb> nshepperd: forall {a} {ev :: Allowed a ~ 'True}. a -> A a
2021-06-01 11:15:48 +0200 <boxscape> hm that doesn't look like a constraint
2021-06-01 11:16:20 +0200 <maerwald> merijn: my suspicion is that it's laziness to learn SQL... which, I agree, is tedious if you don't use raw SQL a lot. It's easy to forget the details, because none of it is intuitive.
2021-06-01 11:17:54 +0200 <dminuoso> maerwald: But with persistent you have to learn SQL *and* some poorly documented DSL ontop.
2021-06-01 11:18:19 +0200 <maerwald> Yeah, which is why I usually re-learn SQL
2021-06-01 11:18:28 +0200 <kuribas> learning a DSL or language in order not to have to understand SQL is a terrible idea.
2021-06-01 11:18:33 +0200 <dminuoso> It's my experience, that any reasonable use of an "sql abstraction layer" eventually leads to you thinking of queris in terms of SQL, and then figuring out how to write the DSL that produces the expected SQL
2021-06-01 11:18:51 +0200 <nshepperd> % :t A "not allowed"
2021-06-01 11:18:51 +0200 <yahb> nshepperd: A String
2021-06-01 11:19:00 +0200 <dminuoso> nshepperd: cute!
2021-06-01 11:19:05 +0200 <maerwald> But if I don't use SQL for 1-2 years, most of it is gone from my brain
2021-06-01 11:19:11 +0200 <dminuoso> So is persistent. :P
2021-06-01 11:19:17 +0200 <kuribas> dminuoso: which is why my DSL is pretty much 1-1 with SQL.
2021-06-01 11:19:24 +0200 <nshepperd> not sure that what that is but i guess it can't be a real constraint since A isn't a GADT
2021-06-01 11:19:43 +0200 <boxscape> I wonder if GHC just instantiates that argument with `Any` and that's that
2021-06-01 11:20:01 +0200 <kuribas> dminuoso: except that I disallow right joins in the typed layer because it makes null checking very hard.
2021-06-01 11:20:37 +0200brandonh(~brandonh@151.44.69.241) (Quit: brandonh)
2021-06-01 11:20:43 +0200jumper149(~jumper149@80.240.31.34)
2021-06-01 11:21:00 +0200 <boxscape> % data D where D :: forall {a} {ev :: a ~ Int}. a -> C a
2021-06-01 11:21:00 +0200 <yahb> boxscape: ; <interactive>:34:37: error:; * Expected a type, but `a ~ Int' has kind `Constraint'; * In the kind `a ~ Int'; In the definition of data constructor `D'; In the data declaration for `D'
2021-06-01 11:21:03 +0200 <boxscape> :(
2021-06-01 11:21:03 +0200xff0x_(~xff0x@2001:1a81:52ca:4f00:158d:7c0b:fd80:1302) (Ping timeout: 272 seconds)
2021-06-01 11:21:41 +0200 <nshepperd> seems possible. a type can't carry evidence anyway so Any is as good as... anything there
2021-06-01 11:21:41 +0200xff0x_(~xff0x@2001:1a81:52ca:4f00:8a7f:8182:f670:e586)
2021-06-01 11:21:42 +0200 <jumper149> Hi, What are currently the best tools for dead code detection regarding Haskell.
2021-06-01 11:21:53 +0200azeem(~azeem@dynamic-adsl-78-13-240-225.clienti.tiscali.it)
2021-06-01 11:21:57 +0200 <maerwald> the new weeder
2021-06-01 11:22:15 +0200 <maerwald> https://github.com/ocharles/weeder
2021-06-01 11:22:19 +0200 <jumper149> https://hackage.haskell.org/package/weeder ?
2021-06-01 11:22:43 +0200 <maerwald> yep, since version 2
2021-06-01 11:25:01 +0200 <jumper149> maerwald: Ok this is looking perfect, let's hope it works well :)
2021-06-01 11:25:45 +0200shryke_(~shryke@91.103.43.254) (Quit: WeeChat 3.1)
2021-06-01 11:25:52 +0200 <maerwald> dminuoso: yeah... there are only two ways to learn: 1. build an intuition and keep that (and be able to deconstruct the intuition into its components if needed), 2. mess up really hard and learn through PTSD. Frameworks try to avoid both.
2021-06-01 11:27:17 +0200ikex(~ash@user/ikex) (Ping timeout: 264 seconds)
2021-06-01 11:28:07 +0200shryke(~shryke@91.103.43.254)
2021-06-01 11:30:13 +0200 <dy> maerwald: bash, the only language named after how you learn it!
2021-06-01 11:30:19 +0200 <dy> Bashing your head against hard surfaces.
2021-06-01 11:30:20 +0200xff0x_xff0x
2021-06-01 11:30:32 +0200 <maerwald> dy: yeat, confusingly, I remember a lot of bash pitfalls
2021-06-01 11:30:42 +0200 <maerwald> because they delete your files and break your environment :)
2021-06-01 11:31:00 +0200 <dy> Amen to the SQL thing though
2021-06-01 11:31:18 +0200 <dy> While I do like some ORMs and such, "just write raw SQL" is honestly usually the better approach in the long run
2021-06-01 11:31:24 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-01 11:31:39 +0200 <dy> Not to mention many ORMs make even basic n+1 type query optimization a pain
2021-06-01 11:32:05 +0200 <maerwald> It's also embarrassing to have done backend dev for several years and not be able to write a correct SQL statement without google... but yeah, can you blame us?
2021-06-01 11:32:14 +0200 <boxscape> nshepperd dumping core reveals it actually passes UnsafeRefl, at least in HEAD, and unsafely coerces a representational equality in 8.10
2021-06-01 11:32:23 +0200 <dy> Even more infuriating is how frameworks seem to just be completely blind to (materialized) views, triggers, etc
2021-06-01 11:32:32 +0200 <dy> Or provide no means to handle them in migrations.
2021-06-01 11:32:32 +0200 <kuribas> maerwald: erm yes? Just grab a book on SQL? Read the mysql (or postgresql) manual?
2021-06-01 11:32:40 +0200qbt(~edun@user/edun)
2021-06-01 11:32:55 +0200 <dy> So you have to basically give up your framework's migrations or substantial features if you want to use views, triggers, in-DB constraints etc
2021-06-01 11:32:57 +0200 <kuribas> maerwald: also, goole to look up some details is fine IMO.
2021-06-01 11:33:00 +0200 <maerwald> kuribas: when? During saturdays when I'm drunk?
2021-06-01 11:33:23 +0200 <kuribas> maerwald: for example :)
2021-06-01 11:33:26 +0200 <dy> Even though that's way better in general as it means you don't have to worry reproducing the same sanity checks and cleaning everywhere
2021-06-01 11:34:36 +0200 <dy> But yeah stuff that should be easy because of SQL being the way it is are made hard by an ORM layer.
2021-06-01 11:34:52 +0200 <dy> Like using indices, views, etc to optimize common queries.
2021-06-01 11:34:55 +0200cheater1__(~Username@user/cheater)
2021-06-01 11:35:05 +0200 <dy> Even Django's ORM which is generally pretty good just throws up its hands at views.
2021-06-01 11:35:05 +0200cheater(~Username@user/cheater) (Ping timeout: 264 seconds)
2021-06-01 11:35:06 +0200cheater1__cheater
2021-06-01 11:35:23 +0200 <kuribas> dy: what's the problem with views?
2021-06-01 11:35:37 +0200 <dy> There's no real first class support for them.
2021-06-01 11:35:38 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds)
2021-06-01 11:35:49 +0200 <dy> You have to basically trick Django into thinking they're normal models.
2021-06-01 11:36:13 +0200 <dy> And you get no support with migrations and end up with parallel setup code.
2021-06-01 11:36:24 +0200 <maerwald> I've done django too and ended up doing raw sql pretty quickly
2021-06-01 11:36:41 +0200 <dy> You have to fake the migrations and then manually write the raw SQL into them
2021-06-01 11:36:44 +0200 <maerwald> There it was because of abyssmal performance
2021-06-01 11:37:07 +0200 <dy> prefetch_related + Q
2021-06-01 11:37:10 +0200 <dy> It's essential.
2021-06-01 11:37:24 +0200 <dy> Otherwise you'll get 1+N queries everywhere.
2021-06-01 11:37:28 +0200 <maerwald> People end up loading huge sets into memory and do stuff there, because they don't understand what the ORM does
2021-06-01 11:37:33 +0200 <dy> Django-debug-toolbar thankfully has a nice query inspector panel.
2021-06-01 11:37:42 +0200dminuosofinds that for the majority of problems, handwritten SQL is faster to write and you dont have a bunch of magic semantics in your ORM layer with automatic query twisting, caching, etc.
2021-06-01 11:37:50 +0200 <dminuoso> And you get predictable performance
2021-06-01 11:37:52 +0200 <dy> Yeah I tend to agree
2021-06-01 11:37:55 +0200 <boxscape> % :t C "test" :: C String -- is there any way to actually write the type of `C "test"`?
2021-06-01 11:37:55 +0200 <yahb> boxscape: ; <interactive>:1:13: error:; * Couldn't match kind `[Char]' with `Int'; Expected: Int; Actual: String; * In an expression type signature: C String; In the expression: C "test" :: C String
2021-06-01 11:38:11 +0200 <sshine> I remember doing a database join in LINQ some years ago where the predicate was '<' rather than '='... it was possible, but hacky.
2021-06-01 11:38:12 +0200 <boxscape> % C "test"
2021-06-01 11:38:12 +0200 <yahb> boxscape: C "test"
2021-06-01 11:38:29 +0200 <dy> LINQ is just janky monads :p
2021-06-01 11:38:35 +0200 <dy> Oh I'm sorry "computation expressions"
2021-06-01 11:38:38 +0200 <sshine> mernerds
2021-06-01 11:39:14 +0200 <kuribas> dminuoso: this. Orm's solve an imaginary problem
2021-06-01 11:39:16 +0200 <dminuoso> Is there a way to ruthlessly exit from a Haskell program? exitWith relies on exceptions which are caught on their way up in my program.
2021-06-01 11:39:23 +0200 <dminuoso> This is just for debugging purposes. :)
2021-06-01 11:39:48 +0200Feuermagier(~Feuermagi@user/feuermagier)
2021-06-01 11:39:55 +0200 <boxscape> cause a ghc panic?
2021-06-01 11:40:00 +0200Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
2021-06-01 11:40:24 +0200Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net)
2021-06-01 11:40:27 +0200 <boxscape> or a segfault
2021-06-01 11:40:29 +0200 <dminuoso> Mmm. oh well, I guess I could use unsafeCoerce ..
2021-06-01 11:40:48 +0200 <dminuoso> Is exit(2) not exposed to Haskell-land?
2021-06-01 11:40:57 +0200mc47(~yecinem@89.246.239.190) (Remote host closed the connection)
2021-06-01 11:41:17 +0200 <maerwald> https://hackage.haskell.org/package/unix-2.7.2.2/docs/System-Posix-Process.html#v:exitImmediately
2021-06-01 11:41:35 +0200 <maerwald> foreign import ccall unsafe "exit" -- looks good
2021-06-01 11:41:51 +0200 <dminuoso> maerwald: Ah that looks right, thanks.
2021-06-01 11:43:00 +0200 <kuribas> merijn: I don't think my library has those problems.
2021-06-01 11:43:47 +0200xwx(~george@user/george)
2021-06-01 11:43:55 +0200 <kuribas> merijn: if conduit doesn't finalize, then how do you finalize?
2021-06-01 11:43:58 +0200 <dminuoso> Nobody thinks their library has problems.
2021-06-01 11:44:00 +0200 <dminuoso> :-)
2021-06-01 11:44:06 +0200dpl_(~dpl@77-121-78-163.chn.volia.net)
2021-06-01 11:44:26 +0200 <maerwald> kuribas: wait for streamly to get SQL support :p
2021-06-01 11:44:27 +0200 <kuribas> dminuoso: not until proven otherwise :)
2021-06-01 11:44:43 +0200 <Taneb> kuribas: sometimes even then ;)
2021-06-01 11:44:43 +0200 <xwx> does anyone know if you can use a preprocessor (specifically lhs2tex) with the haskell language server?
2021-06-01 11:44:59 +0200japh(~scp1@user/japh)
2021-06-01 11:45:52 +0200 <kuribas> dminuoso: also, I haven't made the library official since I still make changes as I use it :)
2021-06-01 11:46:22 +0200 <boxscape> nshepperd erm I take my last statement about UnsafeRefl back, that's in the Core of any expression in ghci
2021-06-01 11:48:10 +0200_xft0(~root@185.234.208.208.r.toneticgroup.pl)
2021-06-01 11:48:46 +0200chomwitt(~Pitsikoko@2a02:587:dc02:b00:b16c:5166:feb8:97d5) (Ping timeout: 264 seconds)
2021-06-01 11:52:34 +0200Katarushisu(~Katarushi@cpc152083-finc20-2-0-cust170.4-2.cable.virginm.net)
2021-06-01 11:54:06 +0200 <boxscape> % f :: forall a . (a ~ Int) => C a -> Bool; f = undefined -- this error message surprises me as well tbh
2021-06-01 11:54:06 +0200 <yahb> boxscape: ; <interactive>:41:30: error:; * Couldn't match expected kind `Int' with actual kind `a'; `a' is a rigid type variable bound by; `forall a. (a ~ Int) => C a -> Bool'; at <interactive>:41:13; * In the type signature: f :: forall a. (a ~ Int) => C a -> Bool
2021-06-01 11:56:48 +0200haskman(~haskman@171.48.41.1)
2021-06-01 12:01:19 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9)
2021-06-01 12:04:29 +0200raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
2021-06-01 12:04:56 +0200raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-06-01 12:05:53 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Ping timeout: 252 seconds)
2021-06-01 12:06:22 +0200Guest31(~textual@cpc146410-hari22-2-0-cust124.20-2.cable.virginm.net)
2021-06-01 12:06:53 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-06-01 12:08:18 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-01 12:08:33 +0200shryke(~shryke@91.103.43.254) (Ping timeout: 272 seconds)
2021-06-01 12:08:46 +0200satai(~satai@static-84-42-172-253.net.upcbroadband.cz)
2021-06-01 12:10:32 +0200Nahra(~user@static.161.95.99.88.clients.your-server.de)
2021-06-01 12:11:47 +0200bgamari(~bgamari@2001:470:e438::1) (Quit: ZNC 1.8.1 - https://znc.in)
2021-06-01 12:12:05 +0200bgamari(~bgamari@72.65.101.148)
2021-06-01 12:13:30 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-06-01 12:13:51 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-01 12:17:17 +0200Nahra(~user@static.161.95.99.88.clients.your-server.de) (Remote host closed the connection)
2021-06-01 12:17:25 +0200shryke(~shryke@91.103.43.254)
2021-06-01 12:18:34 +0200prite(~pritam@user/pritambaral)
2021-06-01 12:19:02 +0200Nahra(~user@static.161.95.99.88.clients.your-server.de)
2021-06-01 12:23:57 +0200thiross(~user@173.242.113.143.16clouds.com) (Ping timeout: 272 seconds)
2021-06-01 12:24:26 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-06-01 12:25:06 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-01 12:26:46 +0200 <boxscape> hah
2021-06-01 12:26:47 +0200 <boxscape> % type C :: forall a -> (a ~ Int) => *; data C a = C a deriving Show
2021-06-01 12:26:47 +0200 <yahb> boxscape:
2021-06-01 12:26:54 +0200 <boxscape> as far as I can tell, this Show instance is impossible to write by hand
2021-06-01 12:27:34 +0200 <boxscape> (barring, perhaps, unsafeCoerce)
2021-06-01 12:28:16 +0200 <boxscape> though I'm not even sure that helps
2021-06-01 12:30:10 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-06-01 12:30:14 +0200 <boxscape> you can write one for `C Int`, but not for `Show a => C a`, which the derived one is
2021-06-01 12:30:17 +0200cheater(~Username@user/cheater) (Ping timeout: 272 seconds)
2021-06-01 12:30:24 +0200cheater1__(~Username@user/cheater)
2021-06-01 12:30:25 +0200cheater1__cheater
2021-06-01 12:30:46 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-01 12:31:09 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-01 12:31:34 +0200chomwitt(~Pitsikoko@athedsl-20549.home.otenet.gr)
2021-06-01 12:31:41 +0200zeenk(~zeenk@2a02:2f04:a310:b600:b098:bf18:df4d:4c41)
2021-06-01 12:34:10 +0200pera(~pera@user/pera)
2021-06-01 12:35:14 +0200 <boxscape> % :t show @(C _) -- well, this *claims* that it only works for C Int, however...
2021-06-01 12:35:14 +0200 <yahb> boxscape: C Int -> String
2021-06-01 12:35:15 +0200 <boxscape> % show (C "foo") -- this works just fine
2021-06-01 12:35:15 +0200 <yahb> boxscape: "C \"foo\""
2021-06-01 12:35:25 +0200hmmmas(~chenqisu1@183.217.202.217) (Quit: Leaving.)
2021-06-01 12:35:47 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 272 seconds)
2021-06-01 12:35:59 +0200Toast52(~Toast52@151.192.167.120) (Ping timeout: 272 seconds)
2021-06-01 12:36:25 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-06-01 12:36:43 +0200haskman(~haskman@171.48.41.1) (Quit: Going to sleep. ZZZzzz…)
2021-06-01 12:37:07 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-01 12:37:19 +0200 <dminuoso> boxscape What is this `type C :: ` annotation?
2021-06-01 12:37:37 +0200 <boxscape> dminuoso -XStandaloneKindSignatures, or do you mean this specific one?
2021-06-01 12:37:41 +0200chomwitt(~Pitsikoko@athedsl-20549.home.otenet.gr) (Ping timeout: 272 seconds)
2021-06-01 12:37:43 +0200 <dminuoso> I guess that's what I mean
2021-06-01 12:37:45 +0200 <boxscape> ok
2021-06-01 12:38:28 +0200 <dminuoso> boxscape: Is there a linkage between the choice of the type variable `a` in the standalone kind signature and the following declaration?
2021-06-01 12:38:35 +0200 <dminuoso> % type C :: forall b -> (b ~ Int) => *; data C a = C a deriving Show
2021-06-01 12:38:35 +0200 <yahb> dminuoso:
2021-06-01 12:38:39 +0200 <boxscape> nope
2021-06-01 12:38:49 +0200 <boxscape> I don't think ScopedTypeVariables interacts with this, either
2021-06-01 12:39:01 +0200 <dminuoso> What is => ?
2021-06-01 12:39:09 +0200Feuermagier(~Feuermagi@user/feuermagier) (Ping timeout: 272 seconds)
2021-06-01 12:39:13 +0200 <dminuoso> Dark magic here
2021-06-01 12:39:14 +0200 <boxscape> same as ever, constraint quantifier
2021-06-01 12:39:19 +0200 <dminuoso> Oh
2021-06-01 12:39:34 +0200 <dminuoso> Ah hold on, this `forall b -> ` is a visible something something
2021-06-01 12:39:38 +0200 <boxscape> yup
2021-06-01 12:39:44 +0200 <boxscape> visible dependent quantification
2021-06-01 12:39:48 +0200 <dminuoso> Yes.
2021-06-01 12:40:03 +0200 <dminuoso> I recall the ghc proposal
2021-06-01 12:40:23 +0200 <nshepperd> % :t C
2021-06-01 12:40:23 +0200 <yahb> nshepperd: forall {b} {ev :: b ~ Int}. b -> C b
2021-06-01 12:40:48 +0200 <dminuoso> % :t C String
2021-06-01 12:40:48 +0200 <yahb> dminuoso: ; <interactive>:1:3: error:; * Data constructor not in scope: String; * Perhaps you meant one of these: `StringL' (imported from Language.Haskell.TH), variable `string' (imported from Text.Parsec), `Strict' (imported from Control.Lens)
2021-06-01 12:40:51 +0200 <dminuoso> % :t C "foo"
2021-06-01 12:40:51 +0200 <yahb> dminuoso: C String
2021-06-01 12:40:58 +0200 <nshepperd> ???
2021-06-01 12:41:17 +0200 <boxscape> % :k C String
2021-06-01 12:41:17 +0200 <yahb> boxscape: (String ~ Int) => *
2021-06-01 12:41:32 +0200 <dminuoso> {ev :: b ~ Int}
2021-06-01 12:41:34 +0200 <dminuoso> What is that even saying?
2021-06-01 12:41:41 +0200 <boxscape> err
2021-06-01 12:42:01 +0200 <boxscape> pass a dictionary with an equality constraint?
2021-06-01 12:42:11 +0200 <boxscape> (I'm kind of wondering where the ev name comes from)
2021-06-01 12:42:22 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-06-01 12:42:24 +0200 <dminuoso> boxscape: wouldn't that rather be written as `b ~ Int =>`?
2021-06-01 12:42:35 +0200 <boxscape> yeah but I guess that's sort of the same thing in core
2021-06-01 12:42:40 +0200 <dminuoso> this thing is quantified over ev, whose type is (!) b ~ Int
2021-06-01 12:42:44 +0200 <dminuoso> I have no clue what that means
2021-06-01 12:43:09 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-01 12:43:09 +0200 <boxscape> I mean you can't write it, so it's questionable whether it means anything
2021-06-01 12:43:16 +0200 <nshepperd> pass a promoted constraint evidence as a type variable, lol
2021-06-01 12:43:24 +0200haskman(~haskman@171.48.41.1)
2021-06-01 12:43:24 +0200 <dminuoso> lol
2021-06-01 12:44:12 +0200 <dminuoso> Well, but wouldnt I be able to write
2021-06-01 12:44:19 +0200 <nshepperd> also how does it even refer to b when the type variables in the declaration didn't even match up
2021-06-01 12:44:45 +0200 <dminuoso> nshepperd: that's not a problem
2021-06-01 12:44:52 +0200 <boxscape> okay "ev" means "evidence"
2021-06-01 12:45:10 +0200 <dminuoso> boxscape: So I guess your assumption about "pass a dictionary with an equality cosntraint" is right
2021-06-01 12:45:15 +0200thiross(~user@173.242.113.143.16clouds.com)
2021-06-01 12:45:17 +0200 <dminuoso> Or it seems reasonable
2021-06-01 12:45:21 +0200 <dminuoso> but the type signature still looks off
2021-06-01 12:45:27 +0200 <boxscape> oh yeah absolutely
2021-06-01 12:45:36 +0200 <nshepperd> except it's a promoted dictionary, which is nonsense
2021-06-01 12:45:39 +0200 <dminuoso> as that should rahter read `forall b. b ~ Int => b -> C b`
2021-06-01 12:46:06 +0200hmmmas(~chenqisu1@183.217.202.217)
2021-06-01 12:46:06 +0200 <dminuoso> Is this some subtle bug?
2021-06-01 12:47:08 +0200 <boxscape> probably
2021-06-01 12:47:12 +0200 <nshepperd> dminuoso: isn't it a problem? where is it getting that the type variable which has to be ~ Int, is the same type variable as the first parameter of C? that's not written anywhere
2021-06-01 12:47:25 +0200 <dminuoso> nshepperd: its from the standalone signature
2021-06-01 12:47:34 +0200 <dminuoso> % type C :: forall b -> (b ~ Int) => *; data C a = C a deriving Show
2021-06-01 12:47:34 +0200 <yahb> dminuoso:
2021-06-01 12:47:51 +0200 <nshepperd> right, b is not a
2021-06-01 12:47:54 +0200 <dminuoso> boxscape: curious, is the visible dependent qualifier necessary? why cant we use `forall b.`?
2021-06-01 12:47:58 +0200 <dminuoso> nshepperd: that's irrelevant
2021-06-01 12:48:07 +0200 <dminuoso> nshepperd: its not in the same scope
2021-06-01 12:48:14 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-06-01 12:48:18 +0200 <nshepperd> that doesn't help
2021-06-01 12:48:25 +0200 <boxscape> nshepperd it's the same because it's the first parameter to C, in the standalone kind signature and in its definition
2021-06-01 12:48:32 +0200 <dminuoso> similar to how you could write: `id :: forall a. a -> a; id @b c = c`
2021-06-01 12:48:46 +0200 <boxscape> % type D :: forall b . (b ~ Int) => *; data D a = MkD a deriving Show
2021-06-01 12:48:46 +0200 <yahb> boxscape: ; <interactive>:57:38: error:; * Not a function kind: *; but extra binders found: a; * In the data type declaration for `D'
2021-06-01 12:48:53 +0200 <nshepperd> hmm
2021-06-01 12:48:59 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-01 12:49:08 +0200 <dminuoso> boxscape: this diagnostic reads really weird too
2021-06-01 12:49:12 +0200 <dminuoso> "not a function kind: *"
2021-06-01 12:49:29 +0200 <boxscape> % type D :: forall b . (b ~ Int) => *; data D @a = MkD a deriving Show -- I would almost expect this to work
2021-06-01 12:49:29 +0200 <yahb> boxscape: ; <interactive>:59:46: error:; Unexpected type application @a; In the data declaration for `D'
2021-06-01 12:49:32 +0200 <dminuoso> I think I understand why GHC says this.
2021-06-01 12:49:45 +0200 <dminuoso> Presumably with the chance, data declarations are *necessarily* visible dependent
2021-06-01 12:49:48 +0200 <dminuoso> *change
2021-06-01 12:49:53 +0200thiross(~user@173.242.113.143.16clouds.com) (Ping timeout: 252 seconds)
2021-06-01 12:51:24 +0200 <boxscape> hmm, not quite
2021-06-01 12:51:27 +0200 <boxscape> % :k Proxy
2021-06-01 12:51:27 +0200 <yahb> boxscape: k -> *
2021-06-01 12:51:36 +0200xff0x(~xff0x@2001:1a81:52ca:4f00:8a7f:8182:f670:e586) (Remote host closed the connection)
2021-06-01 12:51:43 +0200 <boxscape> this has both non-dependent visible and dependent invisible quantification
2021-06-01 12:51:52 +0200xff0x(~xff0x@2001:1a81:52ca:4f00:a77b:5731:d9ca:93c9)
2021-06-01 12:52:01 +0200 <boxscape> I think
2021-06-01 12:52:32 +0200 <boxscape> full kind is `forall k . k -> *`
2021-06-01 12:54:01 +0200 <dminuoso> % :set -fexplicit-forall
2021-06-01 12:54:01 +0200 <yahb> dminuoso: Some flags have not been recognized: -fexplicit-forall
2021-06-01 12:54:03 +0200 <dminuoso> uh
2021-06-01 12:54:17 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-06-01 12:54:27 +0200 <dminuoso> % :set -fprint-explicit-foralls
2021-06-01 12:54:28 +0200 <yahb> dminuoso:
2021-06-01 12:54:30 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-01 12:54:31 +0200 <dminuoso> % :k Proxy
2021-06-01 12:54:31 +0200 <yahb> dminuoso: forall {k}. k -> *
2021-06-01 12:54:49 +0200 <dminuoso> boxscape: this looks very invisible to me
2021-06-01 12:55:02 +0200 <boxscape> yes, the k is inferred, invisible, and dependent
2021-06-01 12:55:05 +0200 <boxscape> the forall {k}
2021-06-01 12:55:12 +0200 <boxscape> but the `k ->` is visible and independent
2021-06-01 12:55:24 +0200 <dminuoso> uh
2021-06-01 12:55:26 +0200 <boxscape> or.. non-dependent, not sure
2021-06-01 12:55:43 +0200wallymathieu(~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-01 12:55:52 +0200 <nshepperd> % :t Proxy
2021-06-01 12:56:13 +0200 <boxscape> I accidentally redefined the data constructor Proxy in a private yahb session I think fwiw :)
2021-06-01 12:56:22 +0200 <boxscape> but not sure why yahb isn't showing anything
2021-06-01 12:56:29 +0200aman(~aman@user/aman)
2021-06-01 12:56:54 +0200 <boxscape> % "yahb?"
2021-06-01 12:57:25 +0200 <nshepperd> RIP
2021-06-01 12:58:28 +0200 <dminuoso> 12:55:12 boxscape | but the `k ->` is visible and independent
2021-06-01 12:58:36 +0200 <dminuoso> boxscape: Are you sure here?>
2021-06-01 12:58:46 +0200 <boxscape> yep, 98%
2021-06-01 12:58:58 +0200yahb(xsbot@user/mniip/bot/yahb) (Ping timeout: 264 seconds)
2021-06-01 12:59:54 +0200 <boxscape> dminuoso from richard eisenberg's thesis: https://i.imgur.com/2XEl2Ls.png
2021-06-01 13:00:03 +0200favonia(~favonia@user/favonia) (Quit: The Lounge - https://thelounge.chat)
2021-06-01 13:01:19 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2021-06-01 13:01:22 +0200 <boxscape> (though he has since said calling it "relevant" is a mistake, and it should be "erasable" and "non-erasable" instead of "irrelevant" and "relevant", but that's one of the dimensions we weren't talking about here, anyway)
2021-06-01 13:01:24 +0200 <dminuoso> boxscape: Ah I see where my confusion comes from.
2021-06-01 13:01:45 +0200thiross(~user@173.242.113.143.16clouds.com)
2021-06-01 13:02:49 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9)
2021-06-01 13:03:45 +0200yahb(xsbot@user/mniip/bot/yahb)
2021-06-01 13:04:50 +0200 <boxscape> % :t Proxy
2021-06-01 13:04:51 +0200 <yahb> boxscape: forall {k} {a :: k}. Proxy' a
2021-06-01 13:04:58 +0200pera(~pera@user/pera) (Ping timeout: 264 seconds)
2021-06-01 13:05:05 +0200pera(~pera@137.221.132.196)
2021-06-01 13:05:19 +0200 <boxscape> % :q
2021-06-01 13:05:19 +0200 <yahb> boxscape:
2021-06-01 13:05:22 +0200 <boxscape> % :t Proxy
2021-06-01 13:05:22 +0200 <yahb> boxscape: forall {k} {t :: k}. Proxy t
2021-06-01 13:05:28 +0200peraGuest5645
2021-06-01 13:05:39 +0200haskman(~haskman@171.48.41.1) (Quit: Going to sleep. ZZZzzz…)
2021-06-01 13:05:46 +0200megaTherion(~therion@unix.io) (*.net *.split)
2021-06-01 13:05:47 +0200farn(~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) (*.net *.split)
2021-06-01 13:06:22 +0200shryke(~shryke@91.103.43.254) (Ping timeout: 268 seconds)
2021-06-01 13:06:39 +0200haskman(~haskman@171.48.41.1)
2021-06-01 13:07:36 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Ping timeout: 268 seconds)
2021-06-01 13:09:17 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-06-01 13:11:23 +0200megaTherion(~therion@unix.io)
2021-06-01 13:11:23 +0200farn(~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505)
2021-06-01 13:11:29 +0200Feuermagier(~Feuermagi@user/feuermagier)
2021-06-01 13:11:45 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Client Quit)
2021-06-01 13:11:52 +0200 <boxscape> % toDyn (MkC 53 :: C Int)
2021-06-01 13:11:52 +0200 <yahb> boxscape: ; <interactive>:5:1: error:; * No instance for (Typeable <>) arising from a use of `toDyn'; * In the expression: toDyn (MkC 53 :: C Int); In an equation for `it': it = toDyn (MkC 53 :: C Int)
2021-06-01 13:11:54 +0200 <boxscape> what?
2021-06-01 13:11:55 +0200Guest5645(~pera@137.221.132.196) (Ping timeout: 268 seconds)
2021-06-01 13:11:57 +0200 <boxscape> what is <>
2021-06-01 13:12:07 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-06-01 13:12:18 +0200 <dminuoso> % :t toDyn
2021-06-01 13:12:18 +0200 <yahb> dminuoso: Typeable a => a -> Dynamic
2021-06-01 13:13:40 +0200 <dminuoso> % :t MkC
2021-06-01 13:13:40 +0200 <yahb> dminuoso: forall {a} {ev :: a ~ Int}. a -> C a
2021-06-01 13:14:11 +0200 <lortabac> is there a way to get the list of all the dependencies of a project (including the transitive ones)?
2021-06-01 13:14:22 +0200 <dminuoso> lortabac: cabal-plan
2021-06-01 13:14:44 +0200 <lortabac> is it a separate executable that I need to install?
2021-06-01 13:14:57 +0200 <dminuoso> Yeah, you can install it with `cabal install cabal-plan` if you like
2021-06-01 13:15:14 +0200raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds)
2021-06-01 13:15:17 +0200 <lortabac> ok thanks
2021-06-01 13:17:02 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-06-01 13:17:02 +0200 <dminuoso> lortabac: Alternatively you can jq into dist-newstyle/cache/plan.json (cabal-plan is also just an interface for that file)
2021-06-01 13:17:28 +0200 <lortabac> apparently cabal-plan can generate dot files, it seems worth installing
2021-06-01 13:17:40 +0200 <dminuoso> Indeed, it can also do transitive reduction, which might be useful to you
2021-06-01 13:18:43 +0200farn(~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) (Ping timeout: 268 seconds)
2021-06-01 13:19:04 +0200farn(~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505)
2021-06-01 13:19:06 +0200bhrgunatha(~bhrgunath@2001-b011-8011-18ad-e68c-7ce2-e7ef-f120.dynamic-ip6.hinet.net)
2021-06-01 13:19:20 +0200megaTherion(~therion@unix.io) (Ping timeout: 268 seconds)
2021-06-01 13:19:29 +0200megaTherion(~therion@unix.io)
2021-06-01 13:21:14 +0200raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-06-01 13:22:59 +0200bhrgunatha(~bhrgunath@2001-b011-8011-18ad-e68c-7ce2-e7ef-f120.dynamic-ip6.hinet.net) (Client Quit)
2021-06-01 13:25:09 +0200shryke(~shryke@91.103.43.254)
2021-06-01 13:25:18 +0200lieuwex(~lieuwelie@2001:470:69fc:105::4e6) ()
2021-06-01 13:30:42 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-06-01 13:32:27 +0200Guest31(~textual@cpc146410-hari22-2-0-cust124.20-2.cable.virginm.net) (Quit: Textual IRC Client: www.textualapp.com)
2021-06-01 13:34:26 +0200slep(~slep@cpc150002-brnt4-2-0-cust437.4-2.cable.virginm.net) (Ping timeout: 252 seconds)
2021-06-01 13:34:35 +0200raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.1)
2021-06-01 13:34:56 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-06-01 13:36:29 +0200keutoi(~keutoi@157.48.91.62)
2021-06-01 13:36:41 +0200slep(~slep@cpc150002-brnt4-2-0-cust437.4-2.cable.virginm.net)
2021-06-01 13:37:52 +0200Toast52(~Toast52@151.192.167.120)
2021-06-01 13:42:30 +0200xsperry(~as@user/xsperry) (Read error: Connection reset by peer)
2021-06-01 13:42:59 +0200lavaman(~lavaman@98.38.249.169)
2021-06-01 13:44:36 +0200aman(~aman@user/aman) (Quit: aman)
2021-06-01 13:44:46 +0200wanagnuj(~wanagnuj@101.95.97.158) (Quit: wanagnuj)
2021-06-01 13:46:21 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-01 13:46:31 +0200mc47(~yecinem@89.246.239.190)
2021-06-01 13:46:59 +0200 <thiross> % :t flip
2021-06-01 13:46:59 +0200 <yahb> thiross: (a -> b -> c) -> b -> a -> c
2021-06-01 13:48:18 +0200shailangsa(~shailangs@host165-120-169-73.range165-120.btcentralplus.com) (Ping timeout: 268 seconds)
2021-06-01 13:50:38 +0200mattil(~mattil@airio.portalify.com)
2021-06-01 13:51:07 +0200eightball(~eight@86.106.121.164) (Quit: Leaving)
2021-06-01 13:51:16 +0200smitop(uid328768@user/smitop)
2021-06-01 13:51:23 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4) (Ping timeout: 268 seconds)
2021-06-01 13:52:11 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-06-01 13:52:56 +0200ubert(~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Ping timeout: 265 seconds)
2021-06-01 13:55:23 +0200shiraeeshi(~shiraeesh@109.166.57.115)
2021-06-01 13:58:32 +0200ubert(~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233)
2021-06-01 14:00:37 +0200japh(~scp1@user/japh) ()
2021-06-01 14:03:40 +0200v01d4lph4(~v01d4lph4@122.160.65.250)
2021-06-01 14:03:40 +0200v01d4lph4(~v01d4lph4@122.160.65.250) (Changing host)
2021-06-01 14:03:40 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4)
2021-06-01 14:04:04 +0200Toast52_(~Toast52@151.192.167.120)
2021-06-01 14:04:23 +0200sondre(~sondrelun@cm-84.212.100.140.getinternet.no) (Ping timeout: 244 seconds)
2021-06-01 14:04:29 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
2021-06-01 14:06:35 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-06-01 14:07:45 +0200hmmmas(~chenqisu1@183.217.202.217) (Quit: Leaving.)
2021-06-01 14:08:15 +0200Toast52(~Toast52@151.192.167.120) (Ping timeout: 272 seconds)
2021-06-01 14:09:20 +0200holy_(~h01y_b4z0@103.244.176.36)
2021-06-01 14:13:10 +0200zebrag(~chris@user/zebrag)
2021-06-01 14:18:54 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 264 seconds)
2021-06-01 14:18:55 +0200azeem(~azeem@dynamic-adsl-78-13-240-225.clienti.tiscali.it) (Read error: Connection reset by peer)
2021-06-01 14:18:59 +0200holy_(~h01y_b4z0@103.244.176.36) (Remote host closed the connection)
2021-06-01 14:20:37 +0200waleee(~waleee@h-98-128-228-119.NA.cust.bahnhof.se)
2021-06-01 14:20:46 +0200shailangsa(~shailangs@host165-120-169-73.range165-120.btcentralplus.com)
2021-06-01 14:20:48 +0200azeem(~azeem@dynamic-adsl-78-13-240-225.clienti.tiscali.it)
2021-06-01 14:27:37 +0200river(~river@tilde.team/user/river)
2021-06-01 14:33:40 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-01 14:43:47 +0200bor0(~boro@user/bor0)
2021-06-01 14:44:25 +0200xff0x(~xff0x@2001:1a81:52ca:4f00:a77b:5731:d9ca:93c9) (Ping timeout: 268 seconds)
2021-06-01 14:44:57 +0200 <bor0> Hey, ski :wave: I just did https://github.com/bor0/hoare-imp/commit/d7b154b8d9b68fcf6466b22ff1f40591db3dcdb4 per your suggestions. Now I find myself doing this a lot: https://github.com/bor0/hoare-imp/blob/master/examples/ExampleHoare.hs#L47. Is there a neater way? :)
2021-06-01 14:45:05 +0200xff0x(~xff0x@2001:1a81:52ca:4f00:7b0a:bab9:5836:8b3b)
2021-06-01 14:45:23 +0200otoburb(~otoburb@user/otoburb) ()
2021-06-01 14:45:29 +0200 <bor0> Specifically, the `x >>= \x -> ...` part. `hlint` reported `>=>` but it only slightly helps
2021-06-01 14:45:39 +0200xwx(~george@user/george) (Ping timeout: 268 seconds)
2021-06-01 14:48:29 +0200 <boxscape> :t \pre post step5 hoareConsequence -> pre >>= \pre -> post >>= \post -> step5 >>= \step5 -> hoareConsequence pre step5 post
2021-06-01 14:48:30 +0200 <lambdabot> Monad m => m t1 -> m t2 -> m t3 -> (t1 -> t3 -> t2 -> m b) -> m b
2021-06-01 14:48:32 +0200 <boxscape> :t \pre post step5 hoareConsequence -> hoareConsequence <$> pre <*> step5 <*> post
2021-06-01 14:48:32 +0200 <lambdabot> Applicative f => f a1 -> f a2 -> f a3 -> (a1 -> a3 -> a2 -> b) -> f b
2021-06-01 14:48:39 +0200 <boxscape> ^ does that work for you bor0?
2021-06-01 14:49:12 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-01 14:49:13 +0200 <bor0> Whoa. Let me try that. Looks like it should do it
2021-06-01 14:49:30 +0200lavaman(~lavaman@98.38.249.169)
2021-06-01 14:49:36 +0200 <boxscape> :t \pre post step5 hoareConsequence -> liftA3 hoareConsequence pre step5 post -- bor0 alternatively
2021-06-01 14:49:37 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-01 14:49:37 +0200 <lambdabot> Applicative f => f a -> f c -> f b -> (a -> b -> c -> d) -> f d
2021-06-01 14:51:17 +0200 <bor0> It works! Magical. Looks awesome. Thanks!
2021-06-01 14:51:21 +0200 <boxscape> np
2021-06-01 14:51:42 +0200 <boxscape> (you'll see this "applicative style" quite often)
2021-06-01 14:51:53 +0200brian_da_mage(~Neuromanc@user/briandamag) (Ping timeout: 264 seconds)
2021-06-01 14:52:17 +0200 <bor0> An interesting ride. From pure functions to monads to applicative. But the end result is totally worth it
2021-06-01 14:53:16 +0200 <boxscape> that's pretty much the timeline in terms of how people applied the concepts to functional programming, as well :)
2021-06-01 14:53:38 +0200berberman(~berberman@user/berberman)
2021-06-01 14:53:42 +0200berberman_(~berberman@user/berberman) (Ping timeout: 264 seconds)
2021-06-01 14:53:46 +0200pbrisbin(~patrick@pool-72-92-38-164.phlapa.fios.verizon.net)
2021-06-01 14:53:46 +0200 <bor0> History repeats itself! :D
2021-06-01 14:56:50 +0200 <bor0> Any clue why `ruleJoin <$> ruleSepR pq <*> ruleSepL pq ` doesn't work but `ruleJoin <$> ruleSepR pq <*> ruleSepL pq >>= id` does? `>>= id` seems hacky
2021-06-01 14:57:30 +0200 <boxscape> (>>= id) is called join
2021-06-01 14:57:31 +0200 <boxscape> :t join
2021-06-01 14:57:32 +0200 <lambdabot> Monad m => m (m a) -> m a
2021-06-01 14:57:59 +0200 <tomsmeding> bor0: if this is your first meeting with those applicative operators, I encourage you to look closely at the types of (<$>) (which is just fmap, by the way), (<*>) and (>>=). Then look at them again the next time you use them. At some point it will become clear how this 'f <$> a <*> b <*> c' style actually works. A bit later you'll realise how Applicative, which is defined by pure and <*>, is
2021-06-01 14:57:59 +0200 <tomsmeding> actually a bit weaker than Monad, and them you might understand how things like applicative parsing are different from monadic parsing. For me it took a while to get familiar with these type classes, but it's worth spending a bit of time looking at type signatures now and then :)
2021-06-01 14:58:07 +0200 <boxscape> I imagine you're ending up with a nested Monad in the first expression, and join lets you flatten that to one level of Monad
2021-06-01 15:00:22 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-01 15:00:44 +0200 <bor0> tomsmeding, thanks. I did meet Applicative/Monad and vaguely know their definition. I'm at the level where it isn't obvious what makes a monad and what makes an applicative so my approach is usually to write it "manually" and only then to abstract when it becomes obvious (usually becomes obvious when I join and ping this channel :))
2021-06-01 15:01:00 +0200xwx(~george@user/george)
2021-06-01 15:01:16 +0200alx741(~alx741@186.178.108.160)
2021-06-01 15:04:05 +0200geekosaur(~geekosaur@069-135-003-034.biz.spectrum.com)
2021-06-01 15:04:08 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9)
2021-06-01 15:05:30 +0200hydroxonium(uid500654@id-500654.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
2021-06-01 15:05:49 +0200 <dminuoso> bor0: Yup, keep on doing this. At some point, Applicative/Monad will kick in completely automatically, without you forcing the issue.
2021-06-01 15:06:04 +0200 <bor0> Thanks. Right, just like driving. I hope. :)
2021-06-01 15:06:07 +0200 <dminuoso> Im going to argue, until then its not even important to understand what they abstract over.
2021-06-01 15:06:35 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Remote host closed the connection)
2021-06-01 15:06:48 +0200xprlgjf(~gavin@60.27.93.209.dyn.plus.net) (Read error: Connection reset by peer)
2021-06-01 15:07:32 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4) (Remote host closed the connection)
2021-06-01 15:08:01 +0200 <dminuoso> Applicative is probably a bit harder to grasp, because most Applicative things happen to be Monad too (which subsumes Applicative), so you're less likely to encounter "just Applicative" things.
2021-06-01 15:08:05 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4)
2021-06-01 15:08:21 +0200 <dminuoso> (Though both interfaces are easy enough to learn, obviously)
2021-06-01 15:08:41 +0200wei2912(~wei2912@112.199.250.21)
2021-06-01 15:08:54 +0200 <bor0> Another thing that smells is the too many `Right`'s here: https://github.com/bor0/hoare-imp/blob/master/src/Gentzen.hs#L31-L42. Any way it can be improved?
2021-06-01 15:09:13 +0200 <bor0> (Just throwing random code lines, but happy to elaborate further on the code/ideas behind it)
2021-06-01 15:09:15 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Ping timeout: 272 seconds)
2021-06-01 15:10:33 +0200dunkeln(~dunkeln@94.129.65.28)
2021-06-01 15:11:06 +0200 <boxscape> make a helper function `foo arg = go xs f x >>= \prfx -> Right $ Proof $ arg`, though choose a better name than `foo` :)
2021-06-01 15:11:14 +0200 <boxscape> and then replace each of those lines with a call to that function
2021-06-01 15:11:24 +0200 <bor0> I thought of that, but note `go _ f x = f (Proof x)`
2021-06-01 15:11:43 +0200 <boxscape> right, just keep that line as is
2021-06-01 15:11:53 +0200 <boxscape> and use the helper function in the other lines
2021-06-01 15:12:16 +0200 <dminuoso> I can see some elaborate tricks to make the Right go away, but nothing worth your while
2021-06-01 15:12:52 +0200thiross(~user@173.242.113.143.16clouds.com) (Remote host closed the connection)
2021-06-01 15:12:53 +0200azeem(~azeem@dynamic-adsl-78-13-240-225.clienti.tiscali.it) (Ping timeout: 252 seconds)
2021-06-01 15:12:53 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4) (Ping timeout: 264 seconds)
2021-06-01 15:13:00 +0200thiross(~user@173.242.113.143.16clouds.com)
2021-06-01 15:13:11 +0200 <boxscape> ah I suppose it has to be slightly different
2021-06-01 15:13:18 +0200 <boxscape> because arg may depend on prfx/prfy
2021-06-01 15:13:43 +0200 <boxscape> err, also on x/y
2021-06-01 15:13:50 +0200 <dminuoso> bor0: though, just use fmap, rather than >>=
2021-06-01 15:14:00 +0200 <dminuoso> That lets you avoid the Right
2021-06-01 15:14:03 +0200 <bor0> Yeah. OK, just felt a little bit odd and wanted to double-check if it can be abstracted even further
2021-06-01 15:14:13 +0200 <dminuoso> Yeah, that's the key thing. Just use fmap, the Right disappears :)
2021-06-01 15:14:20 +0200flowz(~flowz@2a01:aea0:dd4:1573:a8:24ac:7db2:5b39)
2021-06-01 15:14:26 +0200 <dminuoso> <&> fits comfortably there
2021-06-01 15:14:33 +0200 <dminuoso> Looks ergonomically nicer than <$> or fmap
2021-06-01 15:14:46 +0200 <dminuoso> I'd write it like this:
2021-06-01 15:15:01 +0200 <dminuoso> go xs f <&> \(Proof f) -> Proof (Not f)
2021-06-01 15:15:53 +0200azeem(~azeem@dynamic-adsl-94-34-16-203.clienti.tiscali.it)
2021-06-01 15:16:05 +0200 <bor0> OK, I'll need some time to unpack that. Otherwise I won't be able to update my code when I go back to it in a few days :D
2021-06-01 15:16:12 +0200 <bor0> Read-only!
2021-06-01 15:16:20 +0200 <dminuoso> bor0: So let me make it easy to see for you
2021-06-01 15:16:34 +0200 <dminuoso> First realize that `Right = return` or `Right = pure`
2021-06-01 15:17:15 +0200 <dminuoso> Then realize you have: fmap f x = pure f <*> x
2021-06-01 15:17:39 +0200 <dminuoso> Do a bit of juggling
2021-06-01 15:17:42 +0200thiross(~user@173.242.113.143.16clouds.com) (Ping timeout: 264 seconds)
2021-06-01 15:18:48 +0200thiross(~user@173.242.113.143.16clouds.com)
2021-06-01 15:20:22 +0200lavaman(~lavaman@98.38.249.169)
2021-06-01 15:20:44 +0200 <boxscape> you could also derive Functor for Proof and then replace `\(Proof f) -> Proof (Not f)` with `fmap Not`, I think
2021-06-01 15:20:54 +0200 <dminuoso> Yup!
2021-06-01 15:21:01 +0200 <dminuoso> Or, with <&> that would look even nicer
2021-06-01 15:21:17 +0200 <dminuoso> go xs f <&> fmap Not
2021-06-01 15:21:27 +0200thiross(~user@173.242.113.143.16clouds.com) ()
2021-06-01 15:21:37 +0200xsperry(~as@user/xsperry)
2021-06-01 15:21:40 +0200 <dminuoso> Or maybe you write g <&&> f = fmap (fmap f) g
2021-06-01 15:21:43 +0200 <dminuoso> And then you have
2021-06-01 15:21:45 +0200geekosaur(~geekosaur@069-135-003-034.biz.spectrum.com) (Remote host closed the connection)
2021-06-01 15:21:47 +0200 <dminuoso> go xs f <&&> Not
2021-06-01 15:22:10 +0200 <bor0> Reading it makes sense, thanks. Just still need some practice for it to sink in.
2021-06-01 15:24:10 +0200geekosaur(~geekosaur@069-135-003-034.biz.spectrum.com)
2021-06-01 15:24:34 +0200Toast52_(~Toast52@151.192.167.120) (Quit: Leaving)
2021-06-01 15:24:54 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 264 seconds)
2021-06-01 15:25:04 +0200mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in)
2021-06-01 15:25:18 +0200mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
2021-06-01 15:27:06 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-01 15:27:15 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-01 15:28:04 +0200mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Client Quit)
2021-06-01 15:28:19 +0200mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
2021-06-01 15:29:13 +0200AgentM(~agentm@pool-162-83-130-212.nycmny.fios.verizon.net)
2021-06-01 15:29:23 +0200hendursa1(~weechat@user/hendursaga) (Quit: hendursa1)
2021-06-01 15:29:49 +0200hendursaga(~weechat@user/hendursaga)
2021-06-01 15:32:02 +0200arrowd(~arr@2.94.203.147)
2021-06-01 15:32:04 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-06-01 15:33:40 +0200chomwitt(~Pitsikoko@athedsl-20549.home.otenet.gr)
2021-06-01 15:33:47 +0200niflce(~IceChat95@user/niflce)
2021-06-01 15:35:34 +0200 <boxscape> Has anyone tried to make STG run on a GPU?
2021-06-01 15:36:32 +0200fm(~fm@user/fm)
2021-06-01 15:36:45 +0200 <[exa]> boxscape: but why
2021-06-01 15:36:58 +0200 <boxscape> idle curiosity, mostly :)
2021-06-01 15:37:08 +0200 <[exa]> GPUs are _terribly bad_ at that precise kind of computation
2021-06-01 15:37:13 +0200 <merijn> boxscape: tbh, that sounds like a bad idea
2021-06-01 15:37:23 +0200wonko(~wjc@62.115.229.50) (Quit: See You Space Cowboy..)
2021-06-01 15:37:34 +0200 <boxscape> what is the part of STG that they are bad at?
2021-06-01 15:37:37 +0200 <[exa]> pointers
2021-06-01 15:37:41 +0200 <boxscape> Ah, I see
2021-06-01 15:37:44 +0200 <merijn> Lots of pointers, lots of branches
2021-06-01 15:37:55 +0200 <[exa]> "control flow" too
2021-06-01 15:38:16 +0200 <merijn> Poor cache locality, no easy way to do latency hiding due to irregular control flow
2021-06-01 15:38:33 +0200 <boxscape> okay
2021-06-01 15:38:50 +0200 <[exa]> technically, it would be extremely interesting to do an experiment of STG vs. nursery in the shared memory
2021-06-01 15:38:56 +0200 <merijn> boxscape: Basically, GPU memory is rather high latency (high bandwidth, but also high latency)
2021-06-01 15:39:08 +0200shiraeeshi(~shiraeesh@109.166.57.115) (Quit: Leaving)
2021-06-01 15:39:15 +0200 <merijn> boxscape: Which is not a problem if you can do latency hiding due to high levels of parallelism
2021-06-01 15:39:17 +0200slowButPresent(~slowButPr@user/slowbutpresent)
2021-06-01 15:39:30 +0200 <[exa]> but likely that's the same esoterism level of "interesting" as "you can do programming with drawing an interpretable bitmap"
2021-06-01 15:39:37 +0200 <merijn> But the parallelism in current GPUs really wants regular access patterns/control flow, which STG doesn't really have
2021-06-01 15:39:49 +0200 <boxscape> I see, that makes sense
2021-06-01 15:41:05 +0200keutoi(~keutoi@157.48.91.62) (Ping timeout: 264 seconds)
2021-06-01 15:41:08 +0200 <bor0> `(axiom1 (Var A) >>= \ax1 -> ruleSpec ax1 (Var A))` So I thought something like `ruleSpec <$> axiom1 (Var A) <*> Var A` would work, but not. I need to "lift"(?) the last Var A somehow?
2021-06-01 15:41:50 +0200 <boxscape> it's more like you're lifting it when it shouldn't be lifted IIUC
2021-06-01 15:42:00 +0200 <bor0> Or that :)
2021-06-01 15:42:11 +0200 <boxscape> flip ruleSpec (Var A) <$> axiom1 (Var A)
2021-06-01 15:42:12 +0200 <boxscape> does that work?
2021-06-01 15:42:34 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2021-06-01 15:42:43 +0200keutoi(~keutoi@157.48.91.62)
2021-06-01 15:43:15 +0200 <bor0> With a join prepended, yeah. ghci evals True == (join $ flip ruleSpec (Var A) <$> axiom1 (Var A)) == (axiom1 (Var A) >>= \ax1 -> ruleSpec ax1 (Var A))
2021-06-01 15:43:49 +0200 <bor0> There's no unlift or something? `flip` seems to be specific,.. what if the argument was 3rd
2021-06-01 15:44:10 +0200 <boxscape> right, I guess we're not really gaining anywhere here, it's just (axiom1 (Var A) >>= flip ruleSpec)
2021-06-01 15:44:49 +0200 <bor0> I am happy with it as it is, unless it can look better :)
2021-06-01 15:45:21 +0200 <boxscape> bor0 I don't think there's a nice way to unlift something at the moment, at least in base
2021-06-01 15:45:21 +0200unyu(~pyon@user/pyon) (Quit: WeeChat 3.1)
2021-06-01 15:45:43 +0200 <boxscape> flip is pretty specific , sometimes there isn't a better way than writing a lambda
2021-06-01 15:45:45 +0200 <boxscape> e.g.
2021-06-01 15:45:49 +0200 <boxscape> @pl f a b = f b a
2021-06-01 15:45:49 +0200 <lambdabot> f = fix flip
2021-06-01 15:45:55 +0200 <boxscape> eh wait I don't want fix
2021-06-01 15:46:01 +0200 <boxscape> @pl f a b = g b a
2021-06-01 15:46:01 +0200 <lambdabot> f = flip g
2021-06-01 15:46:04 +0200 <boxscape> that's fine
2021-06-01 15:46:20 +0200 <boxscape> @pl f a d e = g a b c d e f
2021-06-01 15:46:20 +0200 <lambdabot> f = fix (flip (flip . (flip .) . flip (flip g b) c))
2021-06-01 15:46:27 +0200 <boxscape> that's definitely not fine, and a lambda is better
2021-06-01 15:46:33 +0200 <bor0> Haha!
2021-06-01 15:47:29 +0200 <bor0> That seems like a nice way to make a friendly coworker, if I ever get to write Haskell in production
2021-06-01 15:47:41 +0200 <boxscape> true
2021-06-01 15:47:47 +0200 <flowz> hi, haskell newbie with a quick question here. I need to create a tree structure with some special handling of the root node. I tried to encode my idea like the following "MWE": https://pastebin.com/bHdtkJvy . But it doesn't allow me to match the "inner" sum type that way. I haven't been able to figure out how to do so. Would need and appreciate a
2021-06-01 15:47:47 +0200 <flowz> bit of help :)
2021-06-01 15:49:13 +0200ystael(~ystael@user/ystael)
2021-06-01 15:50:46 +0200pe200012(~pe200012@119.131.208.84)
2021-06-01 15:51:54 +0200 <[exa]> flowz: you either need to setup overloading, or have a second function for the "inner" tree
2021-06-01 15:52:35 +0200 <[exa]> flowz: this kind of ad-hoc overloading a function for multiple types (as known from c++ and others) does not combine well with type inference, so haskell doesn't really support it
2021-06-01 15:53:41 +0200jneira(~jneira@166.red-81-39-172.dynamicip.rima-tde.net)
2021-06-01 15:53:42 +0200 <flowz> @[exa] thanks for the help, will go for secondary functions then. Though it may be possible someway like that and I just couldn't find the right syntax.
2021-06-01 15:53:57 +0200 <ski> flowz : `data Tree = Root | Node' looks confused
2021-06-01 15:54:22 +0200myShoggoth(~myShoggot@97-120-89-117.ptld.qwest.net)
2021-06-01 15:54:46 +0200 <[exa]> flowz: you might not even need the whole second data structure, I'd go with one Tree structure for everything, and have 2 functions for root and non-root cases (and let the user call the root one always)
2021-06-01 15:54:57 +0200 <ski> (hint, that declaration is entirely unrelated to the two earlier `data' declarations)
2021-06-01 15:55:03 +0200lavaman(~lavaman@98.38.249.169)
2021-06-01 15:55:59 +0200 <flowz> @ski oh, good to know. @[exa] thanks for the tip, I'll probably have to rethink my approach
2021-06-01 15:55:59 +0200 <lambdabot> Maybe you meant: wiki src ask
2021-06-01 15:56:11 +0200 <ski> flowz : what are you trying to do ?
2021-06-01 15:56:32 +0200 <[exa]> flowz: btw @ doesn't work for highlighting on IRC, the convention is to just write `nick:` :]
2021-06-01 15:57:30 +0200haskman(~haskman@171.48.41.1) (Quit: Going to sleep. ZZZzzz…)
2021-06-01 15:57:51 +0200 <arrowd> Speaking of STG, there are many posts on this matter in the Internet, but I haven't found any information on how STG gets mapped to machine instructions.
2021-06-01 15:57:54 +0200chddr(~Thunderbi@31.148.23.125)
2021-06-01 15:57:55 +0200 <ski> (from what you've said, i'd go with [exa]'s suggestion)
2021-06-01 15:58:00 +0200 <arrowd> It isn't being interpreted, right?
2021-06-01 15:58:07 +0200 <flowz> ski: basically I have to build a balanced tree from some input data and then output the tree in a given format. Choice of language is left to us, so I thought I might use haskell as an exercise (as the task seemed simple enough, and I recently started learning it)
2021-06-01 15:58:21 +0200mattil(~mattil@airio.portalify.com) (Remote host closed the connection)
2021-06-01 15:58:27 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2-dev)
2021-06-01 15:59:06 +0200Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2021-06-01 15:59:36 +0200 <boxscape> arrowd https://www.microsoft.com/en-us/research/wp-content/uploads/1992/04/spineless-tagless-gmachine.pdf Chapter 9 is "Compiling the STG language to C"
2021-06-01 15:59:40 +0200 <boxscape> page 52
2021-06-01 15:59:41 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 264 seconds)
2021-06-01 15:59:43 +0200 <ski> flowz : and in what way is that related to handling the root differently ?
2021-06-01 16:00:58 +0200 <flowz> the definition of the btree we are given the root only has 1 value and 2 childs, while all other nodes have /k/ values and /k+1/ childs. It's a weird definition of the balanced tree, haven't been able to find any other resources that define it like that
2021-06-01 16:01:08 +0200 <arrowd> boxscape: The current GHC does not compile to C. AFAIK, that "registerization" thing is exactly what I'm looking for.
2021-06-01 16:01:47 +0200 <geekosaur> in ghc, STG is compiled to Cmm which is compiled to assembly language or LLVM IR depending on backend
2021-06-01 16:04:40 +0200 <arrowd> So, "registerization" is related to Cmm, not STG?
2021-06-01 16:05:00 +0200 <int-e> flowz: that's restrictive (each node should allow up to 2k-1 children)... but the root is indeed a bit special in b-trees
2021-06-01 16:05:20 +0200pe200012_(~pe200012@218.107.17.245)
2021-06-01 16:05:41 +0200pe200012(~pe200012@119.131.208.84) (Ping timeout: 264 seconds)
2021-06-01 16:06:54 +0200 <geekosaur> I think so, yes. the unregisterized backend still exists (but isn't included in ghc releases) and is another post-Cmm target
2021-06-01 16:07:37 +0200 <ski> flowz : hm, ok. anyway, the issue with `data Tree = Root | Node' is that this is declaring an (unparameterized) data type, named `Tree', having two possible shapes (data constructors), `Root' and `Node'. these two are entirely unrelated to your (parameterized) *types* `Root' and `Node'
2021-06-01 16:08:27 +0200 <ski> flowz : basically, `data Tree = Root | Node' is comparable to `data Pet = Cat | Dog' or `data Bool = False | True' .. it's just a data type, having two values
2021-06-01 16:10:01 +0200 <arrowd> Ok, then I'm interested in STG -> Cmm part.
2021-06-01 16:10:48 +0200 <ski> flowz : in any case, it seems misguided to want to check whether you're given a root node, or another node. afaiui, you should already know which one you're passed, in every point of the program
2021-06-01 16:11:59 +0200ku(~ku@2601:280:c780:7ea0:a15d:a611:c59d:5265) (Ping timeout: 268 seconds)
2021-06-01 16:12:10 +0200 <flowz> I'm starting to think I should go through some tutorials some more before doing even this (comparatively simple) task. There're still some more basic things I haven't grasped enough. I'll do it in some other language as the deadline is approaching rapidly, but still thanks for all the help and pointers :)
2021-06-01 16:13:34 +0200hexfive(~eric@50.35.83.177)
2021-06-01 16:13:38 +0200 <ski> flowz : possibly you could use something like `data Node a = EmptyNode | InternalNode (Node a) [(a,Node a)]', for the internal nodes
2021-06-01 16:16:25 +0200 <ski> (hm, or maybe you intended `k' to be the same for all internal nodes ?)
2021-06-01 16:21:53 +0200azeem(~azeem@dynamic-adsl-94-34-16-203.clienti.tiscali.it) (Read error: Connection reset by peer)
2021-06-01 16:22:50 +0200ikex(~ash@user/ikex)
2021-06-01 16:23:51 +0200 <flowz> ski: yep, k should be the same, and I've also got that included in my actual code. But I'm going to do it in some other language for now, as I've only got a couple of hours left, and there's still some other more time-consuming stuff left to do as well.. Though I'll have a look at doing something with haskell at the next good opportunity, as I find
2021-06-01 16:23:52 +0200 <flowz> the language quite interesting. Again, thanks for all the help, gtg now
2021-06-01 16:24:10 +0200flowz(~flowz@2a01:aea0:dd4:1573:a8:24ac:7db2:5b39) (Quit: Client closed)
2021-06-01 16:26:24 +0200azeem(~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it)
2021-06-01 16:27:08 +0200adziahel[m](~adziahelm@2001:470:69fc:105::b4d)
2021-06-01 16:28:25 +0200niflce(~IceChat95@user/niflce) (Ping timeout: 272 seconds)
2021-06-01 16:30:20 +0200lavaman(~lavaman@98.38.249.169)
2021-06-01 16:31:39 +0200niflce(~IceChat95@user/niflce)
2021-06-01 16:41:09 +0200koishi_(~koishi_@67.209.186.120.16clouds.com)
2021-06-01 16:43:13 +0200koishi_(~koishi_@67.209.186.120.16clouds.com) (Remote host closed the connection)
2021-06-01 16:44:15 +0200Sgeo(~Sgeo@user/sgeo)
2021-06-01 16:47:46 +0200haskman(~haskman@171.48.41.1)
2021-06-01 16:48:04 +0200LukeHoersten(~LukeHoers@user/lukehoersten)
2021-06-01 16:50:30 +0200 <[exa]> arrowd: Cmm is a VERY rough lookalike of C, assignment of instructions and registers happens when compiling Cmm
2021-06-01 16:51:04 +0200 <arrowd> [exa]: So, "registerizing" is basically adding a new backend to Cmm?
2021-06-01 16:51:06 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Client Quit)
2021-06-01 16:51:38 +0200 <[exa]> I'm not sure if I translated "registerizing" correctly
2021-06-01 16:52:04 +0200 <[exa]> to start, afaik STG has is own notion of registers that is more or less independent of the actual CPU registers
2021-06-01 16:52:24 +0200 <[exa]> I guess you are interested in how the decision "what data to put into which CPU register" happens right?
2021-06-01 16:53:19 +0200 <dminuoso> bor0: By the way, this is a bit of a subtle thing but I decided to let you know anyhow. Depending on how deep your Proof is nested, this could perform not so nicely.
2021-06-01 16:53:24 +0200 <arrowd> I guess so. I imagined it to be more like a direct mapping between STG registers and real CPU registers.
2021-06-01 16:53:43 +0200 <arrowd> I took the "registerizing" term from here: https://downloads.haskell.org/~ghc/6.4/docs/html/building/sec-porting-ghc.html
2021-06-01 16:53:55 +0200 <dminuoso> bor0: This is because while there is a Functor law that states `fmap f . fmap g = fmap (f . g)`, GHC will not use this knowledge and fuse these functions `f` and `g` together.
2021-06-01 16:54:34 +0200 <dminuoso> bor0: There is however a standard trick to ensure fusion occurs. It's something we can talk about in a later point in time if the need arises.
2021-06-01 16:54:41 +0200 <geekosaur> arrowd, just to let you know, that's fairly old documentation
2021-06-01 16:55:05 +0200 <arrowd> I know, but I believe this part is still more or less relevant.
2021-06-01 16:56:40 +0200 <[exa]> arrowd: no, STG is a virtual machine with virtual registers... there will be some correspondence, but mostly accidental
2021-06-01 16:58:29 +0200dunkeln(~dunkeln@94.129.65.28) (Ping timeout: 264 seconds)
2021-06-01 16:58:33 +0200 <arrowd> I'm confused about this.
2021-06-01 16:58:51 +0200haskman(~haskman@171.48.41.1) (Ping timeout: 268 seconds)
2021-06-01 16:59:08 +0200 <arrowd> LLVM is also a VM in a sense, but only architecturally. There are no traces of "VM-ness" in the final compiled executable.
2021-06-01 16:59:17 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.1)
2021-06-01 16:59:28 +0200bfrk(~Thunderbi@200116b84593d400e083e41adfb91d63.dip.versatel-1u1.de) (Ping timeout: 268 seconds)
2021-06-01 16:59:43 +0200 <arrowd> Unlike Java, where the compiled binary is a bytecode, which get interpreted/JITed during execution.
2021-06-01 16:59:58 +0200 <arrowd> STG is like LLVM in this sense, right?
2021-06-01 17:00:14 +0200 <merijn> Not really
2021-06-01 17:00:23 +0200fart(~fart@user/actor)
2021-06-01 17:00:24 +0200 <merijn> STG is much higher level still
2021-06-01 17:00:35 +0200 <[exa]> well, in this very rough sense, yes -- it's not interpreted nor JITed, just compiled into next layer
2021-06-01 17:00:55 +0200 <arrowd> Ok, and the next layer is Cmm?
2021-06-01 17:00:58 +0200 <[exa]> yes
2021-06-01 17:01:03 +0200 <merijn> arrowd: FYI, those docs you linked are *ancient*
2021-06-01 17:01:04 +0200 <[exa]> (I hope)
2021-06-01 17:01:19 +0200 <merijn> GHC 6.4 is like over a decade old?
2021-06-01 17:01:58 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-06-01 17:02:18 +0200 <arrowd> Good. Now if I try to port GHC to a new ISA, at what level would I need to work? Cmm, right?
2021-06-01 17:02:35 +0200 <merijn> Correction, over 16 years old :p
2021-06-01 17:03:20 +0200 <merijn> arrowd: There's two backends in GHC: the native backend that goes from Cmm to assembly directly and an LLVM backend that converts Cmm to LLVM IR, then uses LLVM for that
2021-06-01 17:03:34 +0200 <arrowd> I'm talking about NCG right now.
2021-06-01 17:03:48 +0200 <merijn> arrowd: NCG goes from Cmm to a specific ISA, yes
2021-06-01 17:04:14 +0200 <arrowd> All right, now I get it. Thanks everyone for explanations.
2021-06-01 17:04:37 +0200 <merijn> arrowd: See also #ghc for questions about GHC specifics
2021-06-01 17:04:49 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2021-06-01 17:05:43 +0200Bartosz(~textual@24.35.90.211)
2021-06-01 17:06:01 +0200 <merijn> arrowd: angerman has been working on a NCG backend for Apple's M1 (iirc?), so he probably knows where to get the most up-to-date info
2021-06-01 17:08:11 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-06-01 17:08:36 +0200Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
2021-06-01 17:10:51 +0200oxide(~lambda@user/oxide) (Ping timeout: 272 seconds)
2021-06-01 17:11:07 +0200Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net)
2021-06-01 17:14:46 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com)
2021-06-01 17:16:48 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9)
2021-06-01 17:17:00 +0200 <bor0> dminuoso, I guess this is related to `join`? If I don't `join`, I end up with `Proof (Proof ...)`
2021-06-01 17:18:10 +0200 <ski> bor0 : you have a `Monad Proof' instance ?
2021-06-01 17:18:16 +0200oxide(~lambda@user/oxide)
2021-06-01 17:18:45 +0200 <bor0> Nope. Not sure what that would look like, yet. https://github.com/bor0/hoare-imp/blob/master/src/Common.hs#L16-L19
2021-06-01 17:19:14 +0200 <ski> imho, it'd probably not be usefuö
2021-06-01 17:19:53 +0200 <boxscape> bor0 note btw that `x >>= f` is the same as `join (f <$> x)`, which is why it came up in some of those translations
2021-06-01 17:19:56 +0200 <ski> (i was just wondering, since you mentioned `join' and `Proof (Proof (..))' at the same time ..)
2021-06-01 17:20:53 +0200renzhi(~xp@2607:fa49:6500:bc00::e7b)
2021-06-01 17:21:24 +0200 <boxscape> hm, seems like it would have been Either String (Either String (Proof (..)))
2021-06-01 17:21:25 +0200Guest9(~Guest9@43.241.144.2)
2021-06-01 17:21:26 +0200 <bor0> Actually, sorry, I meant `Right (Right (Proof ... ))`
2021-06-01 17:21:33 +0200 <boxscape> or that
2021-06-01 17:21:38 +0200 <ski> yea, that's another thing
2021-06-01 17:22:27 +0200 <bor0> But that's probably related to what dminuoso said, "depending how deep your Proof is nested". My expectation is it's only 1 level, right after `Right` - all should be of form `Right (Proof ...)`
2021-06-01 17:23:23 +0200fart(~fart@user/actor) (Quit: Connection closed)
2021-06-01 17:23:47 +0200curiousgay(~quassel@178.217.208.8) (Ping timeout: 252 seconds)
2021-06-01 17:23:52 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-01 17:25:15 +0200 <boxscape> bor0 I don't think that's what dminuoso meant - to get into Right (Right (Proof (..))) you would have to use (fmap . fmap) f, rather than (fmap f . fmap g). Rather, since `go` is a recursive function, it fmaps again and again, and these fmaps are not automatically optimized into a single fmap
2021-06-01 17:26:09 +0200shailangsa(~shailangs@host165-120-169-73.range165-120.btcentralplus.com) ()
2021-06-01 17:26:24 +0200 <boxscape> (and how often it recurs depends on how deep the data structure of the proof is)
2021-06-01 17:26:42 +0200 <bor0> Ah, was he talking specifically about `go`? My bad then. I thought it was in general, e.g.:https://paste.tomsmeding.com/aCf3hYea
2021-06-01 17:27:06 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:bdf8:f228:7df7:147f) (Quit: WeeChat 2.8)
2021-06-01 17:27:25 +0200 <bor0> https://paste.tomsmeding.com/H3e0gBbu shows what c1 and c2 are specifically
2021-06-01 17:28:02 +0200ubh(~ubh@2001:470:69fc:105::852) ()
2021-06-01 17:28:55 +0200blizzard(~winter@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
2021-06-01 17:29:05 +0200blizzardderelict
2021-06-01 17:29:29 +0200 <ski> bor0> :t hoareSequence
2021-06-01 17:29:51 +0200 <boxscape> ski https://github.com/bor0/hoare-imp/blob/d7b154b8d9b68fcf6466b22ff1f40591db3dcdb4/src/Hoare.hs#L35
2021-06-01 17:29:53 +0200 <bor0> https://github.com/bor0/hoare-imp/blob/master/src/Hoare.hs#L35
2021-06-01 17:33:27 +0200qbt(~edun@user/edun) (Ping timeout: 272 seconds)
2021-06-01 17:34:42 +0200 <ski> bor0 : you know you could use `do'-notation, for the `Either' stuff, yes ?
2021-06-01 17:35:40 +0200wei2912(~wei2912@112.199.250.21) (Quit: Lost terminal)
2021-06-01 17:35:49 +0200 <bor0> I totally forgot about that one! Are you saying these can look better? :D https://github.com/bor0/hoare-imp/blob/master/examples/ExampleTNT.hs
2021-06-01 17:36:08 +0200 <bor0> (Don't look at the other examples, I still haven't updated all of them to use monadic Either instead of hacky `fromRight`)
2021-06-01 17:36:46 +0200 <ski> lemma1 = do
2021-06-01 17:36:49 +0200 <boxscape> that code almost looks like you took something that was written in do-notation and translated it to non-do-notation :)
2021-06-01 17:36:58 +0200 <bor0> Hahahah.
2021-06-01 17:37:03 +0200 <ski> step1 <- axiom3 (Var A) (Var B)
2021-06-01 17:37:10 +0200 <ski> step2 <- ruleSpec step1 (Var D)
2021-06-01 17:37:12 +0200 <ski> ...
2021-06-01 17:37:17 +0200 <bor0> Oh man...
2021-06-01 17:37:24 +0200 <bor0> Time for another rewrite!
2021-06-01 17:38:59 +0200 <ski> (flipping the order of the `ruleFantasy' parameters might also look nicer)
2021-06-01 17:39:04 +0200 <bor0> Wow, it just looks amazing this way!
2021-06-01 17:39:17 +0200ikex(~ash@user/ikex) (Ping timeout: 264 seconds)
2021-06-01 17:39:17 +0200skismiles
2021-06-01 17:39:35 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Remote host closed the connection)
2021-06-01 17:40:25 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 272 seconds)
2021-06-01 17:40:26 +0200 <bor0> Can you expand on the `ruleFantasy` parameters?
2021-06-01 17:41:41 +0200dpl_(~dpl@77-121-78-163.chn.volia.net) (Ping timeout: 264 seconds)
2021-06-01 17:42:09 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-01 17:42:25 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-01 17:43:50 +0200 <ski> let premise = PropVar (ForAll D (PropVar (Eq (..) (..))))
2021-06-01 17:44:12 +0200 <ski> step7 <- ruleFantasy premise $ \premise -> do
2021-06-01 17:44:30 +0200boxscape(~boxscape@user/boxscape) (Quit: Connection closed)
2021-06-01 17:44:33 +0200 <bor0> Ah!
2021-06-01 17:44:35 +0200 <ski> step8 <- ruleSpec premise (Var D)
2021-06-01 17:44:39 +0200 <APic>
2021-06-01 17:44:39 +0200 <ski> ...
2021-06-01 17:45:00 +0200 <bor0> I'll definitely miss those redundant `let f premise`
2021-06-01 17:45:01 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9)
2021-06-01 17:45:09 +0200 <ski> ruleGeneralize step10 D (Just premise)
2021-06-01 17:45:26 +0200 <ski> ruleGeneralize step7 C Nothing
2021-06-01 17:46:37 +0200 <ski> "miss", as in you'll regret removing them, or as in you'll prefer to drop them ?
2021-06-01 17:46:40 +0200Bartosz(~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-01 17:46:43 +0200boxscape(~boxscape@user/boxscape)
2021-06-01 17:46:44 +0200ubert(~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Remote host closed the connection)
2021-06-01 17:47:30 +0200 <ski> (it's not clear to me what the relation between these two different `premise's are, but i kept your variable naming ..)
2021-06-01 17:48:03 +0200 <bor0> I think it's safe to assume just another redundancy
2021-06-01 17:48:46 +0200dunj3(~dunj3@2001:16b8:3059:9800:5856:7ab4:1dd8:26ae) (Remote host closed the connection)
2021-06-01 17:50:07 +0200 <bor0> These proofs suddenly became readable! This is fun
2021-06-01 17:50:49 +0200 <boxscape> Haskell does have a reputation for being a good host language for EDSLs
2021-06-01 17:51:03 +0200 <ski> readability is a good thing, yea :)
2021-06-01 17:51:22 +0200 <bor0> boxscape, I thought it had a good reputation for being a good host language without readability, but now with this readability... ++
2021-06-01 17:51:35 +0200 <boxscape> hehe
2021-06-01 17:51:35 +0200dunkeln(~dunkeln@94.129.65.28)
2021-06-01 17:51:44 +0200chele(~chele@user/chele) (Remote host closed the connection)
2021-06-01 17:52:07 +0200 <bor0> One thing I really like about doing this in Haskell, vs e.g. in Racket is refactoring. It's a breeze. Almost like random work until ghci is happy
2021-06-01 17:52:56 +0200 <boxscape> yep static types are pretty cool
2021-06-01 17:53:05 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-06-01 17:53:10 +0200 <boxscape> (though I think racket has an optional static type system? I've never used racket)
2021-06-01 17:53:16 +0200Deide(~Deide@wire.desu.ga)
2021-06-01 17:53:16 +0200Deide(~Deide@wire.desu.ga) (Changing host)
2021-06-01 17:53:16 +0200Deide(~Deide@user/deide)
2021-06-01 17:53:26 +0200ski. o O ( "Follow the types where they lead -- follow the types where they lead. Follow, follow, follow, follow -- follow the types where they lead." )
2021-06-01 17:53:44 +0200hseg(~gesh@185.120.126.41)
2021-06-01 17:54:03 +0200shailangsa(~shailangs@host165-120-169-73.range165-120.btcentralplus.com)
2021-06-01 17:54:09 +0200 <ski> there's Typed Racket, yea
2021-06-01 17:54:40 +0200 <boxscape> ok
2021-06-01 17:54:43 +0200 <hseg> stack isn't picking up the new commonmark version (from last friday) on hackage
2021-06-01 17:54:58 +0200 <hseg> even though I ran stack update
2021-06-01 17:55:04 +0200 <ski> (one interesting thing is the higher-order blame tracking system, for contracts)
2021-06-01 17:55:52 +0200 <kosmikus> xwx: lhs2tex-1.24 should work ok with HLS (within certain limits).
2021-06-01 17:57:27 +0200zeenk(~zeenk@2a02:2f04:a310:b600:b098:bf18:df4d:4c41) (Quit: Konversation terminated!)
2021-06-01 17:58:43 +0200haltux(~lbigas@a89-154-181-47.cpe.netcabo.pt)
2021-06-01 18:00:25 +0200guest61(~xxx@47.245.54.240)
2021-06-01 18:00:37 +0200haltux(~lbigas@a89-154-181-47.cpe.netcabo.pt) (Quit: Leaving)
2021-06-01 18:01:43 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-01 18:02:05 +0200shryke(~shryke@91.103.43.254) (Ping timeout: 264 seconds)
2021-06-01 18:02:18 +0200haltux(~lbigas@a89-154-181-47.cpe.netcabo.pt)
2021-06-01 18:02:29 +0200wallymathieu(~wallymath@81-234-151-21-no94.tbcn.telia.com)
2021-06-01 18:03:01 +0200 <hseg> nuked $XDG_DATA_HOME/stack, hopefully that helps things
2021-06-01 18:05:18 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-06-01 18:07:11 +0200pe200012_(~pe200012@218.107.17.245) (Read error: Connection reset by peer)
2021-06-01 18:08:17 +0200shryke(~shryke@91.103.43.254)
2021-06-01 18:08:46 +0200softinio(~softinio@c-73-70-215-171.hsd1.ca.comcast.net)
2021-06-01 18:10:17 +0200 <kuribas> "cabal haddock --executables" gives an error: cabal: unrecognized 'haddock' option `--executables'
2021-06-01 18:10:55 +0200v01d4lph4(~v01d4lph4@122.160.65.250)
2021-06-01 18:10:55 +0200v01d4lph4(~v01d4lph4@122.160.65.250) (Changing host)
2021-06-01 18:10:55 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4)
2021-06-01 18:11:25 +0200 <bor0> ski, boxscape https://github.com/bor0/hoare-imp/blob/master/examples/ExampleTNT.hs 😎
2021-06-01 18:11:41 +0200 <kuribas> hmm cabal haddock myproject:executables does work...
2021-06-01 18:11:50 +0200 <boxscape> bor0 nice
2021-06-01 18:11:55 +0200 <kuribas> the cabal haddock --help text is wrong however.
2021-06-01 18:11:56 +0200 <geekosaur> looks like it's --haddock-executables ?
2021-06-01 18:12:20 +0200favonia(~favonia@user/favonia)
2021-06-01 18:12:25 +0200Guest9(~Guest9@43.241.144.2) (Quit: Connection closed)
2021-06-01 18:13:08 +0200favonia(~favonia@user/favonia) (Client Quit)
2021-06-01 18:13:28 +0200 <geekosaur> the text at the top is wrong but the actual option descriptions later are correct
2021-06-01 18:14:07 +0200softinio(~softinio@c-73-70-215-171.hsd1.ca.comcast.net) ()
2021-06-01 18:15:27 +0200 <boxscape> bor0 do step0, step1, step2 etc all have the same type or different types?
2021-06-01 18:15:31 +0200 <kuribas> geekosaur: right
2021-06-01 18:16:32 +0200 <boxscape> (whoops step0 doesn't actually exist)
2021-06-01 18:16:36 +0200 <bor0> All same I believe - either string (error) or proof
2021-06-01 18:16:42 +0200 <boxscape> ok
2021-06-01 18:17:31 +0200 <boxscape> bor0 I was thinking about whether it would make sense to use the State monad which is why I asked that, but the answer is no
2021-06-01 18:18:11 +0200 <boxscape> (the State monad would make sense if you only used step1 for step2, only used step2 for step3, etc.)
2021-06-01 18:22:08 +0200jakzale(uid499518@id-499518.charlton.irccloud.com) (Quit: Connection closed for inactivity)
2021-06-01 18:22:28 +0200Bartosz(~textual@24.35.90.211)
2021-06-01 18:23:29 +0200niflce(~IceChat95@user/niflce) (Ping timeout: 272 seconds)
2021-06-01 18:23:31 +0200Bartosz(~textual@24.35.90.211) (Client Quit)
2021-06-01 18:24:48 +0200niflce(~IceChat95@user/niflce)
2021-06-01 18:26:10 +0200 <gentauro> I find this hilariously funny: https://twitter.com/vamchale/status/1399390668754198532 (it's funny cos it's true)
2021-06-01 18:26:35 +0200 <gentauro> as a "freelance clownsultant" you see some of the most horrible things created by humans
2021-06-01 18:27:05 +0200 <boxscape> oh wow I thought that was automatically minified javascript or something but no
2021-06-01 18:27:17 +0200nschoe(~quassel@178.251.84.79) (Ping timeout: 264 seconds)
2021-06-01 18:27:19 +0200 <gentauro> for example, 5000 lines methods, with if statements as wide as a 1000 characters
2021-06-01 18:27:48 +0200 <gentauro> all kind of logic (and side-effects) hidden everywhere
2021-06-01 18:27:53 +0200lbseale__lbseale
2021-06-01 18:28:11 +0200 <gentauro> we must be doing something wrong in this field, since Haskell is not the norm :(
2021-06-01 18:28:24 +0200 <boxscape> and column 876 of the if statement accidentally has a `=` instead of a `==` ;)
2021-06-01 18:28:45 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-01 18:29:16 +0200 <gentauro> boxscape: I see you also have these nightmares
2021-06-01 18:31:16 +0200lavaman(~lavaman@98.38.249.169)
2021-06-01 18:31:45 +0200 <gentauro> as well
2021-06-01 18:32:10 +0200 <boxscape> mhm
2021-06-01 18:33:17 +0200azeem(~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) (Ping timeout: 264 seconds)
2021-06-01 18:33:49 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-06-01 18:35:56 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-01 18:37:30 +0200chddr(~Thunderbi@31.148.23.125) (Ping timeout: 264 seconds)
2021-06-01 18:43:08 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Remote host closed the connection)
2021-06-01 18:43:31 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4) (Remote host closed the connection)
2021-06-01 18:43:54 +0200neceve(~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) (Ping timeout: 244 seconds)
2021-06-01 18:44:46 +0200sm2n(~sm2n@user/sm2n)
2021-06-01 18:47:21 +0200 <ski> gentauro : how about an `if' condition that's some 77 lines ?
2021-06-01 18:47:49 +0200 <yin> libera
2021-06-01 18:48:01 +0200 <yin> ignore this pls
2021-06-01 18:48:22 +0200skiglances around nervously
2021-06-01 18:48:52 +0200Bartosz(~textual@67.135.32.118)
2021-06-01 18:49:19 +0200motherfsck(~motherfsc@68.235.43.102)
2021-06-01 18:49:24 +0200dpl_(~dpl@77-121-78-163.chn.volia.net)
2021-06-01 18:49:38 +0200motherfsck(~motherfsc@68.235.43.102) (Quit: quit)
2021-06-01 18:50:38 +0200motherfsck(~motherfsc@68.235.43.102)
2021-06-01 18:50:56 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9)
2021-06-01 18:51:15 +0200beka(~beka@104.193.170-254.PUBLIC.monkeybrains.net)
2021-06-01 18:51:35 +0200leeb_(~leeb@KD111239153130.au-net.ne.jp) (Quit: WeeChat 3.1)
2021-06-01 18:52:03 +0200motherfsck(~motherfsc@68.235.43.102) (Client Quit)
2021-06-01 18:53:19 +0200 <gentauro> ski: "some 77 lines"?
2021-06-01 18:53:32 +0200haltux(~lbigas@a89-154-181-47.cpe.netcabo.pt) (Quit: Leaving)
2021-06-01 18:53:32 +0200 <ski> yes
2021-06-01 18:53:42 +0200 <gentauro> :|
2021-06-01 18:53:44 +0200 <gentauro> jaiks
2021-06-01 18:53:45 +0200keutoi(~keutoi@157.48.91.62) (Quit: leaving)
2021-06-01 18:54:05 +0200 <ski> it was a fun experiment of writing Prolog in C, i suppose you could say
2021-06-01 18:54:58 +0200motherfsck(~motherfsc@68.235.43.102)
2021-06-01 18:55:23 +0200vjoki(~vjoki@2a00:d880:3:1::fea1:9ae)
2021-06-01 18:55:37 +0200 <ski> bor0 : anyway .. i'm a bit suspicious about `ruleGeneralize'
2021-06-01 18:55:52 +0200haskman(~haskman@106.201.8.96)
2021-06-01 18:56:10 +0200motherfsck(~motherfsc@68.235.43.102) (Changing host)
2021-06-01 18:56:10 +0200motherfsck(~motherfsc@user/motherfsck)
2021-06-01 18:57:00 +0200haltux(~haltux@a89-154-181-47.cpe.netcabo.pt)
2021-06-01 18:57:27 +0200 <ski> (also, personally, i'm continually confused by each intermediate conclusion comment preceding the step that effects it, rather than succeding it)
2021-06-01 18:57:48 +0200novasenco(novasenco@user/nova) (♥☺)
2021-06-01 18:59:21 +0200pavonia(~user@user/siracusa)
2021-06-01 19:00:52 +0200 <monochrom> Once again "what I'm going to do next" vs "what I just did".
2021-06-01 19:02:26 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2021-06-01 19:02:34 +0200 <monochrom> This can run deep as the fundamental philosophical divide between "this is what's happening, oh btw here is computer code" vs "this is computer code, oh btw here is what's happening"
2021-06-01 19:04:09 +0200benin(~benin@183.82.205.186)
2021-06-01 19:04:47 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-06-01 19:04:51 +0200qbt(~edun@user/edun)
2021-06-01 19:06:40 +0200Ariakenom(~Ariakenom@2001:9b1:efb:fc00:d9c3:69a3:f97b:be95)
2021-06-01 19:06:40 +0200kmein(~weechat@user/kmein) (Quit: ciao kakao)
2021-06-01 19:07:05 +0200kmein(~weechat@user/kmein)
2021-06-01 19:08:31 +0200Bartosz(~textual@67.135.32.118) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-01 19:09:06 +0200 <ski> bor0 : part of the point of `ruleFantasy' is that you should be able to nest it. iow, there may be more than one hypothetical assumption, in force, at the same time, and so it seems inappropriate for `ruleGeneralize' to only `Maybe' take a hypothesis
2021-06-01 19:09:53 +0200azeem(~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it)
2021-06-01 19:10:11 +0200ec(~ec@gateway/tor-sasl/ec)
2021-06-01 19:10:16 +0200 <ski> (and, it's possible that you've already nested it like this, without realizing it, if you've, from inside a `ruleFantasy', used a lemma that used `ruleFantasy' in its proof
2021-06-01 19:10:19 +0200 <ski> )
2021-06-01 19:12:06 +0200ec(~ec@gateway/tor-sasl/ec) (Client Quit)
2021-06-01 19:12:17 +0200ec(~ec@gateway/tor-sasl/ec)
2021-06-01 19:12:42 +0200bfrk(~Thunderbi@200116b84593d400e083e41adfb91d63.dip.versatel-1u1.de)
2021-06-01 19:12:54 +0200 <monochrom> I don't know whether ruleFantasy is a cute name or a horrible name :)
2021-06-01 19:14:38 +0200motherfsck(~motherfsc@user/motherfsck) (Quit: quit)
2021-06-01 19:17:16 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-01 19:18:28 +0200novasenco(novasenco@user/nova)
2021-06-01 19:18:48 +0200ski. o O ( maybe both ? )
2021-06-01 19:18:56 +0200hseg(~gesh@185.120.126.41) (Quit: WeeChat 3.1)
2021-06-01 19:19:17 +0200myShoggoth(~myShoggot@97-120-89-117.ptld.qwest.net) (Ping timeout: 252 seconds)
2021-06-01 19:19:22 +0200 <novasenco> cabal install alsa-mixer -> http://ix.io/3ov9/
2021-06-01 19:19:32 +0200 <monochrom> i/sqrt(2) |cute> - i/sqrt(2) |horrible>
2021-06-01 19:19:36 +0200jumper149(~jumper149@80.240.31.34) (Quit: WeeChat 3.1)
2021-06-01 19:19:45 +0200bitmapper(uid464869@id-464869.tooting.irccloud.com)
2021-06-01 19:20:26 +0200 <novasenco> 07dist/build/Sound/ALSA/Mixer/Internal.i:1: (column 1) [ERROR] >>> Lexical error ! The character '#' does not fit here.
2021-06-01 19:20:56 +0200 <monochrom> probably gcc vs clang in terms of CPP things
2021-06-01 19:21:33 +0200 <novasenco> I have both installed. I have no idea how to tell it to prefer one or the other
2021-06-01 19:22:19 +0200motherfsck(~motherfsc@user/motherfsck)
2021-06-01 19:24:17 +0200sm2n(~sm2n@user/sm2n) (*.net *.split)
2021-06-01 19:24:17 +0200oxide(~lambda@user/oxide) (*.net *.split)
2021-06-01 19:24:17 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (*.net *.split)
2021-06-01 19:24:17 +0200pbrisbin(~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) (*.net *.split)
2021-06-01 19:24:17 +0200berberman(~berberman@user/berberman) (*.net *.split)
2021-06-01 19:24:17 +0200bor0(~boro@user/bor0) (*.net *.split)
2021-06-01 19:24:17 +0200cheater(~Username@user/cheater) (*.net *.split)
2021-06-01 19:24:17 +0200leif(uid501722@id-501722.stonehaven.irccloud.com) (*.net *.split)
2021-06-01 19:24:17 +0200joel135(sid136450@id-136450.stonehaven.irccloud.com) (*.net *.split)
2021-06-01 19:24:17 +0200Firedancer(sid336191@id-336191.stonehaven.irccloud.com) (*.net *.split)
2021-06-01 19:24:17 +0200mthvedt(uid501949@id-501949.stonehaven.irccloud.com) (*.net *.split)
2021-06-01 19:24:17 +0200amir(sid22336@user/amir) (*.net *.split)
2021-06-01 19:24:17 +0200peteretep(sid143467@id-143467.stonehaven.irccloud.com) (*.net *.split)
2021-06-01 19:24:17 +0200acertain(sid470584@id-470584.stonehaven.irccloud.com) (*.net *.split)
2021-06-01 19:24:17 +0200sqrt2(~ben@tunnel330957-pt.tunnel.tserv6.fra1.ipv6.he.net) (*.net *.split)
2021-06-01 19:24:17 +0200Megant(megant@user/megant) (*.net *.split)
2021-06-01 19:24:17 +0200Aighearach(~paris@c-71-63-160-210.hsd1.or.comcast.net) (*.net *.split)
2021-06-01 19:24:17 +0200the-coot[m](~the-cootm@2001:470:69fc:105::95f) (*.net *.split)
2021-06-01 19:24:17 +0200hexology(~hexology@user/hexology) (*.net *.split)
2021-06-01 19:24:17 +0200jiribenes(~jiribenes@rosa.jiribenes.com) (*.net *.split)
2021-06-01 19:24:17 +0200dexterfoo(dexter@2a01:7e00::f03c:91ff:fe86:59ec) (*.net *.split)
2021-06-01 19:24:17 +0200dmwit(~dmwit@pool-173-66-86-32.washdc.fios.verizon.net) (*.net *.split)
2021-06-01 19:24:17 +0200vjoki(~vjoki@2a00:d880:3:1::fea1:9ae) (*.net *.split)
2021-06-01 19:24:17 +0200thonkpod(~thonkpod@2001:19f0:ac01:b46:5400:1ff:fec7:d73d) (*.net *.split)
2021-06-01 19:24:17 +0200NemesisD(sid24071@tooting.irccloud.com) (*.net *.split)
2021-06-01 19:24:17 +0200parseval(sid239098@brockwell.irccloud.com) (*.net *.split)
2021-06-01 19:24:17 +0200edwtjo(~edwtjo@user/edwtjo) (*.net *.split)
2021-06-01 19:24:17 +0200fabfianda[m](~fabfianda@2001:470:69fc:105::6db) (*.net *.split)
2021-06-01 19:24:17 +0200bmsk(~user@2001:19f0:5001:2f3b:5400:3ff:fe53:2d96) (*.net *.split)
2021-06-01 19:24:17 +0200dy(~dy@user/dy) (*.net *.split)
2021-06-01 19:24:17 +0200Teacup(~teacup@user/teacup) (*.net *.split)
2021-06-01 19:24:17 +0200fjmorazan(~quassel@user/fjmorazan) (*.net *.split)
2021-06-01 19:24:17 +0200ajb(~ajb@cupid.whatbox.ca) (*.net *.split)
2021-06-01 19:24:17 +0200mstruebing(~maex@2001:41d0:8:93c7::1) (*.net *.split)
2021-06-01 19:24:17 +0200teehemkay(sid14792@id-14792.tooting.irccloud.com) (*.net *.split)
2021-06-01 19:24:17 +0200dixie(~dixie@real.wilbury.sk) (*.net *.split)
2021-06-01 19:24:17 +0200funsafe(~funsafe@2601:1c1:4200:938f:389d:16a4:ae2d:65aa) (*.net *.split)
2021-06-01 19:24:17 +0200statusbot(~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (*.net *.split)
2021-06-01 19:24:17 +0200plateno(~plateno@user/plateno) (*.net *.split)
2021-06-01 19:24:17 +0200edwardk(sid47016@haskell/developer/edwardk) (*.net *.split)
2021-06-01 19:24:17 +0200iphy(sid67735@tooting.irccloud.com) (*.net *.split)
2021-06-01 19:24:17 +0200immae(~immae@2a01:4f8:141:53e7::) (*.net *.split)
2021-06-01 19:24:17 +0200Hecate(~mariposa@user/hecate) (*.net *.split)
2021-06-01 19:24:17 +0200ham(~ham4@user/ham) (*.net *.split)
2021-06-01 19:24:17 +0200bcoppens(~bartcopp@vpn2.bartcoppens.be) (*.net *.split)
2021-06-01 19:24:17 +0200pie_bnc(~pie_bnc@user/pie/x-2818909) (*.net *.split)
2021-06-01 19:24:17 +0200df(~ben@51.15.198.140) (*.net *.split)
2021-06-01 19:24:17 +0200liskin(~liskin@ackle.nomi.cz) (*.net *.split)
2021-06-01 19:24:17 +0200samebchase(~samebchas@51.15.68.182) (*.net *.split)
2021-06-01 19:24:17 +0200bjfs(bart@kobayashi.com.pl) (*.net *.split)
2021-06-01 19:24:17 +0200supersven(uid501114@charlton.irccloud.com) (*.net *.split)
2021-06-01 19:24:17 +0200mikolaj_(~mikolaj@purple.well-typed.com) (*.net *.split)
2021-06-01 19:24:17 +0200keltono(~kelton@x-160-94-179-178.acm.umn.edu) (*.net *.split)
2021-06-01 19:24:17 +0200nitrix(~nitrix@user/nitrix) (*.net *.split)
2021-06-01 19:24:17 +0200bsima(~bsima@simatime.com) (*.net *.split)
2021-06-01 19:24:17 +0200mikolaj(~mikon@duch.mimuw.edu.pl) (*.net *.split)
2021-06-01 19:24:17 +0200bcmiller(~bm3719@66.42.95.185) (*.net *.split)
2021-06-01 19:24:17 +0200Aardwolf(~lode@77-56-208-202.dclient.hispeed.ch) (*.net *.split)
2021-06-01 19:24:17 +0200alp(~alp@user/alp) (*.net *.split)
2021-06-01 19:24:17 +0200Pent(sid313808@tooting.irccloud.com) (*.net *.split)
2021-06-01 19:24:17 +0200yushyin(0mbcixlPGk@karif.server-speed.net) (*.net *.split)
2021-06-01 19:24:17 +0200seeg(~thelounge@static.89.161.217.95.clients.your-server.de) (*.net *.split)
2021-06-01 19:24:17 +0200ivan(~ivan@user/ivan) (*.net *.split)
2021-06-01 19:24:17 +0200fryguybob(~fryguybob@cpe-74-65-31-113.rochester.res.rr.com) (*.net *.split)
2021-06-01 19:24:17 +0200haasn(~nand@haasn.dev) (*.net *.split)
2021-06-01 19:24:17 +0200dragestil(~quassel@user/dragestil) (*.net *.split)
2021-06-01 19:24:17 +0200Adran(~adran@botters/adran) (*.net *.split)
2021-06-01 19:24:17 +0200agander_m(sid407952@id-407952.tinside.irccloud.com) (*.net *.split)
2021-06-01 19:24:21 +0200 <maralorn[m]> monochrom: You’re in a weird phase.
2021-06-01 19:24:21 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-01 19:24:24 +0200Hecate(~mariposa@163.172.211.189)
2021-06-01 19:24:24 +0200parseval(sid239098@id-239098.brockwell.irccloud.com)
2021-06-01 19:24:24 +0200mikolaj(~mikolaj@purple.well-typed.com)
2021-06-01 19:24:25 +0200mikolaj_(~mikon@duch.mimuw.edu.pl)
2021-06-01 19:24:25 +0200supersven(uid501114@id-501114.charlton.irccloud.com)
2021-06-01 19:24:25 +0200dmwit(~dmwit@pool-173-66-86-32.washdc.fios.verizon.net)
2021-06-01 19:24:28 +0200bcoppens(~bartcopp@vpn2.bartcoppens.be)
2021-06-01 19:24:28 +0200dixie(~dixie@real.wilbury.sk)
2021-06-01 19:24:30 +0200edwtjo(~edwtjo@h-79-136-7-145.A213.priv.bahnhof.se)
2021-06-01 19:24:30 +0200dexterfoo(dexter@2a01:7e00::f03c:91ff:fe86:59ec)
2021-06-01 19:24:30 +0200ajb(~ajb@cupid.whatbox.ca)
2021-06-01 19:24:30 +0200mthvedt(uid501949@id-501949.stonehaven.irccloud.com)
2021-06-01 19:24:30 +0200teehemkay(sid14792@id-14792.tooting.irccloud.com)
2021-06-01 19:24:32 +0200keltono(~kelton@x-160-94-179-178.acm.umn.edu)
2021-06-01 19:24:32 +0200sqrt2(~ben@tunnel330957-pt.tunnel.tserv6.fra1.ipv6.he.net)
2021-06-01 19:24:32 +0200alp(~alp@163.172.83.213)
2021-06-01 19:24:32 +0200mstruebing(~maex@2001:41d0:8:93c7::1)
2021-06-01 19:24:33 +0200Pent(sid313808@id-313808.tooting.irccloud.com)
2021-06-01 19:24:33 +0200samebchase(~samebchas@51.15.68.182)
2021-06-01 19:24:35 +0200dragestil(~quassel@180-150-39-25.b49627.bne.nbn.aussiebb.net)
2021-06-01 19:24:36 +0200Aardwolf(~lode@77-56-208-202.dclient.hispeed.ch)
2021-06-01 19:24:37 +0200fjmorazan(~quassel@user/fjmorazan)
2021-06-01 19:24:37 +0200fryguybob(~fryguybob@cpe-74-65-31-113.rochester.res.rr.com)
2021-06-01 19:24:37 +0200Aighearach(~paris@c-71-63-160-210.hsd1.or.comcast.net)
2021-06-01 19:24:43 +0200guest0123(~aaron@2601:602:a080:fa0:21da:7ddc:2cc6:a10c)
2021-06-01 19:24:45 +0200bjfs(bart@kobayashi.com.pl)
2021-06-01 19:24:45 +0200yushyin(exGFiU2tsp@karif.server-speed.net)
2021-06-01 19:24:47 +0200liskin(~liskin@ackle.nomi.cz)
2021-06-01 19:24:49 +0200amir(sid22336@id-22336.stonehaven.irccloud.com)
2021-06-01 19:24:49 +0200agander_m(sid407952@id-407952.tinside.irccloud.com)
2021-06-01 19:24:50 +0200pbrisbin(~patrick@pool-72-92-38-164.phlapa.fios.verizon.net)
2021-06-01 19:24:51 +0200oxide(~lambda@61.0.149.238)
2021-06-01 19:24:52 +0200thonkpod(~thonkpod@2001:19f0:ac01:b46:5400:1ff:fec7:d73d)
2021-06-01 19:24:52 +0200joel135(sid136450@id-136450.stonehaven.irccloud.com)
2021-06-01 19:24:52 +0200acertain(sid470584@id-470584.stonehaven.irccloud.com)
2021-06-01 19:24:52 +0200Firedancer(sid336191@id-336191.stonehaven.irccloud.com)
2021-06-01 19:24:52 +0200Teacup(~teacup@user/teacup)
2021-06-01 19:24:52 +0200leif(uid501722@id-501722.stonehaven.irccloud.com)
2021-06-01 19:24:52 +0200peteretep(sid143467@id-143467.stonehaven.irccloud.com)
2021-06-01 19:24:52 +0200bmsk(~user@2001:19f0:5001:2f3b:5400:3ff:fe53:2d96)
2021-06-01 19:24:53 +0200funsafe(~funsafe@2601:1c1:4200:938f:389d:16a4:ae2d:65aa)
2021-06-01 19:24:54 +0200bor0(~boro@46.217.54.116)
2021-06-01 19:24:56 +0200jiribenes(~jiribenes@rosa.jiribenes.com)
2021-06-01 19:25:00 +0200iphy(sid67735@2001:67c:2f08:4::1:897)
2021-06-01 19:25:00 +0200NemesisD(sid24071@2001:67c:2f08:4::5e07)
2021-06-01 19:25:01 +0200nitrix(~nitrix@ns569831.ip-51-79-81.net)
2021-06-01 19:25:04 +0200immae(~immae@2a01:4f8:141:53e7::)
2021-06-01 19:25:04 +0200edwardk(sid47016@2001:67c:2f08:3::b7a8)
2021-06-01 19:25:10 +0200edwtjo(~edwtjo@h-79-136-7-145.A213.priv.bahnhof.se) (Changing host)
2021-06-01 19:25:10 +0200edwtjo(~edwtjo@user/edwtjo)
2021-06-01 19:25:14 +0200ivan(~ivan@static.38.6.217.95.clients.your-server.de)
2021-06-01 19:25:36 +0200amir(sid22336@id-22336.stonehaven.irccloud.com) (Changing host)
2021-06-01 19:25:36 +0200amir(sid22336@user/amir)
2021-06-01 19:25:46 +0200edwardk(sid47016@2001:67c:2f08:3::b7a8) (Changing host)
2021-06-01 19:25:46 +0200edwardk(sid47016@haskell/developer/edwardk)
2021-06-01 19:25:52 +0200yushyin(exGFiU2tsp@karif.server-speed.net) (Client Quit)
2021-06-01 19:25:53 +0200ivan(~ivan@static.38.6.217.95.clients.your-server.de) (Changing host)
2021-06-01 19:25:53 +0200ivan(~ivan@user/ivan)
2021-06-01 19:25:59 +0200bjfsGuest6937
2021-06-01 19:26:02 +0200nitrix(~nitrix@ns569831.ip-51-79-81.net) (Changing host)
2021-06-01 19:26:02 +0200nitrix(~nitrix@user/nitrix)
2021-06-01 19:26:07 +0200bmskGuest7513
2021-06-01 19:26:11 +0200bor0Guest929
2021-06-01 19:26:14 +0200yushyin(iqIKChYq4t@karif.server-speed.net)
2021-06-01 19:26:32 +0200sm2n(~sm2n@user/sm2n)
2021-06-01 19:26:39 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2021-06-01 19:26:40 +0200statusbot(~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com)
2021-06-01 19:26:42 +0200pie_bnc(~pie_bnc@user/pie/x-2818909)
2021-06-01 19:26:44 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2021-06-01 19:26:45 +0200bsima(~bsima@simatime.com)
2021-06-01 19:26:49 +0200ham(~ham4@user/ham)
2021-06-01 19:26:56 +0200hexology(~hexology@user/hexology)
2021-06-01 19:27:09 +0200yushyin(iqIKChYq4t@karif.server-speed.net) (Client Quit)
2021-06-01 19:27:11 +0200haasn(~nand@haasn.dev)
2021-06-01 19:27:17 +0200Adran(~adran@botters/adran)
2021-06-01 19:27:19 +0200vjoki(~vjoki@2a00:d880:3:1::fea1:9ae)
2021-06-01 19:27:23 +0200berberman(~berberman@user/berberman)
2021-06-01 19:27:23 +0200yushyin(nrX1Axr00h@karif.server-speed.net)
2021-06-01 19:27:54 +0200cheater(~Username@user/cheater)
2021-06-01 19:28:04 +0200Guest31(~textual@cpc146410-hari22-2-0-cust124.20-2.cable.virginm.net)
2021-06-01 19:28:47 +0200liskin(~liskin@ackle.nomi.cz) (Client Quit)
2021-06-01 19:28:56 +0200liskin(~liskin@ackle.nomi.cz)
2021-06-01 19:29:20 +0200bcmiller(~bm3719@66.42.95.185)
2021-06-01 19:29:24 +0200Megant(megant@user/megant)
2021-06-01 19:29:47 +0200ku(~ku@2601:280:c780:7ea0:d1c6:52a:4bf2:1ff2)
2021-06-01 19:30:55 +0200dunkeln(~dunkeln@94.129.65.28) (Ping timeout: 244 seconds)
2021-06-01 19:31:55 +0200sbmsr(~pi@2600:1700:63d0:4830:7dbf:92d8:fd42:235d)
2021-06-01 19:32:48 +0200fabfianda[m](~fabfianda@2001:470:69fc:105::6db)
2021-06-01 19:34:22 +0200Pent(sid313808@id-313808.tooting.irccloud.com) ()
2021-06-01 19:34:34 +0200Pent(sid313808@id-313808.tooting.irccloud.com)
2021-06-01 19:34:41 +0200Bartosz(~textual@24.35.90.211)
2021-06-01 19:39:00 +0200geekosaur(~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 265 seconds)
2021-06-01 19:40:29 +0200azeem(~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) (Ping timeout: 264 seconds)
2021-06-01 19:40:43 +0200myShoggoth(~myShoggot@97-120-89-117.ptld.qwest.net)
2021-06-01 19:42:17 +0200shryke(~shryke@91.103.43.254) (Ping timeout: 264 seconds)
2021-06-01 19:42:57 +0200geekosaur(~geekosaur@069-135-003-034.biz.spectrum.com)
2021-06-01 19:43:29 +0200xff0x(~xff0x@2001:1a81:52ca:4f00:7b0a:bab9:5836:8b3b) (Ping timeout: 252 seconds)
2021-06-01 19:44:17 +0200xff0x(~xff0x@2001:1a81:52ca:4f00:7e41:f92f:ed4d:a7b5)
2021-06-01 19:45:20 +0200learner-monad(~ehanneken@cpe-174-105-47-100.columbus.res.rr.com)
2021-06-01 19:47:42 +0200 <dminuoso> Im using context to implement simple basic authentication in Servant. Im pondering whether there is a way to short circuit this process for local unix domain sockets.
2021-06-01 19:47:59 +0200 <dminuoso> A way to have a cli tool talk to the local management socket skipping authentication
2021-06-01 19:48:45 +0200mccoyb(~textual@2601:182:d000:3b50:74fc:67c:ef8b:8632)
2021-06-01 19:48:49 +0200 <monochrom> ski: (A tangent from the conversation in freenode #haskell) I once had a student who used "show x == show y" for their (==) too. Except that their handwritten Show instance was wrong. And not just "disapproved by Haskell community" wrong. It downright bottomed out on some values.
2021-06-01 19:48:52 +0200 <Lycurgus> only answer localhost?
2021-06-01 19:49:12 +0200 <Lycurgus> (or whitelisted ip)
2021-06-01 19:50:27 +0200 <mccoyb> Hi -- I'm looking for some FFI help with Haskell. In particular, I'm trying to link a `dylib` in for a wrapper package I'm writing to `MLIR`: https://github.com/femtomc/mlir-hs. I'm having trouble getting linking to work correctly. Does anyone have expertise with this?
2021-06-01 19:50:33 +0200the-coot[m](~the-cootm@2001:470:69fc:105::95f)
2021-06-01 19:50:54 +0200a6a45081-2b83(~aditya@106.212.79.20)
2021-06-01 19:51:18 +0200a6a45081-2b83(~aditya@106.212.79.20) (Remote host closed the connection)
2021-06-01 19:51:46 +0200 <dminuoso> Lycurgus: I dont have access to that information when popping a context
2021-06-01 19:52:26 +0200 <dminuoso> Or maybe I do.. let me dive into this
2021-06-01 19:53:32 +0200 <ski> monochrom : ouch :/
2021-06-01 19:53:35 +0200 <Lycurgus> if its unix socket ... also unclear if local carried that already and exactly what context means if it was meant exactly
2021-06-01 19:53:45 +0200 <edwardk> monochrom: FREX uses unsafePerformIO to show the result of `Q (TExp a)` as an Exp, so comparatively that is a minor sin ;)
2021-06-01 19:54:30 +0200y04nn(~y04nn@193.32.127.220)
2021-06-01 19:54:40 +0200 <monochrom> Yeah I wouldn't mind if their show implementation were total and injective. But it failed both.
2021-06-01 19:54:42 +0200azeem(~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it)
2021-06-01 19:54:48 +0200neceve(~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130)
2021-06-01 19:54:57 +0200 <dminuoso> Lycurgus: Im talking servant context. But it seems, that all the magic is in HasServer, and I can implement that for a custom context.
2021-06-01 19:55:09 +0200 <Lycurgus> mccoyb, looks like you've stepped into llvm which is not mere linking
2021-06-01 19:55:09 +0200 <dminuoso> So I guess I need to handroll the basic authentication hook for HasServer
2021-06-01 19:55:20 +0200 <monochrom> If a person fails at recursion, they don't just fail at recursive (==), they fail at recursive show too.
2021-06-01 19:55:43 +0200lavaman(~lavaman@98.38.249.169)
2021-06-01 19:56:16 +0200 <mccoyb> Lycurgus, interesting. But I have headers and a dylib, shouldn't I be able to link?
2021-06-01 19:56:30 +0200 <Lycurgus> dminuoso, ah, well that pkgs comes with a number of auth suggestions
2021-06-01 19:56:32 +0200ddellacosta(~ddellacos@89.45.224.79)
2021-06-01 19:56:39 +0200 <Lycurgus> (fully implemented)
2021-06-01 19:56:45 +0200 <monochrom> btw I saw accursedUnutterablePerformIO in Data.ByteString source code :)
2021-06-01 19:56:45 +0200 <Lycurgus> *pkg
2021-06-01 19:57:23 +0200 <mccoyb> This is a pure C API, I don't have to handle name mangling, etc. I'm just wrapping a C API (for more info).
2021-06-01 19:57:38 +0200 <monochrom> Basically 50% of the functions there utter it. It's very utterable.
2021-06-01 19:58:09 +0200 <Lycurgus> well linking with that should be straightforward, at least from the c side
2021-06-01 19:58:41 +0200oxide(~lambda@61.0.149.238) (Changing host)
2021-06-01 19:58:41 +0200oxide(~lambda@user/oxide)
2021-06-01 19:58:52 +0200 <Lycurgus> i didn look at ur link but inferred llvm from the IR in MLIR
2021-06-01 19:58:58 +0200vicfred(~vicfred@user/vicfred)
2021-06-01 19:59:51 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 244 seconds)
2021-06-01 20:00:22 +0200mccoyb(~textual@2601:182:d000:3b50:74fc:67c:ef8b:8632) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2021-06-01 20:00:35 +0200 <Lycurgus> confirmed, fortunately since that was an outrageous stretch
2021-06-01 20:00:44 +0200mccoyb(~textual@2601:182:d000:3b50:74fc:67c:ef8b:8632)
2021-06-01 20:00:53 +0200ddellacosta(~ddellacos@89.45.224.79) (Ping timeout: 244 seconds)
2021-06-01 20:01:00 +0200 <mccoyb> Lycurgus -- sorry, I should have been more clear. Yes, no need for difficulties, just linking with C.
2021-06-01 20:01:38 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
2021-06-01 20:01:44 +0200 <mccoyb> In general, I'm looking for a Haskell package which I can use as a template, is anyone aware of a package which links with a `dylib`?
2021-06-01 20:01:45 +0200 <Lycurgus> lemme put it this way, once upon a time linking was straightforward
2021-06-01 20:02:03 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-01 20:02:20 +0200 <Lycurgus> and fundamentally it still is
2021-06-01 20:02:49 +0200igghibu(~igghibu@91.193.5.46)
2021-06-01 20:03:45 +0200dmwit(~dmwit@pool-173-66-86-32.washdc.fios.verizon.net) (Ping timeout: 272 seconds)
2021-06-01 20:07:21 +0200Guest31(~textual@cpc146410-hari22-2-0-cust124.20-2.cable.virginm.net) (Quit: Textual IRC Client: www.textualapp.com)
2021-06-01 20:08:05 +0200 <mccoyb> My main issue has been getting this stuff working with `stack` and/or `cabal`. I studied `llvm-hs` relatively deeply -- but thought there could be a simpler way to prototype linking without having a custom `Setup.hs`.
2021-06-01 20:08:51 +0200 <Lycurgus> is llvm the only backend now?
2021-06-01 20:09:19 +0200 <Lycurgus> it was optional for a long time
2021-06-01 20:09:59 +0200 <Lycurgus> after link it's all the same object code
2021-06-01 20:10:30 +0200qbt(~edun@user/edun) (Quit: WeeChat 3.1)
2021-06-01 20:11:14 +0200 <Lycurgus> llvm conceptually is like user microprogamming but just, at least on regular cpus
2021-06-01 20:14:46 +0200Guest929bor0
2021-06-01 20:14:48 +0200bor0(~boro@46.217.54.116) (Changing host)
2021-06-01 20:14:48 +0200bor0(~boro@user/bor0)
2021-06-01 20:15:23 +0200 <mccoyb> Lycurgus -- when you say backend, do you mean final lower target for MLIR? Or are you referring to usage in a different context?
2021-06-01 20:15:57 +0200 <Lycurgus> compiler backend, the code generation stage, in this case ghc
2021-06-01 20:15:59 +0200 <bor0> ski, sorry, I was afk. It's true that `ruleGeneralize` can have multiple premises, but I believe we only care about the inner most premise?
2021-06-01 20:16:10 +0200 <bor0> ski, I might have, as well, misunderstood its description from GEB :)
2021-06-01 20:16:16 +0200ubikium(~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) (Read error: Connection reset by peer)
2021-06-01 20:16:24 +0200 <dminuoso> monochrom: One does wonder, if the usage frequency is so high, whether that doesn't that desensetizes the authors. I mean if you fling it around at every chance, do you really even pay attention to that danger name?
2021-06-01 20:16:31 +0200ubikium(~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net)
2021-06-01 20:16:45 +0200 <dminuoso> Might at as well call it "mostlySafePerformIO"
2021-06-01 20:16:59 +0200 <dminuoso> On the basis that all uses of it are considered safe.
2021-06-01 20:17:00 +0200Bartosz(~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-01 20:17:07 +0200jorjor(~jorgemene@85.251.190.6.dyn.user.ono.com)
2021-06-01 20:17:31 +0200Bartosz(~textual@24.35.90.211)
2021-06-01 20:18:09 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-01 20:18:15 +0200Erutuon(~Erutuon@user/erutuon)
2021-06-01 20:18:27 +0200prite(~pritam@user/pritambaral) (Quit: Konversation terminated!)
2021-06-01 20:18:32 +0200 <boxscape> maybe they should have chosen a name that's very difficult to type
2021-06-01 20:18:52 +0200Bartosz(~textual@24.35.90.211) (Client Quit)
2021-06-01 20:19:01 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-06-01 20:19:09 +0200ubikium(~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) (Client Quit)
2021-06-01 20:19:13 +0200 <dminuoso> accursdeUntturabelPerfformIO
2021-06-01 20:19:20 +0200 <dminuoso> I guarantee, you will mispell it every time.
2021-06-01 20:19:25 +0200 <boxscape> haha
2021-06-01 20:19:40 +0200 <monochrom> Unpopular opinion: Every long caml case name is difficult to type anyway.
2021-06-01 20:20:04 +0200 <monochrom> haha that's nice
2021-06-01 20:22:14 +0200curiousgay(~quassel@178.217.208.8)
2021-06-01 20:22:48 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Remote host closed the connection)
2021-06-01 20:24:25 +0200df(~ben@51.15.198.140)
2021-06-01 20:24:26 +0200sqrt2(~ben@tunnel330957-pt.tunnel.tserv6.fra1.ipv6.he.net) (Ping timeout: 265 seconds)
2021-06-01 20:24:46 +0200allbery_b(~geekosaur@069-135-003-034.biz.spectrum.com)
2021-06-01 20:24:54 +0200geekosaur(~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 264 seconds)
2021-06-01 20:27:15 +0200sqrt2(~ben@tunnel330957-pt.tunnel.tserv6.fra1.ipv6.he.net)
2021-06-01 20:28:45 +0200 <maerwald> snake case > camel case
2021-06-01 20:28:49 +0200 <maerwald> there's research
2021-06-01 20:29:00 +0200 <maerwald> https://ieeexplore.ieee.org/document/5521745
2021-06-01 20:29:19 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-01 20:30:58 +0200ddellacosta(~ddellacos@89.45.224.170)
2021-06-01 20:31:36 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.1)
2021-06-01 20:33:49 +0200jorjor(~jorgemene@85.251.190.6.dyn.user.ono.com) (Konversation terminated!)
2021-06-01 20:33:54 +0200 <tdammers> kebab case is best
2021-06-01 20:33:57 +0200neceve(~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) (Ping timeout: 272 seconds)
2021-06-01 20:34:10 +0200 <maerwald> only chicken
2021-06-01 20:34:55 +0200dunkeln(~dunkeln@94.129.65.28)
2021-06-01 20:35:17 +0200 <maerwald> which language does kebab?
2021-06-01 20:35:37 +0200 <tdammers> lisps
2021-06-01 20:36:02 +0200 <tdammers> they can pull it off because prefix-everything notation
2021-06-01 20:38:41 +0200 <nf> > subjects were trained mainly in the underscore style [...] subjects recognize identifiers in the underscore style more quickly
2021-06-01 20:38:42 +0200 <lambdabot> <hint>:1:30: error: parse error on input ‘in’
2021-06-01 20:38:53 +0200 <nf> interesting methodology o_Ô
2021-06-01 20:39:49 +0200 <tdammers> or maybe just randomizing casing conventions entirely is the best way forward, that way everyone has something to complain
2021-06-01 20:41:28 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9)
2021-06-01 20:42:31 +0200 <maerwald> haskell is a dense language... I read haskell different than C
2021-06-01 20:42:37 +0200 <maerwald> I wouldn't want camel case in C
2021-06-01 20:43:18 +0200__monty__(~toonn@user/toonn)
2021-06-01 20:43:51 +0200 <nf> i think it's a matter of habit, probably?
2021-06-01 20:43:53 +0200mcglk(~mcglk@131.191.49.120) (Read error: Connection reset by peer)
2021-06-01 20:44:05 +0200beka(~beka@104.193.170-254.PUBLIC.monkeybrains.net) (Ping timeout: 264 seconds)
2021-06-01 20:44:13 +0200 <maerwald> of course, but how strong the effects are is the question
2021-06-01 20:44:34 +0200mcglk(~mcglk@131.191.49.120)
2021-06-01 20:45:32 +0200dss(~dss@144.202.106.125)
2021-06-01 20:46:18 +0200dss(~dss@144.202.106.125) ()
2021-06-01 20:50:28 +0200benin(~benin@183.82.205.186) (Quit: The Lounge - https://thelounge.chat)
2021-06-01 20:51:25 +0200wallymathieu(~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-01 20:53:35 +0200bor0(~boro@user/bor0) (Quit: This computer has gone to sleep)
2021-06-01 20:54:44 +0200lavaman(~lavaman@98.38.249.169)
2021-06-01 20:55:28 +0200wallymathieu(~wallymath@81-234-151-21-no94.tbcn.telia.com)
2021-06-01 20:56:10 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 244 seconds)
2021-06-01 20:57:00 +0200 <monochrom> https://0paste.com/251395 shows the problem with camel case.
2021-06-01 20:57:29 +0200 <monochrom> Error message: non-exhaustive pattern. Can you catch it?
2021-06-01 20:57:49 +0200 <xsperry> yes, i not capitalized
2021-06-01 20:57:58 +0200 <nf> not any more than foo_bar/foo-bar shows the problem with snake case :shrug:
2021-06-01 20:58:06 +0200 <monochrom> Took both the asker and me 10 minutes.
2021-06-01 20:58:22 +0200 <ski> @tell bor0 "It's true that `ruleGeneralize` can have multiple premises, but I believe we only care about the inner most premise?" -- no, all of them should be taken into account, for the side condition of generalization (`forall'-intro) (as well as for `exists'-elim)
2021-06-01 20:58:22 +0200 <lambdabot> Consider it noted.
2021-06-01 20:58:58 +0200 <xsperry> monochrom, to be honest, if you didn't talk about the problem with camel case first, it would probably take me longer
2021-06-01 20:59:08 +0200 <monochrom> No, would you spot it when you make this kind of mistakes?
2021-06-01 20:59:23 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-06-01 20:59:27 +0200 <monochrom> In fact, even, would you even make this kind of mistakes with snake case for example?
2021-06-01 20:59:32 +0200 <maerwald> there should be an error AND a warning
2021-06-01 20:59:40 +0200 <maerwald> the warning should tell you what's wrong
2021-06-01 20:59:48 +0200 <ski> error for ?
2021-06-01 20:59:49 +0200 <maerwald> missing type sig
2021-06-01 21:00:01 +0200 <xsperry> I don't know. I never actually encountered something similar, I'd use editor's auto completion to type most of that function name for me
2021-06-01 21:00:08 +0200 <monochrom> The problem exists because you attempt to type I in the first place but then fail.
2021-06-01 21:00:25 +0200 <monochrom> With snake case you won't even attempt.
2021-06-01 21:00:38 +0200 <ski> iirc, John Hughes generally doesn't put type signatures on his definitions
2021-06-01 21:01:32 +0200guest0123(~aaron@2601:602:a080:fa0:21da:7ddc:2cc6:a10c) ()
2021-06-01 21:01:33 +0200azeem(~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) (Read error: Connection reset by peer)
2021-06-01 21:02:22 +0200dunkeln(~dunkeln@94.129.65.28) (Ping timeout: 244 seconds)
2021-06-01 21:03:55 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
2021-06-01 21:06:35 +0200wallymathieu(~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-01 21:08:32 +0200 <Torro> .discon
2021-06-01 21:08:45 +0200 <monochrom> It's /discon or /quit
2021-06-01 21:08:45 +0200Torro(Torro@gateway/vpn/protonvpn/torro) (Quit: bye)
2021-06-01 21:11:05 +0200azeem(~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it)
2021-06-01 21:13:14 +0200mc47(~yecinem@89.246.239.190) (Remote host closed the connection)
2021-06-01 21:13:32 +0200ku(~ku@2601:280:c780:7ea0:d1c6:52a:4bf2:1ff2) (Ping timeout: 268 seconds)
2021-06-01 21:15:01 +0200dunkeln(~dunkeln@94.129.65.28)
2021-06-01 21:15:46 +0200Erutuon(~Erutuon@user/erutuon)
2021-06-01 21:17:36 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 265 seconds)
2021-06-01 21:18:17 +0200sbmsr(~pi@2600:1700:63d0:4830:7dbf:92d8:fd42:235d) (Quit: WeeChat 2.3)
2021-06-01 21:18:52 +0200tremon(~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl)
2021-06-01 21:23:35 +0200dunkeln(~dunkeln@94.129.65.28) (Ping timeout: 252 seconds)
2021-06-01 21:23:35 +0200 <dminuoso> nf: sample size of 15 too
2021-06-01 21:23:43 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Remote host closed the connection)
2021-06-01 21:25:37 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-01 21:26:41 +0200ppieters(~ppieters@105-213-89-241.access.mtnbusiness.co.za)
2021-06-01 21:27:13 +0200ku(~ku@2601:280:c780:7ea0:a829:e2b3:d453:ddc1)
2021-06-01 21:27:30 +0200 <dminuoso> And they were volunteers without any selection methodology
2021-06-01 21:29:15 +0200 <monochrom> Gosh I suck at C because of Haskell.
2021-06-01 21:29:24 +0200beka(~beka@104.193.170-254.PUBLIC.monkeybrains.net)
2021-06-01 21:29:34 +0200 <monochrom> I wrote "int fac(int n) { n == 0 ? 1 : n * fac(n-1); }"
2021-06-01 21:30:03 +0200 <dminuoso> Ontop, they used just 8 phrases for this study, with no explanation how these phrases were selected either.
2021-06-01 21:30:08 +0200 <monochrom> Since I didn't say "return" I got machine-dependent answers, in my case it always returns 0.
2021-06-01 21:31:11 +0200 <dminuoso> monochrom: What surprises me is, your compiler doesn't flat out error out?
2021-06-01 21:31:22 +0200 <monochrom> No :)
2021-06-01 21:31:54 +0200 <ski> successful compilation is a wonderful thing
2021-06-01 21:32:03 +0200ppieters(~ppieters@105-213-89-241.access.mtnbusiness.co.za) (Remote host closed the connection)
2021-06-01 21:34:45 +0200ddellacosta(~ddellacos@89.45.224.170) (Ping timeout: 272 seconds)
2021-06-01 21:36:56 +0200 <mccoyb> Lycurgus -- I'm not sure if what backend GHC uses is relevant here. This problem is just basically "take a generic .dylib + some C header files and get stack to use them in some foreign calls".
2021-06-01 21:37:41 +0200mc47(~yecinem@89.246.239.190)
2021-06-01 21:38:05 +0200hiptobecubic(~john@c-73-55-99-95.hsd1.fl.comcast.net)
2021-06-01 21:43:02 +0200brian_da_mage(~Neuromanc@adsl-187.46.190.47.tellas.gr)
2021-06-01 21:43:02 +0200brian_da_mage(~Neuromanc@adsl-187.46.190.47.tellas.gr) (Changing host)
2021-06-01 21:43:02 +0200brian_da_mage(~Neuromanc@user/briandamag)
2021-06-01 21:44:04 +0200Shaeto(~Shaeto@94.25.234.213) (Quit: WeeChat 3.1)
2021-06-01 21:44:29 +0200sqrt2(~ben@tunnel330957-pt.tunnel.tserv6.fra1.ipv6.he.net) (Ping timeout: 252 seconds)
2021-06-01 21:44:41 +0200bor0(~boro@46.217.54.116)
2021-06-01 21:44:41 +0200bor0(~boro@46.217.54.116) (Changing host)
2021-06-01 21:44:41 +0200bor0(~boro@user/bor0)
2021-06-01 21:44:53 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 272 seconds)
2021-06-01 21:44:53 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-06-01 21:45:05 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 272 seconds)
2021-06-01 21:45:32 +0200igghibu(~igghibu@91.193.5.46) (Quit: Textual IRC Client: www.textualapp.com)
2021-06-01 21:46:31 +0200Erutuon(~Erutuon@user/erutuon)
2021-06-01 21:46:36 +0200Hecate(~mariposa@163.172.211.189) (Changing host)
2021-06-01 21:46:36 +0200Hecate(~mariposa@user/hecate)
2021-06-01 21:46:44 +0200 <mccoyb> Asking again in case any active chatters have exp -- has anyone linked (dylib + headers) with stack/cabal before and wouldn't mind chatting about it?
2021-06-01 21:47:16 +0200vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2021-06-01 21:49:42 +0200 <bor0> Thanks ski. I didn't get the `@tell` message, though found your reply on ircbrowse
2021-06-01 21:50:04 +0200 <bor0> Ah! Right after I post a message here lambdabot messages me.
2021-06-01 21:52:24 +0200 <dminuoso> bor0: Right. Im specifically talking about the usage of `go`.
2021-06-01 21:52:29 +0200chomwitt(~Pitsikoko@athedsl-20549.home.otenet.gr) (Ping timeout: 272 seconds)
2021-06-01 21:53:33 +0200 <dminuoso> bor0: It's not a major deficit necessarily, but since you're writing non-trivial code I thought I'd point it out. The lack of guaranteed fusion is easily addressed by wrapping it with a particular newtype before doing all the fmapping.
2021-06-01 21:55:04 +0200 <novasenco> people of #haskell. I am still unable to install alsa-mixer with cabal. https://asciinema.org/a/byZnjGK2NOeaIz7xYne3f8A1I
2021-06-01 21:55:21 +0200 <dminuoso> Wrap with this https://hackage.haskell.org/package/kan-extensions-5.2.2/docs/Data-Functor-Yoneda.html#v:liftYoneda - do your recursive fmapping, and then lowerYoneda out. Done!
2021-06-01 21:55:30 +0200 <bor0> Thank you. This is a toy implementation, mainly for learning purposes. But I am now curious, could you show a minimal example of achieving this? In my case, `Proof` is already a newtype - or is the trick to do another wrap?
2021-06-01 21:55:33 +0200 <dminuoso> And completely ignore the scary sounding names.
2021-06-01 21:55:53 +0200 <bor0> Ah, Yoneda. Seen that many times, but never learned more about it
2021-06-01 21:56:19 +0200 <dminuoso> bor0: The gist of Yoneda is: if you have repeated fmap applications, with Yoneda GHC has a chance to fuse the function together.
2021-06-01 21:56:21 +0200 <dminuoso> That's all
2021-06-01 21:56:31 +0200 <dminuoso> Without it, you will most likely not get any fusion
2021-06-01 21:57:10 +0200 <bor0> By fusion you mean the composition law, right?
2021-06-01 21:57:42 +0200arson(~arson@pool-100-36-47-118.washdc.fios.verizon.net)
2021-06-01 21:58:03 +0200 <dminuoso> The fmap composition law `fmap f . fmap g`, yes.
2021-06-01 21:58:28 +0200 <davean> novasenco: too new a GCC
2021-06-01 21:58:33 +0200 <dminuoso> Turning it into `fmap (f . g)` gives better performance, since the cost of fmap is taken only once
2021-06-01 21:58:39 +0200 <bor0> OK, I think it makes sense. Thanks. Yeah, one `fmap` (application) on the LHS, and two of them on the RHS so I can see how optimization can be affected
2021-06-01 21:59:09 +0200 <bor0> (Using fmap (f . g) == fmap f . fmap g)
2021-06-01 21:59:11 +0200 <novasenco> wat
2021-06-01 21:59:47 +0200 <dminuoso> bor0: Right. Except while the law holds in our minds, GHC cant know whether all instances actually abide, so we need some trickery to force the issue.
2021-06-01 22:00:04 +0200 <davean> novasenco: your GCC version is too new
2021-06-01 22:00:10 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 252 seconds)
2021-06-01 22:00:23 +0200 <dminuoso> bor0: Internally, Yoneda is really simple. It's just partially applied fmap, with the Functor instance defined as: fmap f m = Yoneda (\k -> runYoneda m (k . f))
2021-06-01 22:01:09 +0200 <dminuoso> bor0: And since Yoneda is a newtype, it disappears at runtime entirely. So you can see how repeated fmap application `lowerYoneda . fmap f . fmag g . liftYoneda` gets turned into `fmap (f . g)`
2021-06-01 22:01:43 +0200 <bor0> I see. I knew newtypes were faster, but not because they disappeared at runtime. That's helpful to know!
2021-06-01 22:02:15 +0200 <davean> bor0: thats what makes newtype not data
2021-06-01 22:03:13 +0200ddellacosta(~ddellacos@89.45.224.170)
2021-06-01 22:03:57 +0200 <dminuoso> bor0: And as a teaser, we have a similar trick for repeated applications of >>=, using Codensity/liftCodensity/lowerDensity! :)
2021-06-01 22:04:06 +0200oxide(~lambda@user/oxide) (Ping timeout: 268 seconds)
2021-06-01 22:04:21 +0200 <dminuoso> If you can look over these scary looking names, they're useful primitives to allow GHC to optimize better
2021-06-01 22:04:51 +0200 <dminuoso> s/lowerDensity/lowerCodensity/
2021-06-01 22:04:52 +0200 <bor0> Does `do` notation automatically use *density?
2021-06-01 22:04:56 +0200 <dminuoso> No.
2021-06-01 22:04:59 +0200 <novasenco> davean, hmm. okay. anything I can do about that?
2021-06-01 22:05:29 +0200 <davean> novasenco: well you could set an older gcc, oyu're already setting CC manually
2021-06-01 22:05:37 +0200oxide(~lambda@user/oxide)
2021-06-01 22:05:59 +0200 <novasenco> (I don't even know if setting CC does anything; I was grasping at straws)
2021-06-01 22:06:31 +0200 <davean> anything not gcc11 should work
2021-06-01 22:06:52 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-01 22:07:06 +0200 <davean> https://github.com/haskell/c2hs/issues/268
2021-06-01 22:07:51 +0200sqrt2(~ben@tunnel330957-pt.tunnel.tserv6.fra1.ipv6.he.net)
2021-06-01 22:08:05 +0200ddellacosta(~ddellacos@89.45.224.170) (Ping timeout: 264 seconds)
2021-06-01 22:08:44 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-06-01 22:09:24 +0200 <dminuoso> bor0: As far as I can tell, you will need Compose too to make this work.
2021-06-01 22:09:32 +0200arrowd(~arr@2.94.203.147) ()
2021-06-01 22:11:01 +0200 <novasenco> hm. oki. thanks
2021-06-01 22:11:29 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 272 seconds)
2021-06-01 22:11:31 +0200 <dminuoso> Ah no, it wouldn't even work with a nested functor.
2021-06-01 22:13:04 +0200 <bor0> Thanks, this is all useful, although probably way beyond me at this point. If at least one more person gets to use this, I'll be happy to get deeper into optimization :D
2021-06-01 22:13:13 +0200 <dminuoso> bor0: Let me show you, it's really simple! :)
2021-06-01 22:13:30 +0200ddellacosta(~ddellacos@89.46.62.170)
2021-06-01 22:13:39 +0200 <bor0> Sure! Let's talk specifically about `go`. I think that'll help :D
2021-06-01 22:15:53 +0200_xft0(~root@185.234.208.208.r.toneticgroup.pl) (Ping timeout: 264 seconds)
2021-06-01 22:16:01 +0200 <davean> novasenco: you might get around it by installing c2hs with a newer language-c, but who knows
2021-06-01 22:16:06 +0200AgentM(~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) (Quit: Leaving.)
2021-06-01 22:17:24 +0200 <dminuoso> bor0: There might be the odd typo here, but roughly this: https://gist.github.com/dminuoso/fef54010b5d7dd475245d6f9b6546737
2021-06-01 22:18:17 +0200 <dminuoso> Typo fixed, reload! :)
2021-06-01 22:18:52 +0200 <dminuoso> Ah there's some small impedance mismatching with the argument `x` here
2021-06-01 22:19:52 +0200Cubic(~hannesste@ip5f5be453.dynamic.kabel-deutschland.de) (Quit: leaving)
2021-06-01 22:20:55 +0200 <dminuoso> Ah I see what's wrong. We need to massage the function `f` first
2021-06-01 22:21:30 +0200 <bor0> Yeah, YESP x vs Either String (Proof x)
2021-06-01 22:21:53 +0200 <bor0> I noticed that but thought that'd be handled by some of the magic between L5-L9 :D
2021-06-01 22:22:09 +0200 <dminuoso> bor0: Reload, it should be fine now
2021-06-01 22:22:58 +0200dunkeln(~dunkeln@94.129.65.28)
2021-06-01 22:23:20 +0200skiwould use `<$>'
2021-06-01 22:23:26 +0200ec(~ec@gateway/tor-sasl/ec)
2021-06-01 22:24:09 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9)
2021-06-01 22:24:28 +0200 <bor0> Small typo on line 13, just a nit.
2021-06-01 22:24:36 +0200 <bor0> Ahhh Yoneda isn't in base.
2021-06-01 22:24:41 +0200 <ski> bor0 : oh, another thing i thought about (but forgot to say), is that `applyPropRule' could generalize from `Either String' to any functor
2021-06-01 22:24:42 +0200 <dminuoso> Yeah, its from kan-extensions
2021-06-01 22:24:43 +0200econo(uid147250@user/econo)
2021-06-01 22:25:04 +0200kuribas(~user@ptr-25vy0i96apm5u45pamz.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
2021-06-01 22:25:11 +0200 <dminuoso> But, if that's too heavy for you, you can just reimplement Yoneda yourself. It's just a few lines of code.
2021-06-01 22:27:13 +0200ixlun(~matthew@109.249.184.235)
2021-06-01 22:27:52 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-01 22:27:53 +0200michalz(~user@185.246.204.45) (Remote host closed the connection)
2021-06-01 22:28:09 +0200 <dminuoso> The Compose/getCompose could be dropped if you used `x <&&> f = fmap (fmap f) x` probably. Fusion should still happen (because the inner fmap would disappear since its just a newtype)
2021-06-01 22:28:30 +0200dpl_(~dpl@77-121-78-163.chn.volia.net) (Ping timeout: 264 seconds)
2021-06-01 22:29:13 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Ping timeout: 272 seconds)
2021-06-01 22:37:01 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 272 seconds)
2021-06-01 22:37:13 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-01 22:41:14 +0200dpl_(~dpl@77-121-78-163.chn.volia.net)
2021-06-01 22:41:18 +0200maralorn[m]maralorn
2021-06-01 22:44:34 +0200maralorn(~maralorn@2001:470:69fc:105::251) (Quit: node-irc says goodbye)
2021-06-01 22:44:50 +0200maralorn(~maralorn@2001:470:69fc:105::251)
2021-06-01 22:46:19 +0200arson(~arson@pool-100-36-47-118.washdc.fios.verizon.net) ()
2021-06-01 22:46:21 +0200mc47(~yecinem@89.246.239.190) (Quit: Leaving)
2021-06-01 22:48:28 +0200mccoyb(~textual@2601:182:d000:3b50:74fc:67c:ef8b:8632) (Quit: Textual IRC Client: www.textualapp.com)
2021-06-01 22:48:50 +0200Guest60(~Guest60@90.242.128.21)
2021-06-01 22:50:19 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9)
2021-06-01 22:50:36 +0200Digit(~user@user/digit)
2021-06-01 22:51:54 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 244 seconds)
2021-06-01 22:55:10 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 252 seconds)
2021-06-01 22:57:19 +0200orzo(joe@lasker.childrenofmay.org) (*.net *.split)
2021-06-01 22:57:32 +0200orzo(joe@lasker.childrenofmay.org)
2021-06-01 22:57:39 +0200Guest60Abedegno
2021-06-01 22:58:04 +0200ddellacosta(~ddellacos@89.46.62.170) (Remote host closed the connection)
2021-06-01 22:58:15 +0200ddellacosta(~ddellacos@89.46.62.170)
2021-06-01 22:59:57 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-01 23:01:13 +0200unyu(~pyon@user/pyon)
2021-06-01 23:01:37 +0200dy(~dy@user/dy)
2021-06-01 23:06:14 +0200Abedegno(~Guest60@90.242.128.21) (Ping timeout: 250 seconds)
2021-06-01 23:06:17 +0200beka(~beka@104.193.170-254.PUBLIC.monkeybrains.net) (Ping timeout: 264 seconds)
2021-06-01 23:06:26 +0200derelict(~winter@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Ping timeout: 252 seconds)
2021-06-01 23:07:23 +0200Ariakenom(~Ariakenom@2001:9b1:efb:fc00:d9c3:69a3:f97b:be95) (Read error: Connection reset by peer)
2021-06-01 23:08:37 +0200ddellacosta(~ddellacos@89.46.62.170) (Remote host closed the connection)
2021-06-01 23:09:52 +0200funsafe(~funsafe@2601:1c1:4200:938f:389d:16a4:ae2d:65aa) (Quit: funsafe)
2021-06-01 23:10:12 +0200funsafe(~funsafe@2601:1c1:4200:938f:389d:16a4:ae2d:65aa)
2021-06-01 23:11:43 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Remote host closed the connection)
2021-06-01 23:14:08 +0200myShoggoth(~myShoggot@97-120-89-117.ptld.qwest.net) (Ping timeout: 252 seconds)
2021-06-01 23:15:16 +0200lavaman(~lavaman@98.38.249.169)
2021-06-01 23:15:24 +0200dunkeln(~dunkeln@94.129.65.28) (Ping timeout: 272 seconds)
2021-06-01 23:15:29 +0200sondre(~sondrelun@cm-84.212.100.140.getinternet.no)
2021-06-01 23:18:33 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-01 23:20:06 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2021-06-01 23:20:49 +0200ixlun(~matthew@109.249.184.235) (Read error: Connection reset by peer)
2021-06-01 23:22:09 +0200dustinm(~dustinm@static.38.6.217.95.clients.your-server.de)
2021-06-01 23:26:48 +0200egoist(~egoist@186.235.82.52)
2021-06-01 23:26:57 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-01 23:27:55 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-01 23:30:23 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-01 23:32:34 +0200mccoyb(~textual@2601:182:d000:3b50:74fc:67c:ef8b:8632)
2021-06-01 23:32:37 +0200mccoyb(~textual@2601:182:d000:3b50:74fc:67c:ef8b:8632) (Client Quit)
2021-06-01 23:33:15 +0200wenzel_(~wenzel@user/wenzel)
2021-06-01 23:33:36 +0200allbery_bgeekosaur
2021-06-01 23:34:24 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-06-01 23:35:40 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2021-06-01 23:36:18 +0200wenzel(~wenzel@user/wenzel) (Ping timeout: 264 seconds)
2021-06-01 23:37:18 +0200learner-monad(~ehanneken@cpe-174-105-47-100.columbus.res.rr.com) (Quit: WeeChat 3.1)
2021-06-01 23:37:25 +0200wenzel_(~wenzel@user/wenzel) (Client Quit)
2021-06-01 23:39:25 +0200xsperry(~as@user/xsperry) (Read error: Connection reset by peer)
2021-06-01 23:39:52 +0200myShoggoth(~myShoggot@97-120-89-117.ptld.qwest.net)
2021-06-01 23:39:55 +0200mccoyb(~textual@2601:182:d000:3b50:74fc:67c:ef8b:8632)
2021-06-01 23:41:47 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2-dev)
2021-06-01 23:43:47 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9)
2021-06-01 23:44:16 +0200imdoor(~imdoor@balticom-142-78-50.balticom.lv)
2021-06-01 23:44:20 +0200pbrisbin(~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) (Quit: WeeChat 3.1)
2021-06-01 23:44:33 +0200pbrisbin(~patrick@pool-72-92-38-164.phlapa.fios.verizon.net)
2021-06-01 23:45:25 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-01 23:45:30 +0200ddellacosta(~ddellacos@89.45.224.40)
2021-06-01 23:45:51 +0200bfrk(~Thunderbi@200116b84593d400e083e41adfb91d63.dip.versatel-1u1.de) (Ping timeout: 268 seconds)
2021-06-01 23:46:26 +0200notzmv(~zmv@user/notzmv)
2021-06-01 23:47:15 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Quit: Lost terminal)
2021-06-01 23:50:06 +0200ddellacosta(~ddellacos@89.45.224.40) (Ping timeout: 264 seconds)
2021-06-01 23:51:24 +0200sheepduck(~sheepduck@2607:fea8:2a60:b700::8a94) (Remote host closed the connection)
2021-06-01 23:52:27 +0200vdukhovni(~vdukhovni@100.2.39.101)
2021-06-01 23:53:14 +0200Digit(~user@user/digit) (Ping timeout: 265 seconds)
2021-06-01 23:54:14 +0200beka(~beka@104.193.170-254.PUBLIC.monkeybrains.net)
2021-06-01 23:54:18 +0200mccoyb(~textual@2601:182:d000:3b50:74fc:67c:ef8b:8632) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2021-06-01 23:56:06 +0200sheepduck(~sheepduck@2607:fea8:2a60:b700::8a94)
2021-06-01 23:56:56 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)