2021-06-01 00:00:36 +0200 | o1lo01ol1o | (~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com) |
2021-06-01 00:00:37 +0200 | niko | o |
2021-06-01 00:01:20 +0200 | <ski> | b |
2021-06-01 00:01:44 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-01 00:03:03 +0200 | Guest41 | (~Guest41@187.83.249.216.dyn.smithville.net) (Quit: Client closed) |
2021-06-01 00:03:11 +0200 | ystael | (~ystael@user/ystael) (Quit: Lost terminal) |
2021-06-01 00:03:31 +0200 | eddiemundo[m] | eddiemundo |
2021-06-01 00:03:49 +0200 | chaosite | (~chaosite@user/chaosite) (Ping timeout: 268 seconds) |
2021-06-01 00:05:40 +0200 | o1lo01ol1o | (~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com) (Ping timeout: 268 seconds) |
2021-06-01 00:09:36 +0200 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving) |
2021-06-01 00:11:37 +0200 | L29Ah | (~L29Ah@user/l29ah) (Remote host closed the connection) |
2021-06-01 00:12:03 +0200 | michalz | (~user@185.246.204.45) (Remote host closed the connection) |
2021-06-01 00:12:10 +0200 | hubvu | (uid495858@id-495858.tinside.irccloud.com) |
2021-06-01 00:12:27 +0200 | shiraeeshi | (~shiraeesh@109.166.59.30) |
2021-06-01 00:14:06 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-06-01 00:14:19 +0200 | eddiemundo | (~jshenmatr@2001:470:69fc:105::a80) (Quit: node-irc says goodbye) |
2021-06-01 00:14:33 +0200 | eddiemundo | (~jshenmatr@2001:470:69fc:105::a80) |
2021-06-01 00:14:39 +0200 | <shapr> | c |
2021-06-01 00:14:44 +0200 | srk | (~sorki@user/srk) (Ping timeout: 252 seconds) |
2021-06-01 00:14:44 +0200 | eddiemundo | (~jshenmatr@2001:470:69fc:105::a80) (Client Quit) |
2021-06-01 00:15:14 +0200 | eddiemundo | (~eddiemund@2001:470:69fc:105::a80) |
2021-06-01 00:15:51 +0200 | eddiemundo | (~eddiemund@2001:470:69fc:105::a80) (Client Quit) |
2021-06-01 00:15:55 +0200 | <hpc> | c++ |
2021-06-01 00:16:07 +0200 | eddiemundo | (~eddiemund@2001:470:69fc:105::a80) |
2021-06-01 00:17:06 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-06-01 00:18:21 +0200 | eddiemundo | (~eddiemund@2001:470:69fc:105::a80) (Client Quit) |
2021-06-01 00:18:36 +0200 | eddiemundo | (~eddiemund@2001:470:69fc:105::a80) |
2021-06-01 00:18:48 +0200 | eddiemundo | (~eddiemund@2001:470:69fc:105::a80) (Client Quit) |
2021-06-01 00:19:51 +0200 | mekeor | (~user@2001:a61:3a45:d101:3a96:2c15:924e:ebf9) (Ping timeout: 268 seconds) |
2021-06-01 00:22:24 +0200 | ddellacosta | (~ddellacos@86.106.143.66) (Remote host closed the connection) |
2021-06-01 00:25:43 +0200 | Natch | (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) (Read error: Connection reset by peer) |
2021-06-01 00:30:41 +0200 | srk | (~sorki@user/srk) |
2021-06-01 00:34:30 +0200 | urdh | (~urdh@h88-129-148-132.cust.a3fiber.se) (Ping timeout: 264 seconds) |
2021-06-01 00:35:41 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-06-01 00:37:50 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-01 00:39:58 +0200 | brandonh | (~brandonh@151.38.169.228) (Quit: brandonh) |
2021-06-01 00:40:29 +0200 | bfrk | (~Thunderbi@200116b84534a60005aeadf137ee420f.dip.versatel-1u1.de) |
2021-06-01 00:40:45 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Remote host closed the connection) |
2021-06-01 00:41:00 +0200 | urdh | (~urdh@h88-129-148-132.cust.a3fiber.se) |
2021-06-01 00:41:06 +0200 | Deide | (~Deide@user/deide) (Quit: Seeee yaaaa) |
2021-06-01 00:41:19 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) |
2021-06-01 00:43:07 +0200 | adium | (adium@user/adium) |
2021-06-01 00:44:17 +0200 | Bartosz | (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-01 00:45:17 +0200 | o1lo01ol1o | (~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com) |
2021-06-01 00:45:32 +0200 | acertain | (sid470584@stonehaven.irccloud.com) (Ping timeout: 252 seconds) |
2021-06-01 00:45:46 +0200 | amir | (sid22336@user/amir) (Ping timeout: 264 seconds) |
2021-06-01 00:45:46 +0200 | zot | (sid449795@stonehaven.irccloud.com) (Ping timeout: 264 seconds) |
2021-06-01 00:45:49 +0200 | zopsi | (sid153252@id-153252.stonehaven.irccloud.com) (Ping timeout: 272 seconds) |
2021-06-01 00:45:56 +0200 | hydroxonium | (uid500654@id-500654.stonehaven.irccloud.com) (Read error: Connection reset by peer) |
2021-06-01 00:45:56 +0200 | dmj` | (sid72307@id-72307.stonehaven.irccloud.com) (Read error: Connection reset by peer) |
2021-06-01 00:46:01 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Ping timeout: 272 seconds) |
2021-06-01 00:46:01 +0200 | hamishmack | (sid389057@id-389057.stonehaven.irccloud.com) (Ping timeout: 272 seconds) |
2021-06-01 00:46:04 +0200 | mthvedt | (uid501949@id-501949.stonehaven.irccloud.com) (Read error: Connection reset by peer) |
2021-06-01 00:46:04 +0200 | astra | (sid289983@user/astrazeneca) (Read error: Connection reset by peer) |
2021-06-01 00:46:05 +0200 | rubin55 | (sid175221@id-175221.stonehaven.irccloud.com) (Read error: Connection reset by peer) |
2021-06-01 00:46:06 +0200 | peteretep | (sid143467@id-143467.stonehaven.irccloud.com) (Read error: Connection reset by peer) |
2021-06-01 00:46:08 +0200 | jakesyl | (sid56879@id-56879.stonehaven.irccloud.com) (Read error: Connection reset by peer) |
2021-06-01 00:46:08 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) (Read error: Connection reset by peer) |
2021-06-01 00:46:10 +0200 | Firedancer | (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 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 264 seconds) |
2021-06-01 00:47:11 +0200 | ehamberg | (sid18208@stonehaven.irccloud.com) (Ping timeout: 252 seconds) |
2021-06-01 00:47:11 +0200 | joel135 | (sid136450@stonehaven.irccloud.com) (Ping timeout: 252 seconds) |
2021-06-01 00:47:11 +0200 | jneira | (~jneira@166.red-81-39-172.dynamicip.rima-tde.net) (Quit: Connection closed) |
2021-06-01 00:47:44 +0200 | leif | (uid501722@id-501722.stonehaven.irccloud.com) (Ping timeout: 252 seconds) |
2021-06-01 00:47:55 +0200 | SanchayanMaity | (sid478177@id-478177.stonehaven.irccloud.com) (Ping timeout: 272 seconds) |
2021-06-01 00:49:10 +0200 | urdh | (~urdh@h88-129-148-132.cust.a3fiber.se) (Quit: Boom!) |
2021-06-01 00:49:58 +0200 | urdh | (~urdh@h88-129-148-132.cust.a3fiber.se) |
2021-06-01 00:50:05 +0200 | o1lo01ol1o | (~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com) (Ping timeout: 264 seconds) |
2021-06-01 00:51:28 +0200 | zot | (sid449795@id-449795.stonehaven.irccloud.com) |
2021-06-01 00:51:33 +0200 | ehamberg | (sid18208@id-18208.stonehaven.irccloud.com) |
2021-06-01 00:51:34 +0200 | dmj` | (sid72307@id-72307.stonehaven.irccloud.com) |
2021-06-01 00:51:37 +0200 | hydroxonium | (uid500654@id-500654.stonehaven.irccloud.com) |
2021-06-01 00:51:43 +0200 | peteretep | (sid143467@id-143467.stonehaven.irccloud.com) |
2021-06-01 00:51:43 +0200 | acertain | (sid470584@id-470584.stonehaven.irccloud.com) |
2021-06-01 00:51:44 +0200 | amir | (sid22336@user/amir) |
2021-06-01 00:51:45 +0200 | hamishmack | (sid389057@id-389057.stonehaven.irccloud.com) |
2021-06-01 00:51:46 +0200 | mthvedt | (uid501949@id-501949.stonehaven.irccloud.com) |
2021-06-01 00:51:46 +0200 | zopsi | (sid153252@id-153252.stonehaven.irccloud.com) |
2021-06-01 00:51:53 +0200 | rubin55 | (sid175221@id-175221.stonehaven.irccloud.com) |
2021-06-01 00:52:02 +0200 | astra_ | (sid289983@id-289983.stonehaven.irccloud.com) |
2021-06-01 00:52:03 +0200 | Firedancer | (sid336191@id-336191.stonehaven.irccloud.com) |
2021-06-01 00:52:03 +0200 | jakesyl | (sid56879@id-56879.stonehaven.irccloud.com) |
2021-06-01 00:52:05 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) |
2021-06-01 00:52:22 +0200 | hyiltiz | (~quassel@31.220.5.250) (Ping timeout: 264 seconds) |
2021-06-01 00:52:30 +0200 | SanchayanMaity | (sid478177@id-478177.stonehaven.irccloud.com) |
2021-06-01 00:52:40 +0200 | joel135 | (sid136450@id-136450.stonehaven.irccloud.com) |
2021-06-01 00:52:50 +0200 | leif | (uid501722@id-501722.stonehaven.irccloud.com) |
2021-06-01 00:53:20 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-01 00:54:42 +0200 | hyiltiz | (~quassel@31.220.5.250) |
2021-06-01 00:55:16 +0200 | ddellacosta | (~ddellacos@89.45.224.222) |
2021-06-01 00:56:50 +0200 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
2021-06-01 00:57:55 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
2021-06-01 00:58:06 +0200 | astra_ | amish |
2021-06-01 01:00:02 +0200 | amish | (sid289983@id-289983.stonehaven.irccloud.com) () |
2021-06-01 01:00:10 +0200 | ddellacosta | (~ddellacos@89.45.224.222) (Ping timeout: 264 seconds) |
2021-06-01 01:00:17 +0200 | amish | (sid289983@id-289983.stonehaven.irccloud.com) |
2021-06-01 01:02:02 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-06-01 01:02:18 +0200 | amish | (sid289983@id-289983.stonehaven.irccloud.com) (Changing host) |
2021-06-01 01:02:18 +0200 | amish | (sid289983@user/amish) |
2021-06-01 01:02:55 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2021-06-01 01:03:02 +0200 | o1lo01ol1o | (~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com) |
2021-06-01 01:03:24 +0200 | amish | astra |
2021-06-01 01:03:29 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) |
2021-06-01 01:03:49 +0200 | pe200012_ | (~pe200012@119.131.208.84) |
2021-06-01 01:03:57 +0200 | pe200012 | (~pe200012@119.131.208.84) (Ping timeout: 265 seconds) |
2021-06-01 01:04:56 +0200 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
2021-06-01 01:04:57 +0200 | urdh | (~urdh@h88-129-148-132.cust.a3fiber.se) (Quit: Boom!) |
2021-06-01 01:06:16 +0200 | urdh | (~urdh@h88-129-148-132.cust.a3fiber.se) |
2021-06-01 01:07:32 +0200 | o1lo01ol1o | (~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com) (Ping timeout: 252 seconds) |
2021-06-01 01:09:22 +0200 | L29Ah | (~L29Ah@user/l29ah) |
2021-06-01 01:11:03 +0200 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) |
2021-06-01 01:15:42 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-06-01 01:22:22 +0200 | bfrk1 | (~Thunderbi@200116b84593d400e083e41adfb91d63.dip.versatel-1u1.de) |
2021-06-01 01:24:22 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-01 01:24:39 +0200 | bfrk | (~Thunderbi@200116b84534a60005aeadf137ee420f.dip.versatel-1u1.de) (Ping timeout: 272 seconds) |
2021-06-01 01:24:39 +0200 | bfrk1 | bfrk |
2021-06-01 01:27:04 +0200 | dpl_ | (~dpl@77-121-78-163.chn.volia.net) (Ping timeout: 268 seconds) |
2021-06-01 01:27:28 +0200 | shapr | (~user@pool-108-28-144-11.washdc.fios.verizon.net) (Ping timeout: 244 seconds) |
2021-06-01 01:29:50 +0200 | ddellacosta | (~ddellacos@86.106.143.222) |
2021-06-01 01:33:56 +0200 | alex3 | (~Chel@BSN-77-82-41.static.siol.net) (Ping timeout: 252 seconds) |
2021-06-01 01:34:53 +0200 | ddellacosta | (~ddellacos@86.106.143.222) (Ping timeout: 265 seconds) |
2021-06-01 01:35:36 +0200 | Scotty_Trees | (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Quit: Leaving) |
2021-06-01 01:37:38 +0200 | eldritch_ | (~eldritch@134.209.221.71) |
2021-06-01 01:37:59 +0200 | notzmv | (~zmv@user/notzmv) |
2021-06-01 01:39:47 +0200 | alex3 | (~Chel@BSN-77-82-41.static.siol.net) |
2021-06-01 01:43:01 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 272 seconds) |
2021-06-01 01:46:45 +0200 | mustafa | (~mustafa@rockylinux/releng/mstg) |
2021-06-01 01:47:21 +0200 | willbush | (~user@47.183.200.14) |
2021-06-01 01:49:29 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 264 seconds) |
2021-06-01 01:53:13 +0200 | Scotty_Trees | (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) |
2021-06-01 01:56:42 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 264 seconds) |
2021-06-01 01:56:58 +0200 | cheater | (~Username@user/cheater) |
2021-06-01 02:04:09 +0200 | ddellacosta | (~ddellacos@86.106.143.157) |
2021-06-01 02:06:00 +0200 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Read error: Connection reset by peer) |
2021-06-01 02:06:56 +0200 | tremon | (~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in) |
2021-06-01 02:07:28 +0200 | Heffalump | (~ganesh@urchin.earth.li) |
2021-06-01 02:07:34 +0200 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
2021-06-01 02:08:31 +0200 | jsilver | (~jonathan@2601:282:300:aa0:e0bc:bc4e:7821:4001) |
2021-06-01 02:08:35 +0200 | ddellacosta | (~ddellacos@86.106.143.157) (Ping timeout: 252 seconds) |
2021-06-01 02:08:42 +0200 | Heffalump | (~ganesh@urchin.earth.li) () |
2021-06-01 02:09:37 +0200 | waleee | (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 272 seconds) |
2021-06-01 02:12:24 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-01 02:13:03 +0200 | jsilver | (~jonathan@2601:282:300:aa0:e0bc:bc4e:7821:4001) (Quit: Leaving) |
2021-06-01 02:16:58 +0200 | Cubic | (~hannesste@ip5f5be453.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds) |
2021-06-01 02:17:37 +0200 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
2021-06-01 02:17:37 +0200 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
2021-06-01 02:18:12 +0200 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) |
2021-06-01 02:24:05 +0200 | steeps | (~steeps@cpc121168-oxfd27-2-0-cust161.4-3.cable.virginm.net) |
2021-06-01 02:24:32 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 252 seconds) |
2021-06-01 02:24:53 +0200 | cheater | (~Username@user/cheater) |
2021-06-01 02:30:03 +0200 | hmmmas | (~chenqisu1@183.217.202.217) |
2021-06-01 02:31:41 +0200 | argento | (~argent0@168.227.96.53) (Ping timeout: 252 seconds) |
2021-06-01 02:34:47 +0200 | o1lo01ol1o | (~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com) |
2021-06-01 02:34:55 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-06-01 02:39:18 +0200 | o1lo01ol1o | (~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com) (Ping timeout: 264 seconds) |
2021-06-01 02:40:45 +0200 | hmmmas | (~chenqisu1@183.217.202.217) (Quit: Leaving.) |
2021-06-01 02:41:17 +0200 | sm2n | (~sm2n@user/sm2n) (Ping timeout: 272 seconds) |
2021-06-01 02:41:30 +0200 | ddellacosta | (~ddellacos@89.45.224.40) |
2021-06-01 02:41:43 +0200 | hmmmas | (~chenqisu1@183.217.202.217) |
2021-06-01 02:42:10 +0200 | steeps | (~steeps@cpc121168-oxfd27-2-0-cust161.4-3.cable.virginm.net) (Quit: Leaving) |
2021-06-01 02:42:15 +0200 | Jeanne-Kamikaze | (~Jeanne-Ka@static-198-54-133-166.cust.tzulo.com) |
2021-06-01 02:44:05 +0200 | boioioing | (~boioioing@cpe-76-84-141-127.neb.res.rr.com) (Ping timeout: 264 seconds) |
2021-06-01 02:45:21 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-06-01 02:46:25 +0200 | ddellacosta | (~ddellacos@89.45.224.40) (Ping timeout: 265 seconds) |
2021-06-01 02:46:32 +0200 | bfrk | (~Thunderbi@200116b84593d400e083e41adfb91d63.dip.versatel-1u1.de) (Ping timeout: 252 seconds) |
2021-06-01 02:46:59 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-06-01 02:49:00 +0200 | argento | (~argent0@168.227.96.53) |
2021-06-01 02:49:50 +0200 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds) |
2021-06-01 02:50:56 +0200 | oxide | (~lambda@user/oxide) (Ping timeout: 268 seconds) |
2021-06-01 02:51:33 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 268 seconds) |
2021-06-01 02:51:41 +0200 | oxide | (~lambda@user/oxide) |
2021-06-01 02:52:20 +0200 | pe200012 | (~pe200012@120.236.162.14) |
2021-06-01 02:52:29 +0200 | pe200012_ | (~pe200012@119.131.208.84) (Ping timeout: 272 seconds) |
2021-06-01 02:53:42 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 264 seconds) |
2021-06-01 02:53:49 +0200 | cheater | (~Username@user/cheater) |
2021-06-01 02:53:50 +0200 | notzmv | (~zmv@user/notzmv) |
2021-06-01 02:54:16 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 244 seconds) |
2021-06-01 02:54:16 +0200 | hylisper2 | (~yaaic@111.119.208.67) (Ping timeout: 244 seconds) |
2021-06-01 02:56:06 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-06-01 02:59:22 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Remote host closed the connection) |
2021-06-01 03:01:30 +0200 | tonyday | (~user@202-65-93-249.ip4.superloop.com) |
2021-06-01 03:02:57 +0200 | chisui | (~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 +0200 | wenzel | (~wenzel@user/wenzel) (Read error: Connection reset by peer) |
2021-06-01 03:03:57 +0200 | wenzel | (~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 +0200 | fizbin | (~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 +0200 | boioioing | (~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 +0200 | siraben | (~siraben@user/siraben) (Quit: node-irc says goodbye) |
2021-06-01 03:12:53 +0200 | siraben | (~siraben@user/siraben) |
2021-06-01 03:16:07 +0200 | ddellacosta | (~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 +0200 | wei2912 | (~wei2912@112.199.250.21) |
2021-06-01 03:20:34 +0200 | renzhi | (~xp@2607:fa49:6500:bc00::e7b) |
2021-06-01 03:20:38 +0200 | ddellacosta | (~ddellacos@89.45.224.131) (Ping timeout: 252 seconds) |
2021-06-01 03:20:44 +0200 | argento | (~argent0@168.227.96.53) (Ping timeout: 265 seconds) |
2021-06-01 03:20:44 +0200 | ixlun | (~user@109.249.184.235) (Read error: Connection reset by peer) |
2021-06-01 03:21:51 +0200 | ixlun | (~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 +0200 | Guest86 | (~Guest86@189.197.116.11) |
2021-06-01 03:24:49 +0200 | hylisper | (~yaaic@111.119.208.67) |
2021-06-01 03:24:51 +0200 | argento | (~argent0@168.227.96.53) |
2021-06-01 03:26:53 +0200 | ubikium | (~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) (Ping timeout: 272 seconds) |
2021-06-01 03:27:08 +0200 | ubikium | (~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) |
2021-06-01 03:28:46 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-06-01 03:28:47 +0200 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 272 seconds) |
2021-06-01 03:30:20 +0200 | Guest86 | ram535 |
2021-06-01 03:32:09 +0200 | xff0x_ | (~xff0x@2001:1a81:52ca:4f00:908c:1e58:afd0:4053) |
2021-06-01 03:34:18 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-01 03:35:45 +0200 | xff0x | (~xff0x@port-92-195-46-148.dynamic.as20676.net) (Ping timeout: 272 seconds) |
2021-06-01 03:38:55 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 272 seconds) |
2021-06-01 03:45:23 +0200 | geekosaur | (~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 265 seconds) |
2021-06-01 03:48:03 +0200 | zebrag | (~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 +0200 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
2021-06-01 03:55:53 +0200 | ddellacosta | (~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 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) |
2021-06-01 04:00:14 +0200 | ddellacosta | (~ddellacos@89.45.224.131) (Ping timeout: 252 seconds) |
2021-06-01 04:03:45 +0200 | o1lo01ol1o | (~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com) |
2021-06-01 04:04:53 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Ping timeout: 272 seconds) |
2021-06-01 04:07:12 +0200 | argento | (~argent0@168.227.96.53) (Quit: leaving) |
2021-06-01 04:07:23 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 252 seconds) |
2021-06-01 04:07:32 +0200 | argento | (~argent0@168.227.96.53) |
2021-06-01 04:07:39 +0200 | hubvu | (uid495858@id-495858.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
2021-06-01 04:10:26 +0200 | Jeanne-Kamikaze | (~Jeanne-Ka@static-198-54-133-166.cust.tzulo.com) (Quit: Leaving) |
2021-06-01 04:10:29 +0200 | alex3 | (~Chel@BSN-77-82-41.static.siol.net) (Ping timeout: 268 seconds) |
2021-06-01 04:12:54 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2021-06-01 04:12:54 +0200 | FinnElija | Guest2152 |
2021-06-01 04:12:54 +0200 | finn_elija | FinnElija |
2021-06-01 04:16:02 +0200 | Guest2152 | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 268 seconds) |
2021-06-01 04:21:33 +0200 | ikex | (~ash@user/ikex) |
2021-06-01 04:23:02 +0200 | chisui | (~chisui@200116b86662dd0045dcdbf42fb73e43.dip.versatel-1u1.de) (Ping timeout: 250 seconds) |
2021-06-01 04:27:47 +0200 | ddellacosta | (~ddellacos@86.106.121.196) |
2021-06-01 04:29:04 +0200 | lawt | (~lawt@2601:200:8101:f140:dea6:32ff:fea1:adfa) (Quit: WeeChat 2.8) |
2021-06-01 04:31:29 +0200 | td_ | (~td@muedsl-82-207-238-238.citykom.de) (Ping timeout: 264 seconds) |
2021-06-01 04:32:45 +0200 | ddellacosta | (~ddellacos@86.106.121.196) (Ping timeout: 272 seconds) |
2021-06-01 04:33:18 +0200 | td_ | (~td@94.134.91.112) |
2021-06-01 04:34:08 +0200 | falafel_ | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-06-01 04:34:14 +0200 | beka | (~beka@104.193.170-254.PUBLIC.monkeybrains.net) |
2021-06-01 04:37:59 +0200 | myShoggoth | (~myShoggot@97-120-89-117.ptld.qwest.net) |
2021-06-01 04:39:53 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 264 seconds) |
2021-06-01 04:41:23 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-06-01 04:42:02 +0200 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 252 seconds) |
2021-06-01 04:42:59 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-01 04:44:23 +0200 | alex3 | (~Chel@BSN-77-82-41.static.siol.net) |
2021-06-01 04:46:36 +0200 | cheater1__ | (~Username@user/cheater) |
2021-06-01 04:46:41 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 272 seconds) |
2021-06-01 04:46:48 +0200 | cheater1__ | cheater |
2021-06-01 04:50:15 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) |
2021-06-01 04:50:34 +0200 | mustafa | (~mustafa@rockylinux/releng/mstg) (Ping timeout: 268 seconds) |
2021-06-01 04:57:57 +0200 | boioioing | (~boioioing@cpe-76-84-141-127.neb.res.rr.com) (Remote host closed the connection) |
2021-06-01 05:00:37 +0200 | xprlgjf | (~gavin@60.27.93.209.dyn.plus.net) (Ping timeout: 272 seconds) |
2021-06-01 05:03:31 +0200 | boxscape | (~boxscape@user/boxscape) (Ping timeout: 268 seconds) |
2021-06-01 05:04:25 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-06-01 05:05:22 +0200 | oxide | (~lambda@user/oxide) (Ping timeout: 268 seconds) |
2021-06-01 05:06:01 +0200 | ikex | (~ash@user/ikex) (Ping timeout: 244 seconds) |
2021-06-01 05:06:53 +0200 | ddellacosta | (~ddellacos@89.46.62.196) |
2021-06-01 05:07:02 +0200 | oxide | (~lambda@user/oxide) |
2021-06-01 05:07:16 +0200 | eddiemundo[m] | (~eddiemun_@2001:470:69fc:105::a9c) |
2021-06-01 05:07:46 +0200 | eddiemundo[m] | eddiemundo |
2021-06-01 05:08:52 +0200 | eddiemundo | (~eddiemun_@2001:470:69fc:105::a9c) (Client Quit) |
2021-06-01 05:09:08 +0200 | eddiemundo | (~eddiemund@2001:470:69fc:105::a9c) |
2021-06-01 05:11:54 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
2021-06-01 05:12:01 +0200 | ddellacosta | (~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 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 264 seconds) |
2021-06-01 05:16:48 +0200 | otto_s_ | (~user@p5de2ffe1.dip0.t-ipconnect.de) |
2021-06-01 05:18:17 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-06-01 05:19:45 +0200 | willbush | (~user@47.183.200.14) (Remote host closed the connection) |
2021-06-01 05:20:11 +0200 | otto_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 +0200 | o1lo01ol1o | (~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com) (Remote host closed the connection) |
2021-06-01 05:23:23 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-06-01 05:23:53 +0200 | o1lo01ol1o | (~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 +0200 | mustafa | (~mustafa@rockylinux/releng/mstg) |
2021-06-01 05:26:35 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds) |
2021-06-01 05:26:50 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2021-06-01 05:27:14 +0200 | berberman_ | (~berberman@user/berberman) |
2021-06-01 05:27:41 +0200 | berberman | (~berberman@user/berberman) (Ping timeout: 252 seconds) |
2021-06-01 05:27:59 +0200 | AgentM | (~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) |
2021-06-01 05:28:14 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds) |
2021-06-01 05:28:14 +0200 | aighearach_ | Aighearach |
2021-06-01 05:28:48 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
2021-06-01 05:28:48 +0200 | o1lo01ol1o | (~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com) (Ping timeout: 268 seconds) |
2021-06-01 05:32:50 +0200 | kiweun | (~sheepduck@2607:fea8:2a60:b700::5d55) (Remote host closed the connection) |
2021-06-01 05:35:05 +0200 | sheepduck | (~sheepduck@2607:fea8:2a60:b700::8a94) |
2021-06-01 05:35:36 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-01 05:36:17 +0200 | mustafa | (~mustafa@rockylinux/releng/mstg) (Ping timeout: 264 seconds) |
2021-06-01 05:36:54 +0200 | nerdypepper | (znc@152.67.162.71) (Changing host) |
2021-06-01 05:36:54 +0200 | nerdypepper | (znc@user/nerdypepper) |
2021-06-01 05:37:02 +0200 | shiraeeshi | (~shiraeesh@109.166.59.30) (Ping timeout: 265 seconds) |
2021-06-01 05:39:03 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
2021-06-01 05:40:07 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 244 seconds) |
2021-06-01 05:40:37 +0200 | evolve75` | (~user@c-76-20-160-130.hsd1.mi.comcast.net) |
2021-06-01 05:40:42 +0200 | monochrom | (trebla@216.138.220.146) (Quit: NO CARRIER) |
2021-06-01 05:40:59 +0200 | monochrom | (trebla@216.138.220.146) |
2021-06-01 05:44:16 +0200 | shiraeeshi | (~shiraeesh@109.166.59.30) |
2021-06-01 05:45:28 +0200 | smitop | (uid328768@user/smitop) (Quit: Connection closed for inactivity) |
2021-06-01 05:53:29 +0200 | argento | (~argent0@168.227.96.53) (Remote host closed the connection) |
2021-06-01 05:54:19 +0200 | leeb | (~leeb@KD111239155018.au-net.ne.jp) |
2021-06-01 05:54:28 +0200 | alx741 | (~alx741@186.178.108.160) (Quit: alx741) |
2021-06-01 05:54:55 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-06-01 06:00:22 +0200 | pe200012 | (~pe200012@120.236.162.14) (Read error: Connection reset by peer) |
2021-06-01 06:00:48 +0200 | pe200012 | (~pe200012@119.131.208.84) |
2021-06-01 06:02:31 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) |
2021-06-01 06:03:08 +0200 | mustafa | (~mustafa@rockylinux/releng/mstg) |
2021-06-01 06:04:51 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-01 06:05:10 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-06-01 06:05:25 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-01 06:05:31 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-06-01 06:05:47 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-01 06:05:55 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-06-01 06:06:10 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-01 06:06:17 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-06-01 06:06:32 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-01 06:06:39 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-06-01 06:08:16 +0200 | renzhi | (~xp@2607:fa49:6500:bc00::e7b) (Ping timeout: 268 seconds) |
2021-06-01 06:10:29 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 264 seconds) |
2021-06-01 06:10:30 +0200 | mustafa | (~mustafa@rockylinux/releng/mstg) (Ping timeout: 264 seconds) |
2021-06-01 06:10:48 +0200 | cheater | (~Username@user/cheater) |
2021-06-01 06:12:35 +0200 | evolve75` | (~user@c-76-20-160-130.hsd1.mi.comcast.net) (Ping timeout: 268 seconds) |
2021-06-01 06:18:18 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-06-01 06:18:18 +0200 | ubikium | (~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) (Read error: Connection reset by peer) |
2021-06-01 06:18:37 +0200 | ubikium | (~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) |
2021-06-01 06:22:10 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-06-01 06:29:54 +0200 | lbseale_ | (~lbseale@ip72-194-54-201.sb.sd.cox.net) |
2021-06-01 06:33:17 +0200 | lbseale | (~lbseale@ip72-194-54-201.sb.sd.cox.net) (Ping timeout: 264 seconds) |
2021-06-01 06:35:22 +0200 | wonko | (~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 +0200 | dhu1337 | (~dhu1337@user/dhu1337) |
2021-06-01 06:38:34 +0200 | ram535 | (~Guest86@189.197.116.11) (Quit: Client closed) |
2021-06-01 06:39:43 +0200 | danso | (~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 +0200 | mustafa | (~mustafa@rockylinux/releng/mstg) |
2021-06-01 06:46:55 +0200 | v01d4lph4 | (~v01d4lph4@122.160.65.250) |
2021-06-01 06:46:55 +0200 | v01d4lph4 | (~v01d4lph4@122.160.65.250) (Changing host) |
2021-06-01 06:46:55 +0200 | v01d4lph4 | (~v01d4lph4@user/v01d4lph4) |
2021-06-01 06:48:09 +0200 | dhu1337 | (~dhu1337@user/dhu1337) (Quit: dhu1337) |
2021-06-01 06:48:41 +0200 | o | niko |
2021-06-01 06:49:52 +0200 | mustafa | (~mustafa@rockylinux/releng/mstg) (Ping timeout: 244 seconds) |
2021-06-01 06:49:55 +0200 | lbseale__ | (~lbseale@ip72-194-54-201.sb.sd.cox.net) |
2021-06-01 06:53:24 +0200 | lbseale_ | (~lbseale@ip72-194-54-201.sb.sd.cox.net) (Ping timeout: 265 seconds) |
2021-06-01 06:54:01 +0200 | o1lo01ol1o | (~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com) |
2021-06-01 06:56:11 +0200 | gambpang | (~ian@207.181.230.156) (Remote host closed the connection) |
2021-06-01 06:56:39 +0200 | hylisper | (~yaaic@111.119.208.67) (Quit: Yaaic - Yet another Android IRC client - http://www.yaaic.org) |
2021-06-01 06:57:20 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds) |
2021-06-01 06:58:29 +0200 | o1lo01ol1o | (~o1lo01ol1@cpe-74-72-45-166.nyc.res.rr.com) (Ping timeout: 264 seconds) |
2021-06-01 07:02:16 +0200 | img | (~img@2405:6580:b1c0:2500:43d1:94bf:adb9:8dcf) (Quit: ZNC 1.8.1 - https://znc.in) |
2021-06-01 07:04:07 +0200 | lep | test |
2021-06-01 07:04:07 +0200 | test | lep |
2021-06-01 07:04:49 +0200 | AgentM | (~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) (Quit: Leaving.) |
2021-06-01 07:10:53 +0200 | img | (~img@2405:6580:b1c0:2500:1e68:3732:5209:e4c0) |
2021-06-01 07:13:55 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-01 07:17:00 +0200 | hololeap | (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 +0200 | wallymathieu | (~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 +0200 | Athas | (athas@2a01:7c8:aaac:1cf:885f:6d75:b55f:82a8) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-06-01 07:22:54 +0200 | Athas | (athas@2a01:7c8:aaac:1cf:7de4:bc5c:7241:d6d9) |
2021-06-01 07:24:55 +0200 | vicfred_ | (~vicfred@static-198-54-131-72.cust.tzulo.com) |
2021-06-01 07:25:30 +0200 | falafel_ | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 264 seconds) |
2021-06-01 07:27:53 +0200 | schuelermine | (~schuelerm@user/schuelermine) (Ping timeout: 264 seconds) |
2021-06-01 07:27:53 +0200 | chisui | (~chisui@200116b866065d0037bb6f0935c2f6da.dip.versatel-1u1.de) |
2021-06-01 07:28:22 +0200 | vicfred | (~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 +0200 | myShoggoth | (~myShoggot@97-120-89-117.ptld.qwest.net) (Ping timeout: 264 seconds) |
2021-06-01 07:30:50 +0200 | vicfred_ | (~vicfred@static-198-54-131-72.cust.tzulo.com) (Quit: Leaving) |
2021-06-01 07:34:15 +0200 | pe200012_ | (~pe200012@120.236.162.14) |
2021-06-01 07:34:30 +0200 | pe200012 | (~pe200012@119.131.208.84) (Ping timeout: 264 seconds) |
2021-06-01 07:34:36 +0200 | shiraeeshi | (~shiraeesh@109.166.59.30) (Ping timeout: 268 seconds) |
2021-06-01 07:35:17 +0200 | chisui | (~chisui@200116b866065d0037bb6f0935c2f6da.dip.versatel-1u1.de) (Quit: Client closed) |
2021-06-01 07:36:22 +0200 | xff0x_ | (~xff0x@2001:1a81:52ca:4f00:908c:1e58:afd0:4053) (Ping timeout: 244 seconds) |
2021-06-01 07:36:55 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2021-06-01 07:37:18 +0200 | xff0x_ | (~xff0x@2001:1a81:52ca:4f00:5ed9:a747:2841:c1b7) |
2021-06-01 07:39:27 +0200 | mustafa | (~mustafa@rockylinux/releng/mstg) |
2021-06-01 07:40:48 +0200 | michalz | (~user@185.246.204.45) |
2021-06-01 07:41:51 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc02:b00:b16c:5166:feb8:97d5) |
2021-06-01 07:43:37 +0200 | Bartosz | (~textual@24.35.90.211) |
2021-06-01 07:43:37 +0200 | Bartosz | (~textual@24.35.90.211) (Client Quit) |
2021-06-01 07:44:41 +0200 | mustafa | (~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 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-06-01 07:51:33 +0200 | Bartosz | (~textual@24.35.90.211) |
2021-06-01 07:55:05 +0200 | nschoe | (~quassel@91-162-58-134.subs.proxad.net) |
2021-06-01 07:57:02 +0200 | beka | (~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 +0200 | nschoe | (~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 +0200 | Guest6538 | (~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 +0200 | vicentius | (~vicentius@user/vicentius) |
2021-06-01 08:04:49 +0200 | <dy> | Bartosz: so functors are hammerspace :p |
2021-06-01 08:04:59 +0200 | amk | (~amk@176.61.106.150) (Ping timeout: 252 seconds) |
2021-06-01 08:05:53 +0200 | amk | (~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 +0200 | vicentius | (~vicentius@user/vicentius) (Quit: Leaving) |
2021-06-01 08:11:28 +0200 | manicennui | (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 +0200 | danso | (~danso@23-233-111-52.cpe.pppoe.ca) |
2021-06-01 08:21:40 +0200 | dyeplexer | (~dyeplexer@user/dyeplexer) |
2021-06-01 08:22:10 +0200 | nschoe | (~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 +0200 | Bartosz | (~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 +0200 | nschoe | (~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 +0200 | nschoe | (~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 +0200 | leeb_ | (~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 +0200 | cheater1__ | (~Username@user/cheater) |
2021-06-01 08:31:20 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:bdf8:f228:7df7:147f) |
2021-06-01 08:31:31 +0200 | cheater | (~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 +0200 | cheater1__ | 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 +0200 | Toast52 | (~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 +0200 | leeb | (~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 +0200 | mustafa | (~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 +0200 | ru0mad | (~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 +0200 | nschoe | (~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 +0200 | neceve | (~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 +0200 | mustafa | (~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 +0200 | sondre | (~sondrelun@cm-84.212.100.140.getinternet.no) |
2021-06-01 08:39:11 +0200 | azeem | (~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 +0200 | ru0mad | (~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 +0200 | pe200012_ | (~pe200012@120.236.162.14) (Ping timeout: 264 seconds) |
2021-06-01 08:45:14 +0200 | rubin55 | (sid175221@id-175221.stonehaven.irccloud.com) () |
2021-06-01 08:45:35 +0200 | rubin55 | (sid175221@id-175221.stonehaven.irccloud.com) |
2021-06-01 08:45:56 +0200 | rubin55 | (sid175221@id-175221.stonehaven.irccloud.com) (Client Quit) |
2021-06-01 08:46:24 +0200 | rubin55 | (sid175221@id-175221.stonehaven.irccloud.com) |
2021-06-01 08:46:32 +0200 | holy_ | (~h01y_b4z0@2400:adc1:178:c800:9e45:76a9:57f2:1665) |
2021-06-01 08:47:24 +0200 | Cubic | (~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 +0200 | mc47 | (~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 +0200 | merijn | (~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 +0200 | beka | (~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 +0200 | chele | (~chele@user/chele) |
2021-06-01 08:56:42 +0200 | azeem | (~azeem@dynamic-adsl-84-220-228-254.clienti.tiscali.it) (Quit: Quit) |
2021-06-01 08:56:51 +0200 | azeem | (~azeem@dynamic-adsl-84-220-228-254.clienti.tiscali.it) |
2021-06-01 08:58:02 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-01 08:58:23 +0200 | dhouthoo | (~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 +0200 | raehik1 | (~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 +0200 | gehmehgeh | (~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 +0200 | tonyday | (~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 +0200 | jakzale | (uid499518@id-499518.charlton.irccloud.com) |
2021-06-01 09:12:28 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-06-01 09:13:21 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-06-01 09:14:20 +0200 | thiross | (~user@173.242.113.143.16clouds.com) |
2021-06-01 09:14:28 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-06-01 09:14:43 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-06-01 09:17:43 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-06-01 09:17:54 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-06-01 09:17:57 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-06-01 09:18:53 +0200 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 264 seconds) |
2021-06-01 09:20:37 +0200 | xprlgjf | (~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 +0200 | dpl_ | (~dpl@77-121-78-163.chn.volia.net) |
2021-06-01 09:26:25 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-06-01 09:26:39 +0200 | ixlun | (~user@109.249.184.235) (Remote host closed the connection) |
2021-06-01 09:26:49 +0200 | Shaeto | (~Shaeto@94.25.234.213) |
2021-06-01 09:28:33 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-06-01 09:35:04 +0200 | riatre | (~quassel@2001:310:6000:f::5198:1) |
2021-06-01 09:36:07 +0200 | riatre_ | (~quassel@2001:310:6000:f::5198:1) (Ping timeout: 272 seconds) |
2021-06-01 09:36:23 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-06-01 09:36:32 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-06-01 09:36:35 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-06-01 09:36:53 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-06-01 09:38:33 +0200 | holy_ | (~h01y_b4z0@2400:adc1:178:c800:9e45:76a9:57f2:1665) (Ping timeout: 268 seconds) |
2021-06-01 09:38:35 +0200 | river | (~river@tilde.team/user/river) (Quit: Leaving) |
2021-06-01 09:41:06 +0200 | thiross | (~user@173.242.113.143.16clouds.com) (Ping timeout: 264 seconds) |
2021-06-01 09:41:14 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds) |
2021-06-01 09:44:32 +0200 | thiross | (~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 +0200 | schuelermine | (~anselmsch@user/schuelermine) |
2021-06-01 09:48:46 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-01 09:49:07 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-01 09:52:04 +0200 | Athas | (athas@2a01:7c8:aaac:1cf:7de4:bc5c:7241:d6d9) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-06-01 09:52:14 +0200 | Athas | (athas@sigkill.dk) |
2021-06-01 09:52:40 +0200 | Flonk | (~Flonk@ec2-52-40-29-25.us-west-2.compute.amazonaws.com) (Quit: Ping timeout (120 seconds)) |
2021-06-01 09:53:06 +0200 | Flonk | (~Flonk@ec2-52-40-29-25.us-west-2.compute.amazonaws.com) |
2021-06-01 09:54:32 +0200 | shryke | (~shryke@190.43.6.93.rev.sfr.net) |
2021-06-01 09:56:02 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-01 09:56:21 +0200 | shryke_ | (~shryke@91.103.43.254) |
2021-06-01 09:56:39 +0200 | bfrk | (~Thunderbi@200116b84593d400e083e41adfb91d63.dip.versatel-1u1.de) |
2021-06-01 09:58:01 +0200 | nschoe | (~quassel@178.251.84.79) |
2021-06-01 09:58:05 +0200 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds) |
2021-06-01 09:58:45 +0200 | brandonh | (~brandonh@151.44.69.241) |
2021-06-01 09:59:06 +0200 | shryke | (~shryke@190.43.6.93.rev.sfr.net) (Ping timeout: 264 seconds) |
2021-06-01 09:59:35 +0200 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-06-01 10:03:27 +0200 | Bartosz | (~textual@24.35.90.211) |
2021-06-01 10:05:04 +0200 | dhil | (~dhil@195.213.192.85) |
2021-06-01 10:07:28 +0200 | hendursa1 | (~weechat@user/hendursaga) |
2021-06-01 10:07:36 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-06-01 10:08:11 +0200 | beka | (~beka@104.193.170-254.PUBLIC.monkeybrains.net) (Ping timeout: 252 seconds) |
2021-06-01 10:08:35 +0200 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Read error: Connection reset by peer) |
2021-06-01 10:08:42 +0200 | Kaipi | (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) |
2021-06-01 10:08:58 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-06-01 10:10:07 +0200 | hendursaga | (~weechat@user/hendursaga) (Ping timeout: 252 seconds) |
2021-06-01 10:12:30 +0200 | ikex | (~ash@user/ikex) |
2021-06-01 10:13:56 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-06-01 10:16:54 +0200 | azeem | (~azeem@dynamic-adsl-84-220-228-254.clienti.tiscali.it) (Remote host closed the connection) |
2021-06-01 10:17:03 +0200 | azeem | (~azeem@dynamic-adsl-84-220-228-254.clienti.tiscali.it) |
2021-06-01 10:19:49 +0200 | guest0123 | (~aaron@2601:602:a080:fa0:21da:7ddc:2cc6:a10c) (Ping timeout: 272 seconds) |
2021-06-01 10:21:23 +0200 | thiross | (~user@173.242.113.143.16clouds.com) (Ping timeout: 252 seconds) |
2021-06-01 10:21:37 +0200 | thiross | (~user@173.242.113.143.16clouds.com) |
2021-06-01 10:23:51 +0200 | fendor_ | (~fendor@178.165.178.245.wireless.dyn.drei.com) |
2021-06-01 10:25:23 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2021-06-01 10:26:42 +0200 | fendor | (~fendor@178.115.56.93.wireless.dyn.drei.com) (Ping timeout: 264 seconds) |
2021-06-01 10:27:54 +0200 | Bartosz | (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-01 10:33:22 +0200 | holy_ | (~h01y_b4z0@2400:adc1:178:c800:9e45:76a9:57f2:1665) |
2021-06-01 10:35:05 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 264 seconds) |
2021-06-01 10:36:23 +0200 | fendor_ | fendor |
2021-06-01 10:36:46 +0200 | xff0x_ | (~xff0x@2001:1a81:52ca:4f00:5ed9:a747:2841:c1b7) (Ping timeout: 264 seconds) |
2021-06-01 10:37:30 +0200 | xff0x_ | (~xff0x@2001:1a81:52ca:4f00:158d:7c0b:fd80:1302) |
2021-06-01 10:37:37 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds) |
2021-06-01 10:39:51 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-06-01 10:40:41 +0200 | schuelermine | (~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 +0200 | Guest6538 | (~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 +0200 | azeem | (~azeem@dynamic-adsl-84-220-228-254.clienti.tiscali.it) (Read error: Connection reset by peer) |
2021-06-01 10:52:14 +0200 | dyeplexer | (~dyeplexer@user/dyeplexer) (Remote host closed the connection) |
2021-06-01 10:53:49 +0200 | holy_ | (~h01y_b4z0@2400:adc1:178:c800:9e45:76a9:57f2:1665) (Ping timeout: 272 seconds) |
2021-06-01 10:56:06 +0200 | wanagnuj | (~wanagnuj@101.95.97.158) |
2021-06-01 10:56:26 +0200 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) |
2021-06-01 10:57:25 +0200 | kuribas | (~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 +0200 | eggplantade | (~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 +0200 | matsurago | (~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 +0200 | azeem | (~azeem@dynamic-adsl-84-220-228-254.clienti.tiscali.it) |
2021-06-01 11:02:41 +0200 | ubikium | (~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) (Ping timeout: 264 seconds) |
2021-06-01 11:03:10 +0200 | boxscape | (~boxscape@user/boxscape) |
2021-06-01 11:03:31 +0200 | ubikium | (~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) |
2021-06-01 11:03:53 +0200 | dpl_ | (~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 +0200 | dunj3 | (~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 +0200 | lavaman | (~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 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 264 seconds) |
2021-06-01 11:11:11 +0200 | cheater1__ | (~Username@user/cheater) |
2021-06-01 11:11:11 +0200 | cheater1__ | 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 +0200 | Torro | (Torro@gateway/vpn/protonvpn/torro) |
2021-06-01 11:12:12 +0200 | matsurago | (~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 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 264 seconds) |
2021-06-01 11:14:05 +0200 | azeem | (~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 +0200 | wei2912 | (~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 +0200 | brandonh | (~brandonh@151.44.69.241) (Quit: brandonh) |
2021-06-01 11:20:43 +0200 | jumper149 | (~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 +0200 | xff0x_ | (~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 +0200 | xff0x_ | (~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 +0200 | azeem | (~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 +0200 | shryke_ | (~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 +0200 | ikex | (~ash@user/ikex) (Ping timeout: 264 seconds) |
2021-06-01 11:28:07 +0200 | shryke | (~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 +0200 | xff0x_ | 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 +0200 | fizbin | (~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 +0200 | qbt | (~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 +0200 | cheater1__ | (~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 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 264 seconds) |
2021-06-01 11:35:06 +0200 | cheater1__ | 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 +0200 | fizbin | (~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 +0200 | dminuoso | finds 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 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) |
2021-06-01 11:39:55 +0200 | <boxscape> | cause a ghc panic? |
2021-06-01 11:40:00 +0200 | Kaipi | (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
2021-06-01 11:40:24 +0200 | Kaipi | (~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 +0200 | mc47 | (~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 +0200 | xwx | (~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 +0200 | dpl_ | (~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 +0200 | japh | (~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 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc02:b00:b16c:5166:feb8:97d5) (Ping timeout: 264 seconds) |
2021-06-01 11:52:34 +0200 | Katarushisu | (~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 +0200 | haskman | (~haskman@171.48.41.1) |
2021-06-01 12:01:19 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) |
2021-06-01 12:04:29 +0200 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds) |
2021-06-01 12:04:56 +0200 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-06-01 12:05:53 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Ping timeout: 252 seconds) |
2021-06-01 12:06:22 +0200 | Guest31 | (~textual@cpc146410-hari22-2-0-cust124.20-2.cable.virginm.net) |
2021-06-01 12:06:53 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-06-01 12:08:18 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-01 12:08:33 +0200 | shryke | (~shryke@91.103.43.254) (Ping timeout: 272 seconds) |
2021-06-01 12:08:46 +0200 | satai | (~satai@static-84-42-172-253.net.upcbroadband.cz) |
2021-06-01 12:10:32 +0200 | Nahra | (~user@static.161.95.99.88.clients.your-server.de) |
2021-06-01 12:11:47 +0200 | bgamari | (~bgamari@2001:470:e438::1) (Quit: ZNC 1.8.1 - https://znc.in) |
2021-06-01 12:12:05 +0200 | bgamari | (~bgamari@72.65.101.148) |
2021-06-01 12:13:30 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-06-01 12:13:51 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-01 12:17:17 +0200 | Nahra | (~user@static.161.95.99.88.clients.your-server.de) (Remote host closed the connection) |
2021-06-01 12:17:25 +0200 | shryke | (~shryke@91.103.43.254) |
2021-06-01 12:18:34 +0200 | prite | (~pritam@user/pritambaral) |
2021-06-01 12:19:02 +0200 | Nahra | (~user@static.161.95.99.88.clients.your-server.de) |
2021-06-01 12:23:57 +0200 | thiross | (~user@173.242.113.143.16clouds.com) (Ping timeout: 272 seconds) |
2021-06-01 12:24:26 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-06-01 12:25:06 +0200 | merijn | (~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 +0200 | merijn | (~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 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 272 seconds) |
2021-06-01 12:30:24 +0200 | cheater1__ | (~Username@user/cheater) |
2021-06-01 12:30:25 +0200 | cheater1__ | cheater |
2021-06-01 12:30:46 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-06-01 12:31:09 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-01 12:31:34 +0200 | chomwitt | (~Pitsikoko@athedsl-20549.home.otenet.gr) |
2021-06-01 12:31:41 +0200 | zeenk | (~zeenk@2a02:2f04:a310:b600:b098:bf18:df4d:4c41) |
2021-06-01 12:34:10 +0200 | pera | (~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 +0200 | hmmmas | (~chenqisu1@183.217.202.217) (Quit: Leaving.) |
2021-06-01 12:35:47 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 272 seconds) |
2021-06-01 12:35:59 +0200 | Toast52 | (~Toast52@151.192.167.120) (Ping timeout: 272 seconds) |
2021-06-01 12:36:25 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-06-01 12:36:43 +0200 | haskman | (~haskman@171.48.41.1) (Quit: Going to sleep. ZZZzzz…) |
2021-06-01 12:37:07 +0200 | merijn | (~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 +0200 | chomwitt | (~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 +0200 | Feuermagier | (~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 +0200 | merijn | (~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 +0200 | merijn | (~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 +0200 | haskman | (~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 +0200 | thiross | (~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 +0200 | hmmmas | (~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 +0200 | merijn | (~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 +0200 | merijn | (~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 +0200 | thiross | (~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 +0200 | xff0x | (~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 +0200 | xff0x | (~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 +0200 | merijn | (~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 +0200 | merijn | (~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 +0200 | wallymathieu | (~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 +0200 | aman | (~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 +0200 | yahb | (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 +0200 | favonia | (~favonia@user/favonia) (Quit: The Lounge - https://thelounge.chat) |
2021-06-01 13:01:19 +0200 | bitdex | (~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 +0200 | thiross | (~user@173.242.113.143.16clouds.com) |
2021-06-01 13:02:49 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) |
2021-06-01 13:03:45 +0200 | yahb | (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 +0200 | pera | (~pera@user/pera) (Ping timeout: 264 seconds) |
2021-06-01 13:05:05 +0200 | pera | (~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 +0200 | pera | Guest5645 |
2021-06-01 13:05:39 +0200 | haskman | (~haskman@171.48.41.1) (Quit: Going to sleep. ZZZzzz…) |
2021-06-01 13:05:46 +0200 | megaTherion | (~therion@unix.io) (*.net *.split) |
2021-06-01 13:05:47 +0200 | farn | (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) (*.net *.split) |
2021-06-01 13:06:22 +0200 | shryke | (~shryke@91.103.43.254) (Ping timeout: 268 seconds) |
2021-06-01 13:06:39 +0200 | haskman | (~haskman@171.48.41.1) |
2021-06-01 13:07:36 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Ping timeout: 268 seconds) |
2021-06-01 13:09:17 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-06-01 13:11:23 +0200 | megaTherion | (~therion@unix.io) |
2021-06-01 13:11:23 +0200 | farn | (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) |
2021-06-01 13:11:29 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) |
2021-06-01 13:11:45 +0200 | waleee | (~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 +0200 | Guest5645 | (~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 +0200 | waleee | (~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 +0200 | raehik1 | (~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 +0200 | econo | (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 +0200 | farn | (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) (Ping timeout: 268 seconds) |
2021-06-01 13:19:04 +0200 | farn | (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) |
2021-06-01 13:19:06 +0200 | bhrgunatha | (~bhrgunath@2001-b011-8011-18ad-e68c-7ce2-e7ef-f120.dynamic-ip6.hinet.net) |
2021-06-01 13:19:20 +0200 | megaTherion | (~therion@unix.io) (Ping timeout: 268 seconds) |
2021-06-01 13:19:29 +0200 | megaTherion | (~therion@unix.io) |
2021-06-01 13:21:14 +0200 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-06-01 13:22:59 +0200 | bhrgunatha | (~bhrgunath@2001-b011-8011-18ad-e68c-7ce2-e7ef-f120.dynamic-ip6.hinet.net) (Client Quit) |
2021-06-01 13:25:09 +0200 | shryke | (~shryke@91.103.43.254) |
2021-06-01 13:25:18 +0200 | lieuwex | (~lieuwelie@2001:470:69fc:105::4e6) () |
2021-06-01 13:30:42 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-06-01 13:32:27 +0200 | Guest31 | (~textual@cpc146410-hari22-2-0-cust124.20-2.cable.virginm.net) (Quit: Textual IRC Client: www.textualapp.com) |
2021-06-01 13:34:26 +0200 | slep | (~slep@cpc150002-brnt4-2-0-cust437.4-2.cable.virginm.net) (Ping timeout: 252 seconds) |
2021-06-01 13:34:35 +0200 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.1) |
2021-06-01 13:34:56 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-06-01 13:36:29 +0200 | keutoi | (~keutoi@157.48.91.62) |
2021-06-01 13:36:41 +0200 | slep | (~slep@cpc150002-brnt4-2-0-cust437.4-2.cable.virginm.net) |
2021-06-01 13:37:52 +0200 | Toast52 | (~Toast52@151.192.167.120) |
2021-06-01 13:42:30 +0200 | xsperry | (~as@user/xsperry) (Read error: Connection reset by peer) |
2021-06-01 13:42:59 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-01 13:44:36 +0200 | aman | (~aman@user/aman) (Quit: aman) |
2021-06-01 13:44:46 +0200 | wanagnuj | (~wanagnuj@101.95.97.158) (Quit: wanagnuj) |
2021-06-01 13:46:21 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-01 13:46:31 +0200 | mc47 | (~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 +0200 | shailangsa | (~shailangs@host165-120-169-73.range165-120.btcentralplus.com) (Ping timeout: 268 seconds) |
2021-06-01 13:50:38 +0200 | mattil | (~mattil@airio.portalify.com) |
2021-06-01 13:51:07 +0200 | eightball | (~eight@86.106.121.164) (Quit: Leaving) |
2021-06-01 13:51:16 +0200 | smitop | (uid328768@user/smitop) |
2021-06-01 13:51:23 +0200 | v01d4lph4 | (~v01d4lph4@user/v01d4lph4) (Ping timeout: 268 seconds) |
2021-06-01 13:52:11 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2021-06-01 13:52:56 +0200 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Ping timeout: 265 seconds) |
2021-06-01 13:55:23 +0200 | shiraeeshi | (~shiraeesh@109.166.57.115) |
2021-06-01 13:58:32 +0200 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) |
2021-06-01 14:00:37 +0200 | japh | (~scp1@user/japh) () |
2021-06-01 14:03:40 +0200 | v01d4lph4 | (~v01d4lph4@122.160.65.250) |
2021-06-01 14:03:40 +0200 | v01d4lph4 | (~v01d4lph4@122.160.65.250) (Changing host) |
2021-06-01 14:03:40 +0200 | v01d4lph4 | (~v01d4lph4@user/v01d4lph4) |
2021-06-01 14:04:04 +0200 | Toast52_ | (~Toast52@151.192.167.120) |
2021-06-01 14:04:23 +0200 | sondre | (~sondrelun@cm-84.212.100.140.getinternet.no) (Ping timeout: 244 seconds) |
2021-06-01 14:04:29 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds) |
2021-06-01 14:06:35 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-06-01 14:07:45 +0200 | hmmmas | (~chenqisu1@183.217.202.217) (Quit: Leaving.) |
2021-06-01 14:08:15 +0200 | Toast52 | (~Toast52@151.192.167.120) (Ping timeout: 272 seconds) |
2021-06-01 14:09:20 +0200 | holy_ | (~h01y_b4z0@103.244.176.36) |
2021-06-01 14:13:10 +0200 | zebrag | (~chris@user/zebrag) |
2021-06-01 14:18:54 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 264 seconds) |
2021-06-01 14:18:55 +0200 | azeem | (~azeem@dynamic-adsl-78-13-240-225.clienti.tiscali.it) (Read error: Connection reset by peer) |
2021-06-01 14:18:59 +0200 | holy_ | (~h01y_b4z0@103.244.176.36) (Remote host closed the connection) |
2021-06-01 14:20:37 +0200 | waleee | (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) |
2021-06-01 14:20:46 +0200 | shailangsa | (~shailangs@host165-120-169-73.range165-120.btcentralplus.com) |
2021-06-01 14:20:48 +0200 | azeem | (~azeem@dynamic-adsl-78-13-240-225.clienti.tiscali.it) |
2021-06-01 14:27:37 +0200 | river | (~river@tilde.team/user/river) |
2021-06-01 14:33:40 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-01 14:43:47 +0200 | bor0 | (~boro@user/bor0) |
2021-06-01 14:44:25 +0200 | xff0x | (~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 +0200 | xff0x | (~xff0x@2001:1a81:52ca:4f00:7b0a:bab9:5836:8b3b) |
2021-06-01 14:45:23 +0200 | otoburb | (~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 +0200 | xwx | (~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 +0200 | lavaman | (~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 +0200 | lavaman | (~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 +0200 | lavaman | (~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 +0200 | brian_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 +0200 | berberman | (~berberman@user/berberman) |
2021-06-01 14:53:42 +0200 | berberman_ | (~berberman@user/berberman) (Ping timeout: 264 seconds) |
2021-06-01 14:53:46 +0200 | pbrisbin | (~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 +0200 | fizbin | (~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 +0200 | xwx | (~george@user/george) |
2021-06-01 15:01:16 +0200 | alx741 | (~alx741@186.178.108.160) |
2021-06-01 15:04:05 +0200 | geekosaur | (~geekosaur@069-135-003-034.biz.spectrum.com) |
2021-06-01 15:04:08 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) |
2021-06-01 15:05:30 +0200 | hydroxonium | (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 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Remote host closed the connection) |
2021-06-01 15:06:48 +0200 | xprlgjf | (~gavin@60.27.93.209.dyn.plus.net) (Read error: Connection reset by peer) |
2021-06-01 15:07:32 +0200 | v01d4lph4 | (~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 +0200 | v01d4lph4 | (~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 +0200 | wei2912 | (~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 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Ping timeout: 272 seconds) |
2021-06-01 15:10:33 +0200 | dunkeln | (~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 +0200 | thiross | (~user@173.242.113.143.16clouds.com) (Remote host closed the connection) |
2021-06-01 15:12:53 +0200 | azeem | (~azeem@dynamic-adsl-78-13-240-225.clienti.tiscali.it) (Ping timeout: 252 seconds) |
2021-06-01 15:12:53 +0200 | v01d4lph4 | (~v01d4lph4@user/v01d4lph4) (Ping timeout: 264 seconds) |
2021-06-01 15:13:00 +0200 | thiross | (~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 +0200 | flowz | (~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 +0200 | azeem | (~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 +0200 | thiross | (~user@173.242.113.143.16clouds.com) (Ping timeout: 264 seconds) |
2021-06-01 15:18:48 +0200 | thiross | (~user@173.242.113.143.16clouds.com) |
2021-06-01 15:20:22 +0200 | lavaman | (~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 +0200 | thiross | (~user@173.242.113.143.16clouds.com) () |
2021-06-01 15:21:37 +0200 | xsperry | (~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 +0200 | geekosaur | (~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 +0200 | geekosaur | (~geekosaur@069-135-003-034.biz.spectrum.com) |
2021-06-01 15:24:34 +0200 | Toast52_ | (~Toast52@151.192.167.120) (Quit: Leaving) |
2021-06-01 15:24:54 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 264 seconds) |
2021-06-01 15:25:04 +0200 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-06-01 15:25:18 +0200 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
2021-06-01 15:27:06 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-06-01 15:27:15 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-06-01 15:28:04 +0200 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Client Quit) |
2021-06-01 15:28:19 +0200 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
2021-06-01 15:29:13 +0200 | AgentM | (~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) |
2021-06-01 15:29:23 +0200 | hendursa1 | (~weechat@user/hendursaga) (Quit: hendursa1) |
2021-06-01 15:29:49 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-06-01 15:32:02 +0200 | arrowd | (~arr@2.94.203.147) |
2021-06-01 15:32:04 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-06-01 15:33:40 +0200 | chomwitt | (~Pitsikoko@athedsl-20549.home.otenet.gr) |
2021-06-01 15:33:47 +0200 | niflce | (~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 +0200 | fm | (~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 +0200 | wonko | (~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 +0200 | shiraeeshi | (~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 +0200 | slowButPresent | (~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 +0200 | keutoi | (~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 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2021-06-01 15:42:43 +0200 | keutoi | (~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 +0200 | unyu | (~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 +0200 | ystael | (~ystael@user/ystael) |
2021-06-01 15:50:46 +0200 | pe200012 | (~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 +0200 | jneira | (~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 +0200 | myShoggoth | (~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 +0200 | lavaman | (~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 +0200 | haskman | (~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 +0200 | chddr | (~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 +0200 | mattil | (~mattil@airio.portalify.com) (Remote host closed the connection) |
2021-06-01 15:58:27 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2-dev) |
2021-06-01 15:59:06 +0200 | Feuermagier | (~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 +0200 | lavaman | (~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 +0200 | pe200012_ | (~pe200012@218.107.17.245) |
2021-06-01 16:05:41 +0200 | pe200012 | (~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 +0200 | ku | (~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 +0200 | hexfive | (~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 +0200 | azeem | (~azeem@dynamic-adsl-94-34-16-203.clienti.tiscali.it) (Read error: Connection reset by peer) |
2021-06-01 16:22:50 +0200 | ikex | (~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 +0200 | flowz | (~flowz@2a01:aea0:dd4:1573:a8:24ac:7db2:5b39) (Quit: Client closed) |
2021-06-01 16:26:24 +0200 | azeem | (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) |
2021-06-01 16:27:08 +0200 | adziahel[m] | (~adziahelm@2001:470:69fc:105::b4d) |
2021-06-01 16:28:25 +0200 | niflce | (~IceChat95@user/niflce) (Ping timeout: 272 seconds) |
2021-06-01 16:30:20 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-01 16:31:39 +0200 | niflce | (~IceChat95@user/niflce) |
2021-06-01 16:41:09 +0200 | koishi_ | (~koishi_@67.209.186.120.16clouds.com) |
2021-06-01 16:43:13 +0200 | koishi_ | (~koishi_@67.209.186.120.16clouds.com) (Remote host closed the connection) |
2021-06-01 16:44:15 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2021-06-01 16:47:46 +0200 | haskman | (~haskman@171.48.41.1) |
2021-06-01 16:48:04 +0200 | LukeHoersten | (~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 +0200 | LukeHoersten | (~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 +0200 | dunkeln | (~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 +0200 | haskman | (~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 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.1) |
2021-06-01 16:59:28 +0200 | bfrk | (~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 +0200 | fart | (~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 +0200 | amahl | (~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 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2021-06-01 17:05:43 +0200 | Bartosz | (~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 +0200 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
2021-06-01 17:08:36 +0200 | Kaipi | (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
2021-06-01 17:10:51 +0200 | oxide | (~lambda@user/oxide) (Ping timeout: 272 seconds) |
2021-06-01 17:11:07 +0200 | Kaipi | (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) |
2021-06-01 17:14:46 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) |
2021-06-01 17:16:48 +0200 | eggplantade | (~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 +0200 | oxide | (~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 +0200 | renzhi | (~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 +0200 | Guest9 | (~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 +0200 | fart | (~fart@user/actor) (Quit: Connection closed) |
2021-06-01 17:23:47 +0200 | curiousgay | (~quassel@178.217.208.8) (Ping timeout: 252 seconds) |
2021-06-01 17:23:52 +0200 | wroathe | (~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 +0200 | shailangsa | (~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 +0200 | lortabac | (~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 +0200 | ubh | (~ubh@2001:470:69fc:105::852) () |
2021-06-01 17:28:55 +0200 | blizzard | (~winter@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) |
2021-06-01 17:29:05 +0200 | blizzard | derelict |
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 +0200 | qbt | (~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 +0200 | wei2912 | (~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 +0200 | ikex | (~ash@user/ikex) (Ping timeout: 264 seconds) |
2021-06-01 17:39:17 +0200 | ski | smiles |
2021-06-01 17:39:35 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Remote host closed the connection) |
2021-06-01 17:40:25 +0200 | fizbin | (~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 +0200 | dpl_ | (~dpl@77-121-78-163.chn.volia.net) (Ping timeout: 264 seconds) |
2021-06-01 17:42:09 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-06-01 17:42:25 +0200 | tromp | (~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 +0200 | boxscape | (~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 +0200 | eggplantade | (~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 +0200 | Bartosz | (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-01 17:46:43 +0200 | boxscape | (~boxscape@user/boxscape) |
2021-06-01 17:46:44 +0200 | ubert | (~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 +0200 | dunj3 | (~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 +0200 | dunkeln | (~dunkeln@94.129.65.28) |
2021-06-01 17:51:44 +0200 | chele | (~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 +0200 | merijn | (~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 +0200 | Deide | (~Deide@wire.desu.ga) |
2021-06-01 17:53:16 +0200 | Deide | (~Deide@wire.desu.ga) (Changing host) |
2021-06-01 17:53:16 +0200 | Deide | (~Deide@user/deide) |
2021-06-01 17:53:26 +0200 | ski | . 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 +0200 | hseg | (~gesh@185.120.126.41) |
2021-06-01 17:54:03 +0200 | shailangsa | (~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 +0200 | zeenk | (~zeenk@2a02:2f04:a310:b600:b098:bf18:df4d:4c41) (Quit: Konversation terminated!) |
2021-06-01 17:58:43 +0200 | haltux | (~lbigas@a89-154-181-47.cpe.netcabo.pt) |
2021-06-01 18:00:25 +0200 | guest61 | (~xxx@47.245.54.240) |
2021-06-01 18:00:37 +0200 | haltux | (~lbigas@a89-154-181-47.cpe.netcabo.pt) (Quit: Leaving) |
2021-06-01 18:01:43 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-06-01 18:02:05 +0200 | shryke | (~shryke@91.103.43.254) (Ping timeout: 264 seconds) |
2021-06-01 18:02:18 +0200 | haltux | (~lbigas@a89-154-181-47.cpe.netcabo.pt) |
2021-06-01 18:02:29 +0200 | wallymathieu | (~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 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-06-01 18:07:11 +0200 | pe200012_ | (~pe200012@218.107.17.245) (Read error: Connection reset by peer) |
2021-06-01 18:08:17 +0200 | shryke | (~shryke@91.103.43.254) |
2021-06-01 18:08:46 +0200 | softinio | (~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 +0200 | v01d4lph4 | (~v01d4lph4@122.160.65.250) |
2021-06-01 18:10:55 +0200 | v01d4lph4 | (~v01d4lph4@122.160.65.250) (Changing host) |
2021-06-01 18:10:55 +0200 | v01d4lph4 | (~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 +0200 | favonia | (~favonia@user/favonia) |
2021-06-01 18:12:25 +0200 | Guest9 | (~Guest9@43.241.144.2) (Quit: Connection closed) |
2021-06-01 18:13:08 +0200 | favonia | (~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 +0200 | softinio | (~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 +0200 | jakzale | (uid499518@id-499518.charlton.irccloud.com) (Quit: Connection closed for inactivity) |
2021-06-01 18:22:28 +0200 | Bartosz | (~textual@24.35.90.211) |
2021-06-01 18:23:29 +0200 | niflce | (~IceChat95@user/niflce) (Ping timeout: 272 seconds) |
2021-06-01 18:23:31 +0200 | Bartosz | (~textual@24.35.90.211) (Client Quit) |
2021-06-01 18:24:48 +0200 | niflce | (~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 +0200 | nschoe | (~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 +0200 | lbseale__ | 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 +0200 | merijn | (~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 +0200 | lavaman | (~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 +0200 | azeem | (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) (Ping timeout: 264 seconds) |
2021-06-01 18:33:49 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-06-01 18:35:56 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-01 18:37:30 +0200 | chddr | (~Thunderbi@31.148.23.125) (Ping timeout: 264 seconds) |
2021-06-01 18:43:08 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Remote host closed the connection) |
2021-06-01 18:43:31 +0200 | v01d4lph4 | (~v01d4lph4@user/v01d4lph4) (Remote host closed the connection) |
2021-06-01 18:43:54 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) (Ping timeout: 244 seconds) |
2021-06-01 18:44:46 +0200 | sm2n | (~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 +0200 | ski | glances around nervously |
2021-06-01 18:48:52 +0200 | Bartosz | (~textual@67.135.32.118) |
2021-06-01 18:49:19 +0200 | motherfsck | (~motherfsc@68.235.43.102) |
2021-06-01 18:49:24 +0200 | dpl_ | (~dpl@77-121-78-163.chn.volia.net) |
2021-06-01 18:49:38 +0200 | motherfsck | (~motherfsc@68.235.43.102) (Quit: quit) |
2021-06-01 18:50:38 +0200 | motherfsck | (~motherfsc@68.235.43.102) |
2021-06-01 18:50:56 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) |
2021-06-01 18:51:15 +0200 | beka | (~beka@104.193.170-254.PUBLIC.monkeybrains.net) |
2021-06-01 18:51:35 +0200 | leeb_ | (~leeb@KD111239153130.au-net.ne.jp) (Quit: WeeChat 3.1) |
2021-06-01 18:52:03 +0200 | motherfsck | (~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 +0200 | haltux | (~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 +0200 | keutoi | (~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 +0200 | motherfsck | (~motherfsc@68.235.43.102) |
2021-06-01 18:55:23 +0200 | vjoki | (~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 +0200 | haskman | (~haskman@106.201.8.96) |
2021-06-01 18:56:10 +0200 | motherfsck | (~motherfsc@68.235.43.102) (Changing host) |
2021-06-01 18:56:10 +0200 | motherfsck | (~motherfsc@user/motherfsck) |
2021-06-01 18:57:00 +0200 | haltux | (~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 +0200 | novasenco | (novasenco@user/nova) (♥☺) |
2021-06-01 18:59:21 +0200 | pavonia | (~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 +0200 | tzh | (~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 +0200 | benin | (~benin@183.82.205.186) |
2021-06-01 19:04:47 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
2021-06-01 19:04:51 +0200 | qbt | (~edun@user/edun) |
2021-06-01 19:06:40 +0200 | Ariakenom | (~Ariakenom@2001:9b1:efb:fc00:d9c3:69a3:f97b:be95) |
2021-06-01 19:06:40 +0200 | kmein | (~weechat@user/kmein) (Quit: ciao kakao) |
2021-06-01 19:07:05 +0200 | kmein | (~weechat@user/kmein) |
2021-06-01 19:08:31 +0200 | Bartosz | (~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 +0200 | azeem | (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) |
2021-06-01 19:10:11 +0200 | ec | (~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 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Client Quit) |
2021-06-01 19:12:17 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2021-06-01 19:12:42 +0200 | bfrk | (~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 +0200 | motherfsck | (~motherfsc@user/motherfsck) (Quit: quit) |
2021-06-01 19:17:16 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-01 19:18:28 +0200 | novasenco | (novasenco@user/nova) |
2021-06-01 19:18:48 +0200 | ski | . o O ( maybe both ? ) |
2021-06-01 19:18:56 +0200 | hseg | (~gesh@185.120.126.41) (Quit: WeeChat 3.1) |
2021-06-01 19:19:17 +0200 | myShoggoth | (~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 +0200 | jumper149 | (~jumper149@80.240.31.34) (Quit: WeeChat 3.1) |
2021-06-01 19:19:45 +0200 | bitmapper | (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 +0200 | motherfsck | (~motherfsc@user/motherfsck) |
2021-06-01 19:24:17 +0200 | sm2n | (~sm2n@user/sm2n) (*.net *.split) |
2021-06-01 19:24:17 +0200 | oxide | (~lambda@user/oxide) (*.net *.split) |
2021-06-01 19:24:17 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (*.net *.split) |
2021-06-01 19:24:17 +0200 | pbrisbin | (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) (*.net *.split) |
2021-06-01 19:24:17 +0200 | berberman | (~berberman@user/berberman) (*.net *.split) |
2021-06-01 19:24:17 +0200 | bor0 | (~boro@user/bor0) (*.net *.split) |
2021-06-01 19:24:17 +0200 | cheater | (~Username@user/cheater) (*.net *.split) |
2021-06-01 19:24:17 +0200 | leif | (uid501722@id-501722.stonehaven.irccloud.com) (*.net *.split) |
2021-06-01 19:24:17 +0200 | joel135 | (sid136450@id-136450.stonehaven.irccloud.com) (*.net *.split) |
2021-06-01 19:24:17 +0200 | Firedancer | (sid336191@id-336191.stonehaven.irccloud.com) (*.net *.split) |
2021-06-01 19:24:17 +0200 | mthvedt | (uid501949@id-501949.stonehaven.irccloud.com) (*.net *.split) |
2021-06-01 19:24:17 +0200 | amir | (sid22336@user/amir) (*.net *.split) |
2021-06-01 19:24:17 +0200 | peteretep | (sid143467@id-143467.stonehaven.irccloud.com) (*.net *.split) |
2021-06-01 19:24:17 +0200 | acertain | (sid470584@id-470584.stonehaven.irccloud.com) (*.net *.split) |
2021-06-01 19:24:17 +0200 | sqrt2 | (~ben@tunnel330957-pt.tunnel.tserv6.fra1.ipv6.he.net) (*.net *.split) |
2021-06-01 19:24:17 +0200 | Megant | (megant@user/megant) (*.net *.split) |
2021-06-01 19:24:17 +0200 | Aighearach | (~paris@c-71-63-160-210.hsd1.or.comcast.net) (*.net *.split) |
2021-06-01 19:24:17 +0200 | the-coot[m] | (~the-cootm@2001:470:69fc:105::95f) (*.net *.split) |
2021-06-01 19:24:17 +0200 | hexology | (~hexology@user/hexology) (*.net *.split) |
2021-06-01 19:24:17 +0200 | jiribenes | (~jiribenes@rosa.jiribenes.com) (*.net *.split) |
2021-06-01 19:24:17 +0200 | dexterfoo | (dexter@2a01:7e00::f03c:91ff:fe86:59ec) (*.net *.split) |
2021-06-01 19:24:17 +0200 | dmwit | (~dmwit@pool-173-66-86-32.washdc.fios.verizon.net) (*.net *.split) |
2021-06-01 19:24:17 +0200 | vjoki | (~vjoki@2a00:d880:3:1::fea1:9ae) (*.net *.split) |
2021-06-01 19:24:17 +0200 | thonkpod | (~thonkpod@2001:19f0:ac01:b46:5400:1ff:fec7:d73d) (*.net *.split) |
2021-06-01 19:24:17 +0200 | NemesisD | (sid24071@tooting.irccloud.com) (*.net *.split) |
2021-06-01 19:24:17 +0200 | parseval | (sid239098@brockwell.irccloud.com) (*.net *.split) |
2021-06-01 19:24:17 +0200 | edwtjo | (~edwtjo@user/edwtjo) (*.net *.split) |
2021-06-01 19:24:17 +0200 | fabfianda[m] | (~fabfianda@2001:470:69fc:105::6db) (*.net *.split) |
2021-06-01 19:24:17 +0200 | bmsk | (~user@2001:19f0:5001:2f3b:5400:3ff:fe53:2d96) (*.net *.split) |
2021-06-01 19:24:17 +0200 | dy | (~dy@user/dy) (*.net *.split) |
2021-06-01 19:24:17 +0200 | Teacup | (~teacup@user/teacup) (*.net *.split) |
2021-06-01 19:24:17 +0200 | fjmorazan | (~quassel@user/fjmorazan) (*.net *.split) |
2021-06-01 19:24:17 +0200 | ajb | (~ajb@cupid.whatbox.ca) (*.net *.split) |
2021-06-01 19:24:17 +0200 | mstruebing | (~maex@2001:41d0:8:93c7::1) (*.net *.split) |
2021-06-01 19:24:17 +0200 | teehemkay | (sid14792@id-14792.tooting.irccloud.com) (*.net *.split) |
2021-06-01 19:24:17 +0200 | dixie | (~dixie@real.wilbury.sk) (*.net *.split) |
2021-06-01 19:24:17 +0200 | funsafe | (~funsafe@2601:1c1:4200:938f:389d:16a4:ae2d:65aa) (*.net *.split) |
2021-06-01 19:24:17 +0200 | statusbot | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (*.net *.split) |
2021-06-01 19:24:17 +0200 | plateno | (~plateno@user/plateno) (*.net *.split) |
2021-06-01 19:24:17 +0200 | edwardk | (sid47016@haskell/developer/edwardk) (*.net *.split) |
2021-06-01 19:24:17 +0200 | iphy | (sid67735@tooting.irccloud.com) (*.net *.split) |
2021-06-01 19:24:17 +0200 | immae | (~immae@2a01:4f8:141:53e7::) (*.net *.split) |
2021-06-01 19:24:17 +0200 | Hecate | (~mariposa@user/hecate) (*.net *.split) |
2021-06-01 19:24:17 +0200 | ham | (~ham4@user/ham) (*.net *.split) |
2021-06-01 19:24:17 +0200 | bcoppens | (~bartcopp@vpn2.bartcoppens.be) (*.net *.split) |
2021-06-01 19:24:17 +0200 | pie_bnc | (~pie_bnc@user/pie/x-2818909) (*.net *.split) |
2021-06-01 19:24:17 +0200 | df | (~ben@51.15.198.140) (*.net *.split) |
2021-06-01 19:24:17 +0200 | liskin | (~liskin@ackle.nomi.cz) (*.net *.split) |
2021-06-01 19:24:17 +0200 | samebchase | (~samebchas@51.15.68.182) (*.net *.split) |
2021-06-01 19:24:17 +0200 | bjfs | (bart@kobayashi.com.pl) (*.net *.split) |
2021-06-01 19:24:17 +0200 | supersven | (uid501114@charlton.irccloud.com) (*.net *.split) |
2021-06-01 19:24:17 +0200 | mikolaj_ | (~mikolaj@purple.well-typed.com) (*.net *.split) |
2021-06-01 19:24:17 +0200 | keltono | (~kelton@x-160-94-179-178.acm.umn.edu) (*.net *.split) |
2021-06-01 19:24:17 +0200 | nitrix | (~nitrix@user/nitrix) (*.net *.split) |
2021-06-01 19:24:17 +0200 | bsima | (~bsima@simatime.com) (*.net *.split) |
2021-06-01 19:24:17 +0200 | mikolaj | (~mikon@duch.mimuw.edu.pl) (*.net *.split) |
2021-06-01 19:24:17 +0200 | bcmiller | (~bm3719@66.42.95.185) (*.net *.split) |
2021-06-01 19:24:17 +0200 | Aardwolf | (~lode@77-56-208-202.dclient.hispeed.ch) (*.net *.split) |
2021-06-01 19:24:17 +0200 | alp | (~alp@user/alp) (*.net *.split) |
2021-06-01 19:24:17 +0200 | Pent | (sid313808@tooting.irccloud.com) (*.net *.split) |
2021-06-01 19:24:17 +0200 | yushyin | (0mbcixlPGk@karif.server-speed.net) (*.net *.split) |
2021-06-01 19:24:17 +0200 | seeg | (~thelounge@static.89.161.217.95.clients.your-server.de) (*.net *.split) |
2021-06-01 19:24:17 +0200 | ivan | (~ivan@user/ivan) (*.net *.split) |
2021-06-01 19:24:17 +0200 | fryguybob | (~fryguybob@cpe-74-65-31-113.rochester.res.rr.com) (*.net *.split) |
2021-06-01 19:24:17 +0200 | haasn | (~nand@haasn.dev) (*.net *.split) |
2021-06-01 19:24:17 +0200 | dragestil | (~quassel@user/dragestil) (*.net *.split) |
2021-06-01 19:24:17 +0200 | Adran | (~adran@botters/adran) (*.net *.split) |
2021-06-01 19:24:17 +0200 | agander_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 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-06-01 19:24:24 +0200 | Hecate | (~mariposa@163.172.211.189) |
2021-06-01 19:24:24 +0200 | parseval | (sid239098@id-239098.brockwell.irccloud.com) |
2021-06-01 19:24:24 +0200 | mikolaj | (~mikolaj@purple.well-typed.com) |
2021-06-01 19:24:25 +0200 | mikolaj_ | (~mikon@duch.mimuw.edu.pl) |
2021-06-01 19:24:25 +0200 | supersven | (uid501114@id-501114.charlton.irccloud.com) |
2021-06-01 19:24:25 +0200 | dmwit | (~dmwit@pool-173-66-86-32.washdc.fios.verizon.net) |
2021-06-01 19:24:28 +0200 | bcoppens | (~bartcopp@vpn2.bartcoppens.be) |
2021-06-01 19:24:28 +0200 | dixie | (~dixie@real.wilbury.sk) |
2021-06-01 19:24:30 +0200 | edwtjo | (~edwtjo@h-79-136-7-145.A213.priv.bahnhof.se) |
2021-06-01 19:24:30 +0200 | dexterfoo | (dexter@2a01:7e00::f03c:91ff:fe86:59ec) |
2021-06-01 19:24:30 +0200 | ajb | (~ajb@cupid.whatbox.ca) |
2021-06-01 19:24:30 +0200 | mthvedt | (uid501949@id-501949.stonehaven.irccloud.com) |
2021-06-01 19:24:30 +0200 | teehemkay | (sid14792@id-14792.tooting.irccloud.com) |
2021-06-01 19:24:32 +0200 | keltono | (~kelton@x-160-94-179-178.acm.umn.edu) |
2021-06-01 19:24:32 +0200 | sqrt2 | (~ben@tunnel330957-pt.tunnel.tserv6.fra1.ipv6.he.net) |
2021-06-01 19:24:32 +0200 | alp | (~alp@163.172.83.213) |
2021-06-01 19:24:32 +0200 | mstruebing | (~maex@2001:41d0:8:93c7::1) |
2021-06-01 19:24:33 +0200 | Pent | (sid313808@id-313808.tooting.irccloud.com) |
2021-06-01 19:24:33 +0200 | samebchase | (~samebchas@51.15.68.182) |
2021-06-01 19:24:35 +0200 | dragestil | (~quassel@180-150-39-25.b49627.bne.nbn.aussiebb.net) |
2021-06-01 19:24:36 +0200 | Aardwolf | (~lode@77-56-208-202.dclient.hispeed.ch) |
2021-06-01 19:24:37 +0200 | fjmorazan | (~quassel@user/fjmorazan) |
2021-06-01 19:24:37 +0200 | fryguybob | (~fryguybob@cpe-74-65-31-113.rochester.res.rr.com) |
2021-06-01 19:24:37 +0200 | Aighearach | (~paris@c-71-63-160-210.hsd1.or.comcast.net) |
2021-06-01 19:24:43 +0200 | guest0123 | (~aaron@2601:602:a080:fa0:21da:7ddc:2cc6:a10c) |
2021-06-01 19:24:45 +0200 | bjfs | (bart@kobayashi.com.pl) |
2021-06-01 19:24:45 +0200 | yushyin | (exGFiU2tsp@karif.server-speed.net) |
2021-06-01 19:24:47 +0200 | liskin | (~liskin@ackle.nomi.cz) |
2021-06-01 19:24:49 +0200 | amir | (sid22336@id-22336.stonehaven.irccloud.com) |
2021-06-01 19:24:49 +0200 | agander_m | (sid407952@id-407952.tinside.irccloud.com) |
2021-06-01 19:24:50 +0200 | pbrisbin | (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) |
2021-06-01 19:24:51 +0200 | oxide | (~lambda@61.0.149.238) |
2021-06-01 19:24:52 +0200 | thonkpod | (~thonkpod@2001:19f0:ac01:b46:5400:1ff:fec7:d73d) |
2021-06-01 19:24:52 +0200 | joel135 | (sid136450@id-136450.stonehaven.irccloud.com) |
2021-06-01 19:24:52 +0200 | acertain | (sid470584@id-470584.stonehaven.irccloud.com) |
2021-06-01 19:24:52 +0200 | Firedancer | (sid336191@id-336191.stonehaven.irccloud.com) |
2021-06-01 19:24:52 +0200 | Teacup | (~teacup@user/teacup) |
2021-06-01 19:24:52 +0200 | leif | (uid501722@id-501722.stonehaven.irccloud.com) |
2021-06-01 19:24:52 +0200 | peteretep | (sid143467@id-143467.stonehaven.irccloud.com) |
2021-06-01 19:24:52 +0200 | bmsk | (~user@2001:19f0:5001:2f3b:5400:3ff:fe53:2d96) |
2021-06-01 19:24:53 +0200 | funsafe | (~funsafe@2601:1c1:4200:938f:389d:16a4:ae2d:65aa) |
2021-06-01 19:24:54 +0200 | bor0 | (~boro@46.217.54.116) |
2021-06-01 19:24:56 +0200 | jiribenes | (~jiribenes@rosa.jiribenes.com) |
2021-06-01 19:25:00 +0200 | iphy | (sid67735@2001:67c:2f08:4::1:897) |
2021-06-01 19:25:00 +0200 | NemesisD | (sid24071@2001:67c:2f08:4::5e07) |
2021-06-01 19:25:01 +0200 | nitrix | (~nitrix@ns569831.ip-51-79-81.net) |
2021-06-01 19:25:04 +0200 | immae | (~immae@2a01:4f8:141:53e7::) |
2021-06-01 19:25:04 +0200 | edwardk | (sid47016@2001:67c:2f08:3::b7a8) |
2021-06-01 19:25:10 +0200 | edwtjo | (~edwtjo@h-79-136-7-145.A213.priv.bahnhof.se) (Changing host) |
2021-06-01 19:25:10 +0200 | edwtjo | (~edwtjo@user/edwtjo) |
2021-06-01 19:25:14 +0200 | ivan | (~ivan@static.38.6.217.95.clients.your-server.de) |
2021-06-01 19:25:36 +0200 | amir | (sid22336@id-22336.stonehaven.irccloud.com) (Changing host) |
2021-06-01 19:25:36 +0200 | amir | (sid22336@user/amir) |
2021-06-01 19:25:46 +0200 | edwardk | (sid47016@2001:67c:2f08:3::b7a8) (Changing host) |
2021-06-01 19:25:46 +0200 | edwardk | (sid47016@haskell/developer/edwardk) |
2021-06-01 19:25:52 +0200 | yushyin | (exGFiU2tsp@karif.server-speed.net) (Client Quit) |
2021-06-01 19:25:53 +0200 | ivan | (~ivan@static.38.6.217.95.clients.your-server.de) (Changing host) |
2021-06-01 19:25:53 +0200 | ivan | (~ivan@user/ivan) |
2021-06-01 19:25:59 +0200 | bjfs | Guest6937 |
2021-06-01 19:26:02 +0200 | nitrix | (~nitrix@ns569831.ip-51-79-81.net) (Changing host) |
2021-06-01 19:26:02 +0200 | nitrix | (~nitrix@user/nitrix) |
2021-06-01 19:26:07 +0200 | bmsk | Guest7513 |
2021-06-01 19:26:11 +0200 | bor0 | Guest929 |
2021-06-01 19:26:14 +0200 | yushyin | (iqIKChYq4t@karif.server-speed.net) |
2021-06-01 19:26:32 +0200 | sm2n | (~sm2n@user/sm2n) |
2021-06-01 19:26:39 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2021-06-01 19:26:40 +0200 | statusbot | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) |
2021-06-01 19:26:42 +0200 | pie_bnc | (~pie_bnc@user/pie/x-2818909) |
2021-06-01 19:26:44 +0200 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
2021-06-01 19:26:45 +0200 | bsima | (~bsima@simatime.com) |
2021-06-01 19:26:49 +0200 | ham | (~ham4@user/ham) |
2021-06-01 19:26:56 +0200 | hexology | (~hexology@user/hexology) |
2021-06-01 19:27:09 +0200 | yushyin | (iqIKChYq4t@karif.server-speed.net) (Client Quit) |
2021-06-01 19:27:11 +0200 | haasn | (~nand@haasn.dev) |
2021-06-01 19:27:17 +0200 | Adran | (~adran@botters/adran) |
2021-06-01 19:27:19 +0200 | vjoki | (~vjoki@2a00:d880:3:1::fea1:9ae) |
2021-06-01 19:27:23 +0200 | berberman | (~berberman@user/berberman) |
2021-06-01 19:27:23 +0200 | yushyin | (nrX1Axr00h@karif.server-speed.net) |
2021-06-01 19:27:54 +0200 | cheater | (~Username@user/cheater) |
2021-06-01 19:28:04 +0200 | Guest31 | (~textual@cpc146410-hari22-2-0-cust124.20-2.cable.virginm.net) |
2021-06-01 19:28:47 +0200 | liskin | (~liskin@ackle.nomi.cz) (Client Quit) |
2021-06-01 19:28:56 +0200 | liskin | (~liskin@ackle.nomi.cz) |
2021-06-01 19:29:20 +0200 | bcmiller | (~bm3719@66.42.95.185) |
2021-06-01 19:29:24 +0200 | Megant | (megant@user/megant) |
2021-06-01 19:29:47 +0200 | ku | (~ku@2601:280:c780:7ea0:d1c6:52a:4bf2:1ff2) |
2021-06-01 19:30:55 +0200 | dunkeln | (~dunkeln@94.129.65.28) (Ping timeout: 244 seconds) |
2021-06-01 19:31:55 +0200 | sbmsr | (~pi@2600:1700:63d0:4830:7dbf:92d8:fd42:235d) |
2021-06-01 19:32:48 +0200 | fabfianda[m] | (~fabfianda@2001:470:69fc:105::6db) |
2021-06-01 19:34:22 +0200 | Pent | (sid313808@id-313808.tooting.irccloud.com) () |
2021-06-01 19:34:34 +0200 | Pent | (sid313808@id-313808.tooting.irccloud.com) |
2021-06-01 19:34:41 +0200 | Bartosz | (~textual@24.35.90.211) |
2021-06-01 19:39:00 +0200 | geekosaur | (~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 265 seconds) |
2021-06-01 19:40:29 +0200 | azeem | (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) (Ping timeout: 264 seconds) |
2021-06-01 19:40:43 +0200 | myShoggoth | (~myShoggot@97-120-89-117.ptld.qwest.net) |
2021-06-01 19:42:17 +0200 | shryke | (~shryke@91.103.43.254) (Ping timeout: 264 seconds) |
2021-06-01 19:42:57 +0200 | geekosaur | (~geekosaur@069-135-003-034.biz.spectrum.com) |
2021-06-01 19:43:29 +0200 | xff0x | (~xff0x@2001:1a81:52ca:4f00:7b0a:bab9:5836:8b3b) (Ping timeout: 252 seconds) |
2021-06-01 19:44:17 +0200 | xff0x | (~xff0x@2001:1a81:52ca:4f00:7e41:f92f:ed4d:a7b5) |
2021-06-01 19:45:20 +0200 | learner-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 +0200 | mccoyb | (~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 +0200 | the-coot[m] | (~the-cootm@2001:470:69fc:105::95f) |
2021-06-01 19:50:54 +0200 | a6a45081-2b83 | (~aditya@106.212.79.20) |
2021-06-01 19:51:18 +0200 | a6a45081-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 +0200 | y04nn | (~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 +0200 | azeem | (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) |
2021-06-01 19:54:48 +0200 | neceve | (~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 +0200 | lavaman | (~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 +0200 | ddellacosta | (~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 +0200 | oxide | (~lambda@61.0.149.238) (Changing host) |
2021-06-01 19:58:41 +0200 | oxide | (~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 +0200 | vicfred | (~vicfred@user/vicfred) |
2021-06-01 19:59:51 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 244 seconds) |
2021-06-01 20:00:22 +0200 | mccoyb | (~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 +0200 | mccoyb | (~textual@2601:182:d000:3b50:74fc:67c:ef8b:8632) |
2021-06-01 20:00:53 +0200 | ddellacosta | (~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 +0200 | wroathe | (~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 +0200 | wroathe | (~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 +0200 | igghibu | (~igghibu@91.193.5.46) |
2021-06-01 20:03:45 +0200 | dmwit | (~dmwit@pool-173-66-86-32.washdc.fios.verizon.net) (Ping timeout: 272 seconds) |
2021-06-01 20:07:21 +0200 | Guest31 | (~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 +0200 | qbt | (~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 +0200 | Guest929 | bor0 |
2021-06-01 20:14:48 +0200 | bor0 | (~boro@46.217.54.116) (Changing host) |
2021-06-01 20:14:48 +0200 | bor0 | (~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 +0200 | ubikium | (~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 +0200 | ubikium | (~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 +0200 | Bartosz | (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-01 20:17:07 +0200 | jorjor | (~jorgemene@85.251.190.6.dyn.user.ono.com) |
2021-06-01 20:17:31 +0200 | Bartosz | (~textual@24.35.90.211) |
2021-06-01 20:18:09 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-01 20:18:15 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-06-01 20:18:27 +0200 | prite | (~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 +0200 | Bartosz | (~textual@24.35.90.211) (Client Quit) |
2021-06-01 20:19:01 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
2021-06-01 20:19:09 +0200 | ubikium | (~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 +0200 | curiousgay | (~quassel@178.217.208.8) |
2021-06-01 20:22:48 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Remote host closed the connection) |
2021-06-01 20:24:25 +0200 | df | (~ben@51.15.198.140) |
2021-06-01 20:24:26 +0200 | sqrt2 | (~ben@tunnel330957-pt.tunnel.tserv6.fra1.ipv6.he.net) (Ping timeout: 265 seconds) |
2021-06-01 20:24:46 +0200 | allbery_b | (~geekosaur@069-135-003-034.biz.spectrum.com) |
2021-06-01 20:24:54 +0200 | geekosaur | (~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 264 seconds) |
2021-06-01 20:27:15 +0200 | sqrt2 | (~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 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-01 20:30:58 +0200 | ddellacosta | (~ddellacos@89.45.224.170) |
2021-06-01 20:31:36 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.1) |
2021-06-01 20:33:49 +0200 | jorjor | (~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 +0200 | neceve | (~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 +0200 | dunkeln | (~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 +0200 | eggplantade | (~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 +0200 | mcglk | (~mcglk@131.191.49.120) (Read error: Connection reset by peer) |
2021-06-01 20:44:05 +0200 | beka | (~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 +0200 | mcglk | (~mcglk@131.191.49.120) |
2021-06-01 20:45:32 +0200 | dss | (~dss@144.202.106.125) |
2021-06-01 20:46:18 +0200 | dss | (~dss@144.202.106.125) () |
2021-06-01 20:50:28 +0200 | benin | (~benin@183.82.205.186) (Quit: The Lounge - https://thelounge.chat) |
2021-06-01 20:51:25 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-01 20:53:35 +0200 | bor0 | (~boro@user/bor0) (Quit: This computer has gone to sleep) |
2021-06-01 20:54:44 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-01 20:55:28 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) |
2021-06-01 20:56:10 +0200 | Erutuon | (~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 +0200 | lavaman | (~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 +0200 | guest0123 | (~aaron@2601:602:a080:fa0:21da:7ddc:2cc6:a10c) () |
2021-06-01 21:01:33 +0200 | azeem | (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) (Read error: Connection reset by peer) |
2021-06-01 21:02:22 +0200 | dunkeln | (~dunkeln@94.129.65.28) (Ping timeout: 244 seconds) |
2021-06-01 21:03:55 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds) |
2021-06-01 21:06:35 +0200 | wallymathieu | (~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 +0200 | Torro | (Torro@gateway/vpn/protonvpn/torro) (Quit: bye) |
2021-06-01 21:11:05 +0200 | azeem | (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) |
2021-06-01 21:13:14 +0200 | mc47 | (~yecinem@89.246.239.190) (Remote host closed the connection) |
2021-06-01 21:13:32 +0200 | ku | (~ku@2601:280:c780:7ea0:d1c6:52a:4bf2:1ff2) (Ping timeout: 268 seconds) |
2021-06-01 21:15:01 +0200 | dunkeln | (~dunkeln@94.129.65.28) |
2021-06-01 21:15:46 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-06-01 21:17:36 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 265 seconds) |
2021-06-01 21:18:17 +0200 | sbmsr | (~pi@2600:1700:63d0:4830:7dbf:92d8:fd42:235d) (Quit: WeeChat 2.3) |
2021-06-01 21:18:52 +0200 | tremon | (~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl) |
2021-06-01 21:23:35 +0200 | dunkeln | (~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 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Remote host closed the connection) |
2021-06-01 21:25:37 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-01 21:26:41 +0200 | ppieters | (~ppieters@105-213-89-241.access.mtnbusiness.co.za) |
2021-06-01 21:27:13 +0200 | ku | (~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 +0200 | beka | (~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 +0200 | ppieters | (~ppieters@105-213-89-241.access.mtnbusiness.co.za) (Remote host closed the connection) |
2021-06-01 21:34:45 +0200 | ddellacosta | (~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 +0200 | mc47 | (~yecinem@89.246.239.190) |
2021-06-01 21:38:05 +0200 | hiptobecubic | (~john@c-73-55-99-95.hsd1.fl.comcast.net) |
2021-06-01 21:43:02 +0200 | brian_da_mage | (~Neuromanc@adsl-187.46.190.47.tellas.gr) |
2021-06-01 21:43:02 +0200 | brian_da_mage | (~Neuromanc@adsl-187.46.190.47.tellas.gr) (Changing host) |
2021-06-01 21:43:02 +0200 | brian_da_mage | (~Neuromanc@user/briandamag) |
2021-06-01 21:44:04 +0200 | Shaeto | (~Shaeto@94.25.234.213) (Quit: WeeChat 3.1) |
2021-06-01 21:44:29 +0200 | sqrt2 | (~ben@tunnel330957-pt.tunnel.tserv6.fra1.ipv6.he.net) (Ping timeout: 252 seconds) |
2021-06-01 21:44:41 +0200 | bor0 | (~boro@46.217.54.116) |
2021-06-01 21:44:41 +0200 | bor0 | (~boro@46.217.54.116) (Changing host) |
2021-06-01 21:44:41 +0200 | bor0 | (~boro@user/bor0) |
2021-06-01 21:44:53 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 272 seconds) |
2021-06-01 21:44:53 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-06-01 21:45:05 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 272 seconds) |
2021-06-01 21:45:32 +0200 | igghibu | (~igghibu@91.193.5.46) (Quit: Textual IRC Client: www.textualapp.com) |
2021-06-01 21:46:31 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-06-01 21:46:36 +0200 | Hecate | (~mariposa@163.172.211.189) (Changing host) |
2021-06-01 21:46:36 +0200 | Hecate | (~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 +0200 | vicfred | (~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 +0200 | chomwitt | (~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 +0200 | arson | (~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 +0200 | ec | (~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 +0200 | ddellacosta | (~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 +0200 | oxide | (~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 +0200 | oxide | (~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 +0200 | tromp | (~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 +0200 | sqrt2 | (~ben@tunnel330957-pt.tunnel.tserv6.fra1.ipv6.he.net) |
2021-06-01 22:08:05 +0200 | ddellacosta | (~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 +0200 | arrowd | (~arr@2.94.203.147) () |
2021-06-01 22:11:01 +0200 | <novasenco> | hm. oki. thanks |
2021-06-01 22:11:29 +0200 | justsomeguy | (~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 +0200 | ddellacosta | (~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 +0200 | AgentM | (~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 +0200 | Cubic | (~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 +0200 | dunkeln | (~dunkeln@94.129.65.28) |
2021-06-01 22:23:20 +0200 | ski | would use `<$>' |
2021-06-01 22:23:26 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2021-06-01 22:24:09 +0200 | eggplantade | (~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 +0200 | econo | (uid147250@user/econo) |
2021-06-01 22:25:04 +0200 | kuribas | (~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 +0200 | ixlun | (~matthew@109.249.184.235) |
2021-06-01 22:27:52 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-01 22:27:53 +0200 | michalz | (~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 +0200 | dpl_ | (~dpl@77-121-78-163.chn.volia.net) (Ping timeout: 264 seconds) |
2021-06-01 22:29:13 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Ping timeout: 272 seconds) |
2021-06-01 22:37:01 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 272 seconds) |
2021-06-01 22:37:13 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-01 22:41:14 +0200 | dpl_ | (~dpl@77-121-78-163.chn.volia.net) |
2021-06-01 22:41:18 +0200 | maralorn[m] | maralorn |
2021-06-01 22:44:34 +0200 | maralorn | (~maralorn@2001:470:69fc:105::251) (Quit: node-irc says goodbye) |
2021-06-01 22:44:50 +0200 | maralorn | (~maralorn@2001:470:69fc:105::251) |
2021-06-01 22:46:19 +0200 | arson | (~arson@pool-100-36-47-118.washdc.fios.verizon.net) () |
2021-06-01 22:46:21 +0200 | mc47 | (~yecinem@89.246.239.190) (Quit: Leaving) |
2021-06-01 22:48:28 +0200 | mccoyb | (~textual@2601:182:d000:3b50:74fc:67c:ef8b:8632) (Quit: Textual IRC Client: www.textualapp.com) |
2021-06-01 22:48:50 +0200 | Guest60 | (~Guest60@90.242.128.21) |
2021-06-01 22:50:19 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) |
2021-06-01 22:50:36 +0200 | Digit | (~user@user/digit) |
2021-06-01 22:51:54 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 244 seconds) |
2021-06-01 22:55:10 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 252 seconds) |
2021-06-01 22:57:19 +0200 | orzo | (joe@lasker.childrenofmay.org) (*.net *.split) |
2021-06-01 22:57:32 +0200 | orzo | (joe@lasker.childrenofmay.org) |
2021-06-01 22:57:39 +0200 | Guest60 | Abedegno |
2021-06-01 22:58:04 +0200 | ddellacosta | (~ddellacos@89.46.62.170) (Remote host closed the connection) |
2021-06-01 22:58:15 +0200 | ddellacosta | (~ddellacos@89.46.62.170) |
2021-06-01 22:59:57 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-01 23:01:13 +0200 | unyu | (~pyon@user/pyon) |
2021-06-01 23:01:37 +0200 | dy | (~dy@user/dy) |
2021-06-01 23:06:14 +0200 | Abedegno | (~Guest60@90.242.128.21) (Ping timeout: 250 seconds) |
2021-06-01 23:06:17 +0200 | beka | (~beka@104.193.170-254.PUBLIC.monkeybrains.net) (Ping timeout: 264 seconds) |
2021-06-01 23:06:26 +0200 | derelict | (~winter@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Ping timeout: 252 seconds) |
2021-06-01 23:07:23 +0200 | Ariakenom | (~Ariakenom@2001:9b1:efb:fc00:d9c3:69a3:f97b:be95) (Read error: Connection reset by peer) |
2021-06-01 23:08:37 +0200 | ddellacosta | (~ddellacos@89.46.62.170) (Remote host closed the connection) |
2021-06-01 23:09:52 +0200 | funsafe | (~funsafe@2601:1c1:4200:938f:389d:16a4:ae2d:65aa) (Quit: funsafe) |
2021-06-01 23:10:12 +0200 | funsafe | (~funsafe@2601:1c1:4200:938f:389d:16a4:ae2d:65aa) |
2021-06-01 23:11:43 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) (Remote host closed the connection) |
2021-06-01 23:14:08 +0200 | myShoggoth | (~myShoggot@97-120-89-117.ptld.qwest.net) (Ping timeout: 252 seconds) |
2021-06-01 23:15:16 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-01 23:15:24 +0200 | dunkeln | (~dunkeln@94.129.65.28) (Ping timeout: 272 seconds) |
2021-06-01 23:15:29 +0200 | sondre | (~sondrelun@cm-84.212.100.140.getinternet.no) |
2021-06-01 23:18:33 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-01 23:20:06 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
2021-06-01 23:20:49 +0200 | ixlun | (~matthew@109.249.184.235) (Read error: Connection reset by peer) |
2021-06-01 23:22:09 +0200 | dustinm | (~dustinm@static.38.6.217.95.clients.your-server.de) |
2021-06-01 23:26:48 +0200 | egoist | (~egoist@186.235.82.52) |
2021-06-01 23:26:57 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-06-01 23:27:55 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-01 23:30:23 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-06-01 23:32:34 +0200 | mccoyb | (~textual@2601:182:d000:3b50:74fc:67c:ef8b:8632) |
2021-06-01 23:32:37 +0200 | mccoyb | (~textual@2601:182:d000:3b50:74fc:67c:ef8b:8632) (Client Quit) |
2021-06-01 23:33:15 +0200 | wenzel_ | (~wenzel@user/wenzel) |
2021-06-01 23:33:36 +0200 | allbery_b | geekosaur |
2021-06-01 23:34:24 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-06-01 23:35:40 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
2021-06-01 23:36:18 +0200 | wenzel | (~wenzel@user/wenzel) (Ping timeout: 264 seconds) |
2021-06-01 23:37:18 +0200 | learner-monad | (~ehanneken@cpe-174-105-47-100.columbus.res.rr.com) (Quit: WeeChat 3.1) |
2021-06-01 23:37:25 +0200 | wenzel_ | (~wenzel@user/wenzel) (Client Quit) |
2021-06-01 23:39:25 +0200 | xsperry | (~as@user/xsperry) (Read error: Connection reset by peer) |
2021-06-01 23:39:52 +0200 | myShoggoth | (~myShoggot@97-120-89-117.ptld.qwest.net) |
2021-06-01 23:39:55 +0200 | mccoyb | (~textual@2601:182:d000:3b50:74fc:67c:ef8b:8632) |
2021-06-01 23:41:47 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2-dev) |
2021-06-01 23:43:47 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5878:fcfd:e07b:ffd9) |
2021-06-01 23:44:16 +0200 | imdoor | (~imdoor@balticom-142-78-50.balticom.lv) |
2021-06-01 23:44:20 +0200 | pbrisbin | (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) (Quit: WeeChat 3.1) |
2021-06-01 23:44:33 +0200 | pbrisbin | (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) |
2021-06-01 23:45:25 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-01 23:45:30 +0200 | ddellacosta | (~ddellacos@89.45.224.40) |
2021-06-01 23:45:51 +0200 | bfrk | (~Thunderbi@200116b84593d400e083e41adfb91d63.dip.versatel-1u1.de) (Ping timeout: 268 seconds) |
2021-06-01 23:46:26 +0200 | notzmv | (~zmv@user/notzmv) |
2021-06-01 23:47:15 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Quit: Lost terminal) |
2021-06-01 23:50:06 +0200 | ddellacosta | (~ddellacos@89.45.224.40) (Ping timeout: 264 seconds) |
2021-06-01 23:51:24 +0200 | sheepduck | (~sheepduck@2607:fea8:2a60:b700::8a94) (Remote host closed the connection) |
2021-06-01 23:52:27 +0200 | vdukhovni | (~vdukhovni@100.2.39.101) |
2021-06-01 23:53:14 +0200 | Digit | (~user@user/digit) (Ping timeout: 265 seconds) |
2021-06-01 23:54:14 +0200 | beka | (~beka@104.193.170-254.PUBLIC.monkeybrains.net) |
2021-06-01 23:54:18 +0200 | mccoyb | (~textual@2601:182:d000:3b50:74fc:67c:ef8b:8632) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
2021-06-01 23:56:06 +0200 | sheepduck | (~sheepduck@2607:fea8:2a60:b700::8a94) |
2021-06-01 23:56:56 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |