2021-07-01 00:00:13 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Quit: mikoto-chan) |
2021-07-01 00:00:42 +0200 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 272 seconds) |
2021-07-01 00:00:56 +0200 | Morrow | (~MorrowM_@147.161.13.35) (Ping timeout: 252 seconds) |
2021-07-01 00:01:54 +0200 | <ephemient> | chris_: https://rufflewind.com/2014-08-03/haskell-numeric-type-classes-hierarchy |
2021-07-01 00:04:05 +0200 | tlaxkit | (~hexchat@170.253.43.19) |
2021-07-01 00:04:57 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 00:05:38 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 00:05:50 +0200 | warnz | (~warnz@2600:1700:77c0:5610:409d:bff0:fc58:d5c4) (Remote host closed the connection) |
2021-07-01 00:06:14 +0200 | dudek | (~dudek@185.150.236.112) (Quit: Leaving) |
2021-07-01 00:06:40 +0200 | chris_ | (~chris@81.96.113.213) (Read error: Connection reset by peer) |
2021-07-01 00:06:52 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 00:08:19 +0200 | amesgen[m] | (~amesgenm]@2001:470:69fc:105::82b) (Remote host closed the connection) |
2021-07-01 00:08:20 +0200 | gxt | (~gxt@2001:470:69fc:105::3513) (Remote host closed the connection) |
2021-07-01 00:08:20 +0200 | jaror[m] | (~jaror@2001:470:69fc:105::265) (Remote host closed the connection) |
2021-07-01 00:08:20 +0200 | aveltras[m] | (~aveltrasm@2001:470:69fc:105::3ef9) (Read error: Connection reset by peer) |
2021-07-01 00:08:20 +0200 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) (Read error: Connection reset by peer) |
2021-07-01 00:08:20 +0200 | jellz[m] | (~jellzmatr@2001:470:69fc:105::2daa) (Read error: Connection reset by peer) |
2021-07-01 00:08:20 +0200 | ru0mad[m] | (~ru0madmat@2001:470:69fc:105::9b2) (Write error: Connection reset by peer) |
2021-07-01 00:08:20 +0200 | vaibhavsagar[m] | (~vaibhavsa@2001:470:69fc:105::ffe) (Read error: Connection reset by peer) |
2021-07-01 00:08:20 +0200 | the-coot[m] | (~the-cootm@2001:470:69fc:105::95f) (Read error: Connection reset by peer) |
2021-07-01 00:08:21 +0200 | eddiemundo | (~eddiemund@2001:470:69fc:105::a9c) (Remote host closed the connection) |
2021-07-01 00:08:21 +0200 | unrooted | (~unrooted@2001:470:69fc:105::a4a) (Remote host closed the connection) |
2021-07-01 00:08:21 +0200 | hjulle[m] | (~hjullemat@2001:470:69fc:105::1dd) (Remote host closed the connection) |
2021-07-01 00:08:21 +0200 | carmysilna | (~brightly-@2001:470:69fc:105::2190) (Read error: Connection reset by peer) |
2021-07-01 00:08:21 +0200 | kosmikus[m] | (~andresloe@2001:470:69fc:105::95d) (Remote host closed the connection) |
2021-07-01 00:08:21 +0200 | ServerStatsDisco | (~serversta@2001:470:69fc:105::1a) (Write error: Connection reset by peer) |
2021-07-01 00:08:22 +0200 | Drezil | (~drezilkif@2001:470:69fc:105::7f8) (Read error: Connection reset by peer) |
2021-07-01 00:08:22 +0200 | dualinverter[m] | (~dualinver@2001:470:69fc:105::16a7) (Read error: Connection reset by peer) |
2021-07-01 00:08:22 +0200 | yin[m] | (~zwromatri@2001:470:69fc:105::1d4) (Read error: Connection reset by peer) |
2021-07-01 00:08:22 +0200 | jakefromstatefar | (~jakefroms@2001:470:69fc:105::15ef) (Read error: Connection reset by peer) |
2021-07-01 00:08:22 +0200 | hsiktas[m] | (~hsiktasma@2001:470:69fc:105::30d4) (Read error: Connection reset by peer) |
2021-07-01 00:08:22 +0200 | ixlun | (~ixlun@2001:470:69fc:105::41b3) (Write error: Connection reset by peer) |
2021-07-01 00:08:22 +0200 | siraben | (~siraben@user/siraben) (Write error: Connection reset by peer) |
2021-07-01 00:08:23 +0200 | fgaz | (~fgaz@2001:470:69fc:105::842) (Write error: Connection reset by peer) |
2021-07-01 00:08:23 +0200 | vbeatrice[m] | (~vbeatrice@2001:470:69fc:105::3ebf) (Remote host closed the connection) |
2021-07-01 00:08:24 +0200 | ormaaj | (~ormaaj@user/ormaaj) (Read error: Connection reset by peer) |
2021-07-01 00:08:24 +0200 | psydroid | (~psydroid@user/psydroid) (Write error: Connection reset by peer) |
2021-07-01 00:08:24 +0200 | Soft | (~soft-matr@2001:470:69fc:105::c75) (Remote host closed the connection) |
2021-07-01 00:08:24 +0200 | RohitGoswami[m] | (~rgoswamim@2001:470:69fc:105::16cc) (Remote host closed the connection) |
2021-07-01 00:08:24 +0200 | cdsmith | (~cdsmithma@2001:470:69fc:105::284) (Remote host closed the connection) |
2021-07-01 00:08:24 +0200 | dminuoso[m] | (~dminuosom@2001:470:69fc:105::33bb) (Remote host closed the connection) |
2021-07-01 00:08:24 +0200 | autrim64[m] | (~autrim64m@2001:470:69fc:105::16a1) (Write error: Connection reset by peer) |
2021-07-01 00:08:24 +0200 | Ollie[m] | (~ollieocha@2001:470:69fc:105::41a5) (Remote host closed the connection) |
2021-07-01 00:08:24 +0200 | MatrixTravelerbo | (~voyagert2@2001:470:69fc:105::22) (Read error: Connection reset by peer) |
2021-07-01 00:08:24 +0200 | unclechu | (~unclechu@2001:470:69fc:105::354) (Read error: Connection reset by peer) |
2021-07-01 00:08:25 +0200 | bitonic | (~bitonic@2001:470:69fc:105::1812) (Remote host closed the connection) |
2021-07-01 00:08:25 +0200 | ecameron[m] | (~ecameronm@2001:470:69fc:105::35df) (Remote host closed the connection) |
2021-07-01 00:08:26 +0200 | kadoban | (~kadoban@user/kadoban) (Write error: Connection reset by peer) |
2021-07-01 00:08:26 +0200 | inkbottle[m] | (~inkbottle@2001:470:69fc:105::2ff5) (Write error: Connection reset by peer) |
2021-07-01 00:08:26 +0200 | sm[m] | (~sm@plaintextaccounting/sm) (Write error: Connection reset by peer) |
2021-07-01 00:08:26 +0200 | Orbstheorem | (~orbstheor@2001:470:69fc:105::a56) (Remote host closed the connection) |
2021-07-01 00:08:26 +0200 | marinelli[m] | (~marinelli@2001:470:69fc:105::2d8) (Remote host closed the connection) |
2021-07-01 00:08:26 +0200 | tomferon[m] | (~tomferon@2001:470:69fc:105::268) (Remote host closed the connection) |
2021-07-01 00:08:26 +0200 | Las[m] | (~lasmatrix@2001:470:69fc:105::74e) (Write error: Broken pipe) |
2021-07-01 00:08:26 +0200 | oak- | (~oakuniver@2001:470:69fc:105::fcd) (Remote host closed the connection) |
2021-07-01 00:08:26 +0200 | jophish | (~jophish@2001:470:69fc:105::670) (Remote host closed the connection) |
2021-07-01 00:08:27 +0200 | zfnmxt | (~zfnmxtzfn@2001:470:69fc:105::2b32) (Remote host closed the connection) |
2021-07-01 00:08:27 +0200 | peddie | (~peddie@2001:470:69fc:105::25d) (Read error: Connection reset by peer) |
2021-07-01 00:08:27 +0200 | justosophy[m] | (~justosoph@2001:470:69fc:105::572f) (Read error: Connection reset by peer) |
2021-07-01 00:08:27 +0200 | ericson2314 | (~ericson23@2001:470:69fc:105::70c) (Write error: Connection reset by peer) |
2021-07-01 00:08:27 +0200 | bb010g | (~bb010g@2001:470:69fc:105::9a5) (Write error: Connection reset by peer) |
2021-07-01 00:08:27 +0200 | lwe[m] | (~dendrumat@2001:470:69fc:105::2f9b) (Read error: Connection reset by peer) |
2021-07-01 00:08:27 +0200 | reza[m] | (~rezaphone@2001:470:69fc:105::3eda) (Write error: Connection reset by peer) |
2021-07-01 00:08:27 +0200 | sridonhiatus[m] | (~sridmatri@2001:470:69fc:105::1c2) (Read error: Connection reset by peer) |
2021-07-01 00:08:28 +0200 | Deewiant | (~deewiant@2001:470:69fc:105::2fd3) (Read error: Connection reset by peer) |
2021-07-01 00:08:33 +0200 | Artem[m] | (~artemtype@2001:470:69fc:105::75b) (Remote host closed the connection) |
2021-07-01 00:08:33 +0200 | cdepillabout[m] | (~cdepillab@2001:470:69fc:105::3d3) (Remote host closed the connection) |
2021-07-01 00:08:33 +0200 | ac | (~aloiscoch@2001:470:69fc:105::65) (Read error: Connection reset by peer) |
2021-07-01 00:08:34 +0200 | fabfianda[m] | (~fabfianda@2001:470:69fc:105::6db) (Remote host closed the connection) |
2021-07-01 00:08:34 +0200 | maralorn | (~maralorn@2001:470:69fc:105::251) (Remote host closed the connection) |
2021-07-01 00:08:34 +0200 | thedward[m] | (~thedwardm@2001:470:69fc:105::f79) (Remote host closed the connection) |
2021-07-01 00:08:34 +0200 | Guest2487 | (~sylveonma@2001:470:69fc:105::2d95) (Remote host closed the connection) |
2021-07-01 00:08:34 +0200 | Morrow[m] | (~morrowmma@2001:470:69fc:105::1d0) (Remote host closed the connection) |
2021-07-01 00:08:34 +0200 | bryan[m] | (~bchreekat@2001:470:69fc:105::16b5) (Remote host closed the connection) |
2021-07-01 00:08:34 +0200 | adziahel[m] | (~adziahelm@2001:470:69fc:105::b4d) (Remote host closed the connection) |
2021-07-01 00:08:34 +0200 | wallymathieu[m] | (~wallymath@2001:470:69fc:105::16ae) (Remote host closed the connection) |
2021-07-01 00:08:34 +0200 | boxscape | (~boxscape@user/boxscape) (Write error: Connection reset by peer) |
2021-07-01 00:08:34 +0200 | Aleci[m] | (~alecilibr@2001:470:69fc:105::32e7) (Write error: Broken pipe) |
2021-07-01 00:10:00 +0200 | thedward[m] | (~thedwardm@2001:470:69fc:105::f79) |
2021-07-01 00:12:13 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2021-07-01 00:12:36 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4) (Read error: Connection reset by peer) |
2021-07-01 00:12:38 +0200 | laguneucl | (~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4) |
2021-07-01 00:18:34 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-07-01 00:20:59 +0200 | jumper149 | (~jumper149@80.240.31.34) (Quit: WeeChat 3.1) |
2021-07-01 00:21:58 +0200 | ac | (~aloiscoch@2001:470:69fc:105::65) |
2021-07-01 00:21:58 +0200 | psydroid | (~psydroid@user/psydroid) |
2021-07-01 00:21:58 +0200 | hjulle[m] | (~hjullemat@2001:470:69fc:105::1dd) |
2021-07-01 00:21:58 +0200 | MatrixTravelerbo | (~voyagert2@2001:470:69fc:105::22) |
2021-07-01 00:21:58 +0200 | sm[m] | (~sm@plaintextaccounting/sm) |
2021-07-01 00:21:58 +0200 | fgaz | (~fgaz@2001:470:69fc:105::842) |
2021-07-01 00:21:58 +0200 | jaror[m] | (~jaror@2001:470:69fc:105::265) |
2021-07-01 00:21:58 +0200 | peddie | (~peddie@2001:470:69fc:105::25d) |
2021-07-01 00:21:58 +0200 | cdsmith | (~cdsmithma@2001:470:69fc:105::284) |
2021-07-01 00:21:58 +0200 | tomferon[m] | (~tomferon@2001:470:69fc:105::268) |
2021-07-01 00:21:58 +0200 | ru0mad[m] | (~ru0madmat@2001:470:69fc:105::9b2) |
2021-07-01 00:21:58 +0200 | fabfianda[m] | (~fabfianda@2001:470:69fc:105::6db) |
2021-07-01 00:21:58 +0200 | bb010g | (~bb010g@2001:470:69fc:105::9a5) |
2021-07-01 00:21:58 +0200 | Las[m] | (~lasmatrix@2001:470:69fc:105::74e) |
2021-07-01 00:21:58 +0200 | Artem[m] | (~artemtype@2001:470:69fc:105::75b) |
2021-07-01 00:21:59 +0200 | ServerStatsDisco | (~serversta@2001:470:69fc:105::1a) |
2021-07-01 00:21:59 +0200 | cdepillabout[m] | (~cdepillab@2001:470:69fc:105::3d3) |
2021-07-01 00:21:59 +0200 | amesgen[m] | (~amesgenm]@2001:470:69fc:105::82b) |
2021-07-01 00:21:59 +0200 | the-coot[m] | (~the-cootm@2001:470:69fc:105::95f) |
2021-07-01 00:21:59 +0200 | eddiemundo | (~eddiemund@2001:470:69fc:105::a9c) |
2021-07-01 00:21:59 +0200 | vaibhavsagar[m] | (~vaibhavsa@2001:470:69fc:105::ffe) |
2021-07-01 00:21:59 +0200 | zfnmxt | (~zfnmxtzfn@2001:470:69fc:105::2b32) |
2021-07-01 00:21:59 +0200 | kadoban | (~kadoban@user/kadoban) |
2021-07-01 00:21:59 +0200 | bitonic | (~bitonic@2001:470:69fc:105::1812) |
2021-07-01 00:21:59 +0200 | jophish | (~jophish@2001:470:69fc:105::670) |
2021-07-01 00:21:59 +0200 | carmysilna | (~brightly-@2001:470:69fc:105::2190) |
2021-07-01 00:21:59 +0200 | ericson2314 | (~ericson23@2001:470:69fc:105::70c) |
2021-07-01 00:21:59 +0200 | siraben | (~siraben@user/siraben) |
2021-07-01 00:21:59 +0200 | unclechu | (~unclechu@2001:470:69fc:105::354) |
2021-07-01 00:21:59 +0200 | Deewiant | (~deewiant@2001:470:69fc:105::2fd3) |
2021-07-01 00:21:59 +0200 | unrooted | (~unrooted@2001:470:69fc:105::a4a) |
2021-07-01 00:21:59 +0200 | bryan[m] | (~bchreekat@2001:470:69fc:105::16b5) |
2021-07-01 00:21:59 +0200 | Aleci[m] | (~alecilibr@2001:470:69fc:105::32e7) |
2021-07-01 00:21:59 +0200 | lwe[m] | (~dendrumat@2001:470:69fc:105::2f9b) |
2021-07-01 00:21:59 +0200 | maralorn | (~maralorn@2001:470:69fc:105::251) |
2021-07-01 00:21:59 +0200 | inkbottle[m] | (~inkbottle@2001:470:69fc:105::2ff5) |
2021-07-01 00:21:59 +0200 | reza[m] | (~rezaphone@2001:470:69fc:105::3eda) |
2021-07-01 00:21:59 +0200 | gxt | (~gxt@2001:470:69fc:105::3513) |
2021-07-01 00:22:00 +0200 | marinelli[m] | (~marinelli@2001:470:69fc:105::2d8) |
2021-07-01 00:22:00 +0200 | hsiktas[m] | (~hsiktasma@2001:470:69fc:105::30d4) |
2021-07-01 00:22:00 +0200 | boxscape | (~boxscape@user/boxscape) |
2021-07-01 00:22:00 +0200 | vbeatrice[m] | (~vbeatrice@2001:470:69fc:105::3ebf) |
2021-07-01 00:22:00 +0200 | ormaaj | (~ormaaj@user/ormaaj) |
2021-07-01 00:22:00 +0200 | sridonhiatus[m] | (~sridmatri@2001:470:69fc:105::1c2) |
2021-07-01 00:22:00 +0200 | Orbstheorem | (~orbstheor@2001:470:69fc:105::a56) |
2021-07-01 00:22:00 +0200 | jakefromstatefar | (~jakefroms@2001:470:69fc:105::15ef) |
2021-07-01 00:22:10 +0200 | dualinverter[m] | (~dualinver@2001:470:69fc:105::16a7) |
2021-07-01 00:22:10 +0200 | adziahel[m] | (~adziahelm@2001:470:69fc:105::b4d) |
2021-07-01 00:22:10 +0200 | Soft | (~soft-matr@2001:470:69fc:105::c75) |
2021-07-01 00:22:10 +0200 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) |
2021-07-01 00:22:10 +0200 | wallymathieu[m] | (~wallymath@2001:470:69fc:105::16ae) |
2021-07-01 00:22:10 +0200 | Morrow[m] | (~morrowmma@2001:470:69fc:105::1d0) |
2021-07-01 00:22:10 +0200 | Drezil | (~drezilkif@2001:470:69fc:105::7f8) |
2021-07-01 00:22:11 +0200 | kosmikus[m] | (~andresloe@2001:470:69fc:105::95d) |
2021-07-01 00:22:11 +0200 | autrim64[m] | (~autrim64m@2001:470:69fc:105::16a1) |
2021-07-01 00:22:11 +0200 | dminuoso[m] | (~dminuosom@2001:470:69fc:105::33bb) |
2021-07-01 00:22:11 +0200 | yin[m] | (~zwromatri@2001:470:69fc:105::1d4) |
2021-07-01 00:22:11 +0200 | RohitGoswami[m] | (~rgoswamim@2001:470:69fc:105::16cc) |
2021-07-01 00:22:11 +0200 | oak- | (~oakuniver@2001:470:69fc:105::fcd) |
2021-07-01 00:22:12 +0200 | ecameron[m] | (~ecameronm@2001:470:69fc:105::35df) |
2021-07-01 00:22:12 +0200 | aveltras[m] | (~aveltrasm@2001:470:69fc:105::3ef9) |
2021-07-01 00:22:12 +0200 | Ollie[m] | (~ollieocha@2001:470:69fc:105::41a5) |
2021-07-01 00:22:12 +0200 | jellz[m] | (~jellzmatr@2001:470:69fc:105::2daa) |
2021-07-01 00:22:12 +0200 | justosophy[m] | (~justosoph@2001:470:69fc:105::572f) |
2021-07-01 00:22:12 +0200 | ixlun | (~ixlun@2001:470:69fc:105::41b3) |
2021-07-01 00:22:13 +0200 | Sylveon | (~sylveonma@2001:470:69fc:105::2d95) |
2021-07-01 00:22:35 +0200 | Sylveon | Guest3990 |
2021-07-01 00:22:55 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-01 00:27:06 +0200 | norias | (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Ping timeout: 240 seconds) |
2021-07-01 00:28:16 +0200 | <qrpnxz> | i got a sort of <<loop>> error when i tried to do an `any pred`, but `all (not . pred)` worked. Weird. |
2021-07-01 00:31:04 +0200 | tlaxkit | (~hexchat@170.253.43.19) (Quit: Saliendo...) |
2021-07-01 00:31:52 +0200 | Morrow | (~MorrowM_@147.161.13.35) |
2021-07-01 00:33:27 +0200 | Morrow | (~MorrowM_@147.161.13.35) (Read error: Connection reset by peer) |
2021-07-01 00:33:43 +0200 | cjb | (~cjb@user/cjb) |
2021-07-01 00:33:46 +0200 | Morrow | (~MorrowM_@147.161.13.35) |
2021-07-01 00:36:28 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dc49:b28b:5485:3e7e) (Remote host closed the connection) |
2021-07-01 00:37:39 +0200 | <chris_> | thx ephemient, monochrom will read up on your stuff. am making food |
2021-07-01 00:38:15 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4) |
2021-07-01 00:38:42 +0200 | [deleted] | (~zmv@user/notzmv) (Ping timeout: 272 seconds) |
2021-07-01 00:39:30 +0200 | zeenk | (~zeenk@2a02:2f04:a106:9600:82fb:aed9:ca9:38d3) (Quit: Konversation terminated!) |
2021-07-01 00:40:42 +0200 | laguneucl | (~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4) (Ping timeout: 240 seconds) |
2021-07-01 00:41:03 +0200 | <int-e> | qrpnxz: well, these are negations of each other. |
2021-07-01 00:43:00 +0200 | mikail | (~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f) (Ping timeout: 256 seconds) |
2021-07-01 00:44:15 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
2021-07-01 00:47:23 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds) |
2021-07-01 00:49:36 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2021-07-01 00:50:23 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-01 00:55:12 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
2021-07-01 00:59:26 +0200 | gentauro | (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
2021-07-01 00:59:45 +0200 | gentauro | (~gentauro@user/gentauro) |
2021-07-01 01:01:14 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:01:30 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dc49:b28b:5485:3e7e) |
2021-07-01 01:01:51 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:03:03 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:03:17 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:03:25 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:04:41 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:04:44 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:05:22 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:05:40 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:05:52 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:05:56 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:06:20 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2021-07-01 01:06:34 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:06:53 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:07:05 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:07:09 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:07:35 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-01 01:07:49 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:08:07 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:08:19 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:08:24 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:09:03 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:09:13 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:09:24 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:09:29 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:10:06 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:10:25 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:10:39 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:10:41 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:11:17 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:11:34 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:11:47 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:11:50 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:12:28 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:12:51 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:13:03 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:13:07 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:13:45 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:14:08 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:14:20 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:14:24 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:14:58 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:15:13 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:15:16 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 268 seconds) |
2021-07-01 01:15:27 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:15:29 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:16:05 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:16:17 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:16:31 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:16:34 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:17:13 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:17:25 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:17:37 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:17:42 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:18:19 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:18:34 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:18:47 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:18:50 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:19:29 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:19:45 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:19:57 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:20:02 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:20:24 +0200 | cheater1__ | (~Username@user/cheater) |
2021-07-01 01:20:30 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 272 seconds) |
2021-07-01 01:20:37 +0200 | cheater1__ | cheater |
2021-07-01 01:21:19 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:21:24 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:22:01 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:22:18 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:22:30 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:22:34 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:23:12 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:23:25 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:23:37 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:23:41 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 01:24:17 +0200 | awth13 | (~user@user/awth13) |
2021-07-01 01:24:18 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 01:24:22 +0200 | chris_ | (~chris@81.96.113.213) (K-Lined) |
2021-07-01 01:25:56 +0200 | obfusk_ | (~quassel@a82-161-150-56.adsl.xs4all.nl) |
2021-07-01 01:28:34 +0200 | obfusk | (~quassel@a82-161-150-56.adsl.xs4all.nl) (Ping timeout: 252 seconds) |
2021-07-01 01:31:44 +0200 | obfusk_ | (~quassel@a82-161-150-56.adsl.xs4all.nl) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2021-07-01 01:31:54 +0200 | obfusk | (~quassel@a82-161-150-56.adsl.xs4all.nl) |
2021-07-01 01:42:02 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-07-01 01:44:18 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
2021-07-01 01:48:40 +0200 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2021-07-01 01:49:06 +0200 | delYsid | (~user@84-115-55-45.cable.dynamic.surfer.at) (Remote host closed the connection) |
2021-07-01 01:49:18 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 256 seconds) |
2021-07-01 01:49:43 +0200 | favonia | (~favonia@user/favonia) |
2021-07-01 01:50:19 +0200 | Morrow | (~MorrowM_@147.161.13.35) (Read error: Connection reset by peer) |
2021-07-01 01:50:38 +0200 | Morrow | (~MorrowM_@147.161.13.35) |
2021-07-01 01:50:54 +0200 | ham2 | (~ham4@d8D8627D5.access.telenet.be) (Ping timeout: 272 seconds) |
2021-07-01 01:51:19 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 01:55:09 +0200 | Ariakenom | (~Ariakenom@c83-255-154-140.bredband.tele2.se) |
2021-07-01 01:56:06 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 256 seconds) |
2021-07-01 02:00:02 +0200 | zopsi | (zopsi@2600:3c00::f03c:91ff:fe14:551f) (Quit: Oops) |
2021-07-01 02:00:20 +0200 | zopsi | (zopsi@2600:3c00::f03c:91ff:fe14:551f) |
2021-07-01 02:00:49 +0200 | Ariakenom | (~Ariakenom@c83-255-154-140.bredband.tele2.se) (Ping timeout: 265 seconds) |
2021-07-01 02:01:38 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dc49:b28b:5485:3e7e) (Remote host closed the connection) |
2021-07-01 02:13:21 +0200 | TranquilEcho | (~grom@user/tranquilecho) |
2021-07-01 02:14:09 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-07-01 02:20:41 +0200 | tdammers | (~tdammers@77.109.72.213.res.static.edpnet.net) (Ping timeout: 272 seconds) |
2021-07-01 02:20:42 +0200 | chexum | (~chexum@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2021-07-01 02:20:56 +0200 | chexum | (~chexum@gateway/tor-sasl/chexum) |
2021-07-01 02:21:36 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 265 seconds) |
2021-07-01 02:22:01 +0200 | cheater | (~Username@user/cheater) |
2021-07-01 02:22:38 +0200 | sheepduck | (~sheepduck@user/sheepduck) |
2021-07-01 02:22:46 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dc49:b28b:5485:3e7e) |
2021-07-01 02:22:58 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection) |
2021-07-01 02:23:36 +0200 | cmburnett | (~cmburnett@c-73-37-184-31.hsd1.mn.comcast.net) |
2021-07-01 02:25:34 +0200 | tdammers | (~tdammers@77.109.72.213.res.static.edpnet.net) |
2021-07-01 02:25:54 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-07-01 02:28:39 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds) |
2021-07-01 02:28:51 +0200 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 265 seconds) |
2021-07-01 02:29:49 +0200 | pagnol | (~user@014198154145.ctinets.com) (Ping timeout: 265 seconds) |
2021-07-01 02:30:40 +0200 | Morrow | (~MorrowM_@147.161.13.35) (Ping timeout: 256 seconds) |
2021-07-01 02:34:06 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-01 02:35:14 +0200 | obfusk | (~quassel@a82-161-150-56.adsl.xs4all.nl) (Ping timeout: 272 seconds) |
2021-07-01 02:35:36 +0200 | dajoer | (~david@user/gvx) |
2021-07-01 02:40:19 +0200 | Morrow | (~MorrowM_@147.161.13.35) |
2021-07-01 02:43:35 +0200 | norias | (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) |
2021-07-01 02:43:43 +0200 | obfusk | (~quassel@a82-161-150-56.adsl.xs4all.nl) |
2021-07-01 02:44:56 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dc49:b28b:5485:3e7e) (Remote host closed the connection) |
2021-07-01 02:46:30 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dc49:b28b:5485:3e7e) |
2021-07-01 02:47:16 +0200 | hegstal | (~hegstal@2a02:c7f:7604:8a00:1749:70f2:c3b4:7591) (Remote host closed the connection) |
2021-07-01 02:47:33 +0200 | Deide | (~Deide@user/deide) (Quit: Seeee yaaaa) |
2021-07-01 02:48:58 +0200 | notzmv | (~zmv@user/notzmv) |
2021-07-01 02:51:08 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-01 02:55:50 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
2021-07-01 02:55:54 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-07-01 02:56:10 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 256 seconds) |
2021-07-01 02:56:28 +0200 | favonia | (~favonia@user/favonia) |
2021-07-01 02:58:30 +0200 | Nolrai | (~Nolrai@c-76-27-202-218.hsd1.or.comcast.net) |
2021-07-01 02:58:55 +0200 | willbush | (~user@47.183.200.14) |
2021-07-01 03:02:28 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 272 seconds) |
2021-07-01 03:02:46 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-01 03:03:54 +0200 | pbrisbin | (~patrick@pool-173-49-147-28.phlapa.fios.verizon.net) (Ping timeout: 240 seconds) |
2021-07-01 03:05:14 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4) (Ping timeout: 256 seconds) |
2021-07-01 03:05:30 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 240 seconds) |
2021-07-01 03:07:33 +0200 | <dsal> | I have a really dumb basic question. I've been doing a bit of refactoring around an API change I made and I found myself doing `Just x = ...` in a where clause once or twice. I realized I don't exactly understand what that does. |
2021-07-01 03:07:43 +0200 | <dsal> | Can someone help my mental model be a bit more complete here? |
2021-07-01 03:08:17 +0200 | machinedgod | (~machinedg@24.105.81.50) |
2021-07-01 03:08:40 +0200 | <Axman6> | it's an irrefutable pattern match, it basically creates code that looks like case ... of Just x -> <define x>; Nothing -> error "pattern match failed" |
2021-07-01 03:09:08 +0200 | <Axman6> | it's generally not a safe thing to do, but if you know the result is guaranteed to be Just, it's fine |
2021-07-01 03:09:44 +0200 | <dsal> | Yeah, I think I understood the safety of it and stuff, I just had a bit of trouble understanding what it actually did. My mental model isn't quite right there. |
2021-07-01 03:09:46 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 256 seconds) |
2021-07-01 03:10:04 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-01 03:10:14 +0200 | favonia | (~favonia@user/favonia) |
2021-07-01 03:10:35 +0200 | <Axman6> | it's just a pattern match, the same as you can do let (x,y) = (x0+1,y0+2) to give definitions for x and y |
2021-07-01 03:11:23 +0200 | <dsal> | I guess it doesn't make sense to ask what to do if it's `Nothing` because there's no `x` to name. |
2021-07-01 03:11:39 +0200 | <c_wraith> | Whoa.. it's not like that case expression in one important detail |
2021-07-01 03:12:00 +0200 | <c_wraith> | It's an irrefutable match, which means that unlike a case statement, it won't be evaluated before choosing a branch |
2021-07-01 03:12:01 +0200 | <Axman6> | it throws an error |
2021-07-01 03:12:18 +0200 | <c_wraith> | the pattern match is only done when x is evaluated |
2021-07-01 03:12:32 +0200 | <Nolrai> | So, are Control.Lens style lenses worth using? I am using them with a small/medium size project and they just seem to make refactoring harder. |
2021-07-01 03:12:38 +0200 | hammock | (~Hammock@2600:1700:19a1:3330::625) |
2021-07-01 03:12:38 +0200 | <dsal> | I think that's also part of my confusion. So when does stuff break? |
2021-07-01 03:12:53 +0200 | <c_wraith> | > let Just x = Nothing in "hello" |
2021-07-01 03:12:54 +0200 | <lambdabot> | "hello" |
2021-07-01 03:13:05 +0200 | <c_wraith> | > case Nothing of Just x -> "hello" |
2021-07-01 03:13:07 +0200 | <lambdabot> | "*Exception: <interactive>:(3,1)-(4,22): Non-exhaustive patterns in case |
2021-07-01 03:13:11 +0200 | <Axman6> | > let Just x = Nothing in x + 1 :: Int |
2021-07-01 03:13:13 +0200 | <lambdabot> | *Exception: <interactive>:3:5-20: Non-exhaustive patterns in Just x |
2021-07-01 03:13:16 +0200 | <Nolrai> | @c_wraith so its more like `do ~(x, y) = ` |
2021-07-01 03:13:16 +0200 | <lambdabot> | Unknown command, try @list |
2021-07-01 03:13:32 +0200 | <c_wraith> | yes, ~ is how you explicitly introduce irrefutable matches |
2021-07-01 03:13:42 +0200 | <c_wraith> | > case Nothing of ~(Just x) -> "hello" |
2021-07-01 03:13:44 +0200 | <lambdabot> | "hello" |
2021-07-01 03:14:14 +0200 | <dsal> | Nolrai: what do you find is harder in refactoring lens? |
2021-07-01 03:15:00 +0200 | Morrow | (~MorrowM_@147.161.13.35) (Read error: Connection reset by peer) |
2021-07-01 03:15:21 +0200 | MorrowM | (~MorrowM_@147.161.13.35) |
2021-07-01 03:15:47 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-07-01 03:15:49 +0200 | <c_wraith> | it's funny, the lens laws exist specifically so that you can refactor without thinking about it. (this is the problem law-breaking optics cause - you have to think when you refactor) |
2021-07-01 03:16:14 +0200 | <Axman6> | yeah also curious what problems you're running into Nolrai |
2021-07-01 03:16:44 +0200 | MorrowM | (~MorrowM_@147.161.13.35) (Remote host closed the connection) |
2021-07-01 03:17:30 +0200 | xff0x | (~xff0x@2001:1a81:53f8:b100:933a:3ba5:1174:9474) (Ping timeout: 240 seconds) |
2021-07-01 03:17:31 +0200 | Morrow | (~MorrowM_@147.161.13.35) |
2021-07-01 03:19:34 +0200 | <Nolrai> | Hmm. Actually this is really weird, hmm. I am not sure its the Lens librarie's fault, function arguments just seem to be missing all over the place. What did I do?!? |
2021-07-01 03:19:44 +0200 | xff0x | (~xff0x@2001:1a81:5237:1000:d9df:afaf:2f58:a5ba) |
2021-07-01 03:20:50 +0200 | <Nolrai> | It doesn't help that the VSCode Haskell plugin keeps crashing or hanging. |
2021-07-01 03:21:53 +0200 | <dsal> | Every time I `type X = Y` something and then go back and change `X` to a `newtype`, I find all kinds of places I got sloppy. I am beginning to consider `type` harmful. |
2021-07-01 03:21:54 +0200 | Morrow | (~MorrowM_@147.161.13.35) (Ping timeout: 240 seconds) |
2021-07-01 03:22:14 +0200 | <Nolrai> | I consider type harmful. |
2021-07-01 03:22:32 +0200 | <Cale> | Mostly it is, yeah |
2021-07-01 03:22:43 +0200 | <Nolrai> | Or rather it should only be used for abreviations. |
2021-07-01 03:23:22 +0200 | <Cale> | I think Lens can kind of get away with it only because what its synonyms unfold to is pretty uniform, and you sort of know to expect them |
2021-07-01 03:23:30 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 240 seconds) |
2021-07-01 03:23:36 +0200 | <Nolrai> | Yeah. |
2021-07-01 03:24:47 +0200 | <Cale> | That said, I do think people overuse lenses to death a lot of the time. They certainly have their places, but if there's a reasonable way to not use Lens in any given scenario, then I probably won't. |
2021-07-01 03:24:54 +0200 | <Nolrai> | Hmm. I mean I don't think HSpec's `type Spec = SpecM ()` I think its dumb because it only saves 3 characters, so is a bad abreviation, but its an example of something that isn't harmful the way many uses of `type` are. |
2021-07-01 03:25:08 +0200 | <Nolrai> | * is harmful. |
2021-07-01 03:25:14 +0200 | favonia | (~favonia@user/favonia) |
2021-07-01 03:25:47 +0200 | <Cale> | Yeah, why not just rename SpecM to Spec and then get rid of the synonym, and write Spec () a bit? |
2021-07-01 03:25:57 +0200 | <c_wraith> | I dislike any type alias that looks like it has a different kind than the expression it expands to |
2021-07-01 03:26:11 +0200 | stevenxl_ | (~stevenlei@68.235.43.101) |
2021-07-01 03:26:29 +0200 | <c_wraith> | kinds are important documentation, too! |
2021-07-01 03:26:38 +0200 | <Nolrai> | That makes sense. |
2021-07-01 03:27:08 +0200 | <Cale> | Example of that? |
2021-07-01 03:27:27 +0200 | <c_wraith> | type Foo m = FooT m () |
2021-07-01 03:27:42 +0200 | <Cale> | ah, yeah, that's kinda gross |
2021-07-01 03:27:48 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 272 seconds) |
2021-07-01 03:27:53 +0200 | <monochrom> | Finally my opinion is not unpopular. >:) |
2021-07-01 03:28:22 +0200 | <Nolrai> | Is there a less awful way to do this `let [a,b,c,d,e,f] = bitToRB w <$> [0..5] in Cell a b c d e f` ? |
2021-07-01 03:29:18 +0200 | <monochrom> | "type alias = failing to make up your mind whether you want an abstraction or not" before it was cool. |
2021-07-01 03:29:23 +0200 | <Nolrai> | Heh. |
2021-07-01 03:29:28 +0200 | stevenxl | (~stevenlei@68.235.43.157) (Ping timeout: 258 seconds) |
2021-07-01 03:30:17 +0200 | <Nolrai> | Yeah, I am pretty sure if it wasn't part of the language from the beginning, it wouldn't be getting put in. |
2021-07-01 03:31:44 +0200 | <Cale> | monochrom: Yeah, and the thing is, it perhaps *could* have been a nice means of abstraction in conjunction with the module system, if it were treated a little differently |
2021-07-01 03:32:09 +0200 | <monochrom> | That is true. CLU and SML do it properly. |
2021-07-01 03:32:27 +0200 | <c_wraith> | Also, I don't understand any of the type aliases in Template Haskell. ExpQ is not better than Q Exp |
2021-07-01 03:32:27 +0200 | carbolymer | (~carbolyme@dropacid.net) (Read error: Connection reset by peer) |
2021-07-01 03:32:41 +0200 | <monochrom> | internal to your module it's an alias. When exported it's a newtype to your user. |
2021-07-01 03:32:55 +0200 | <Cale> | c_wraith: Not only do I agree, but I hate that entire module of lower-cased versions of everything |
2021-07-01 03:33:10 +0200 | <monochrom> | CLU is why I like Liskov. |
2021-07-01 03:33:17 +0200 | carbolymer | (~carbolyme@dropacid.net) |
2021-07-01 03:33:25 +0200 | <Cale> | It's like, a module of stuff for people who are uncomfortable with using monads |
2021-07-01 03:33:49 +0200 | <c_wraith> | typing "return" adds a bunch of letters! |
2021-07-01 03:34:00 +0200 | <Cale> | Which is probably why it exists to begin with, because it was constructed at a time when everyone was not entirely comfortable with monads |
2021-07-01 03:34:23 +0200 | raoul | (~raoul@nomnomnomnom.co.uk) (Quit: The Lounge - https://thelounge.github.io) |
2021-07-01 03:35:42 +0200 | <monochrom> | Haskellers uncomfortable with monads. Almost sounds like an oxymoron. |
2021-07-01 03:36:08 +0200 | <monochrom> | Consider pythonistas uncomfortable with objects and assignment statements. |
2021-07-01 03:36:29 +0200 | <monochrom> | Dennis Ritchie uncomfortable with pointers. |
2021-07-01 03:36:34 +0200 | <Cale> | We also need to get more actually useful stuf into Template Haskell |
2021-07-01 03:36:58 +0200 | <jao> | lispers uncomfortable with parentheses |
2021-07-01 03:36:59 +0200 | <c_wraith> | typed template haskell is in a really awkward spot right now. Though at least liftTyped exists now |
2021-07-01 03:38:05 +0200 | <Cale> | Like, did you know that reifyInstances, when given a type that has type variables in it, will find all instances which unify with those variables, and if you want those variables not to be specialised, you have to pull some skolemization trickery by hand? |
2021-07-01 03:38:11 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-01 03:38:50 +0200 | <Cale> | I sure do, since it ends up being something I need to do every time I use TH |
2021-07-01 03:39:09 +0200 | <Axman6> | Anyone know if there's an IRC channel for Rel8? |
2021-07-01 03:40:13 +0200 | <Cale> | Also, this is quite fancy, but I'd really love to have more ways to interact with the type checker while building declarations and expressions in TH |
2021-07-01 03:40:35 +0200 | <Cale> | It would be really nice to be able to build an expression and ask "if I were to declare this, what type would you infer for it"? |
2021-07-01 03:41:15 +0200 | <Cale> | 99% of the work of any TH I write is figuring out what constraints go in my instance head. |
2021-07-01 03:41:42 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-01 03:41:46 +0200 | <Cale> | which basically amounts to imitating the typechecker/instance resolution |
2021-07-01 03:42:24 +0200 | cods | (~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 252 seconds) |
2021-07-01 03:44:15 +0200 | <Cale> | https://hackage.haskell.org/package/th-abstraction is really good though, at least most of the time |
2021-07-01 03:44:18 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 240 seconds) |
2021-07-01 03:44:58 +0200 | <Cale> | Sometimes the canonicalisation of GADTs that gives you a bunch of type equalities is doing negative work, but most of the time at least it's pretty good |
2021-07-01 03:45:04 +0200 | <Axman6> | monochrom: or go programmings writing more than two lines without explicit error checking |
2021-07-01 03:45:10 +0200 | <Axman6> | programmers* |
2021-07-01 03:46:41 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-01 03:47:09 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
2021-07-01 03:48:12 +0200 | <monochrom> | :) |
2021-07-01 03:48:20 +0200 | adanwan_ | (~adanwan@gateway/tor-sasl/adanwan) |
2021-07-01 03:48:42 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2021-07-01 03:49:16 +0200 | cods | (~fred@82-65-232-44.subs.proxad.net) |
2021-07-01 03:49:36 +0200 | neurocyte43 | (~neurocyte@45.14.191.41) |
2021-07-01 03:49:37 +0200 | neurocyte43 | (~neurocyte@45.14.191.41) (Changing host) |
2021-07-01 03:49:37 +0200 | neurocyte43 | (~neurocyte@user/neurocyte) |
2021-07-01 03:51:37 +0200 | <dsal> | ... But how long are you comfortable not knowing whether err is not nil? |
2021-07-01 03:52:48 +0200 | <Axman6> | exactly once, because it should be immutable |
2021-07-01 03:53:24 +0200 | neurocyte4 | (~neurocyte@user/neurocyte) (Ping timeout: 256 seconds) |
2021-07-01 03:53:24 +0200 | neurocyte43 | neurocyte4 |
2021-07-01 03:53:45 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 268 seconds) |
2021-07-01 03:54:27 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-01 03:55:14 +0200 | <dsal> | Most go code is just EitherT without helpful syntax |
2021-07-01 03:58:43 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 240 seconds) |
2021-07-01 03:59:00 +0200 | <Axman6> | mo' lines, mo' productive |
2021-07-01 03:59:02 +0200 | favonia | (~favonia@user/favonia) |
2021-07-01 04:00:58 +0200 | egoist | (~egoist@186.235.80.194) (Quit: WeeChat 3.2) |
2021-07-01 04:01:06 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-07-01 04:01:19 +0200 | cjb | (~cjb@user/cjb) () |
2021-07-01 04:05:07 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 258 seconds) |
2021-07-01 04:05:37 +0200 | cheater | (~Username@user/cheater) |
2021-07-01 04:07:48 +0200 | sheepduck | (~sheepduck@user/sheepduck) (Ping timeout: 258 seconds) |
2021-07-01 04:12:17 +0200 | juhp | (~juhp@128.106.188.66) (Quit: juhp) |
2021-07-01 04:12:31 +0200 | juhp | (~juhp@128.106.188.66) |
2021-07-01 04:12:32 +0200 | finsternis | (~X@23.226.237.192) (Read error: Connection reset by peer) |
2021-07-01 04:12:40 +0200 | stevenxl_ | (~stevenlei@68.235.43.101) (Ping timeout: 256 seconds) |
2021-07-01 04:12:52 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-07-01 04:18:23 +0200 | thiagomm | (~thiagomm@179.156.177.136) |
2021-07-01 04:18:54 +0200 | thiagomm | (~thiagomm@179.156.177.136) (Client Quit) |
2021-07-01 04:20:37 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-07-01 04:21:23 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) |
2021-07-01 04:22:49 +0200 | MQ-17J | (~MQ-17J@8.21.10.15) |
2021-07-01 04:24:10 +0200 | stevenxl | (~stevenlei@68.235.43.101) |
2021-07-01 04:25:30 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 240 seconds) |
2021-07-01 04:27:11 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-07-01 04:29:36 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2021-07-01 04:29:36 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (copper.libera.chat (Nickname regained by services))) |
2021-07-01 04:29:36 +0200 | finn_elija | FinnElija |
2021-07-01 04:29:52 +0200 | stevenxl | (~stevenlei@68.235.43.101) (Ping timeout: 272 seconds) |
2021-07-01 04:30:25 +0200 | td_ | (~td@94.134.91.65) (Ping timeout: 258 seconds) |
2021-07-01 04:32:16 +0200 | td_ | (~td@94.134.91.214) |
2021-07-01 04:34:46 +0200 | derelict | (~derelict@user/derelict) (Ping timeout: 256 seconds) |
2021-07-01 04:35:54 +0200 | haliq | (~haliq@128.106.240.245) |
2021-07-01 04:40:09 +0200 | Nolrai | (~Nolrai@c-76-27-202-218.hsd1.or.comcast.net) (Quit: Client closed) |
2021-07-01 04:42:40 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-07-01 04:45:42 +0200 | <qrpnxz> | thoughts on this? https://termbin.com/fs8d |
2021-07-01 04:48:11 +0200 | <jackdk> | haskell is a pretty cool imperative language |
2021-07-01 04:48:32 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 265 seconds) |
2021-07-01 04:48:39 +0200 | <qrpnxz> | haha, the haskell one is a bit more inscrutable, but it's safe! Here's the Go one for comparison: Go program just as fast as the C one |
2021-07-01 04:48:57 +0200 | <qrpnxz> | https://termbin.com/26pd |
2021-07-01 04:49:49 +0200 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-07-01 04:50:01 +0200 | <qrpnxz> | half of the fast C and haskell programs is recreating what go slices do for free |
2021-07-01 04:50:05 +0200 | <qrpnxz> | truly sad |
2021-07-01 04:50:16 +0200 | <qrpnxz> | should be illegal to have a language without go slices |
2021-07-01 04:50:42 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 240 seconds) |
2021-07-01 04:51:07 +0200 | favonia | (~favonia@user/favonia) |
2021-07-01 04:51:37 +0200 | <jackdk> | it should be illegal to have nulls just lying around in a language but here we are |
2021-07-01 04:51:53 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-01 04:53:12 +0200 | <qrpnxz> | meh |
2021-07-01 04:54:23 +0200 | <keltono> | ditto for not having generics :P |
2021-07-01 04:58:42 +0200 | <qrpnxz> | version two is rather nice and it's only 4 times slower |
2021-07-01 04:59:38 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
2021-07-01 05:00:10 +0200 | <nshepperd> | go slices are just dynamic vectors? |
2021-07-01 05:00:40 +0200 | <qrpnxz> | yeah they are a pointer, a length, and a capacity |
2021-07-01 05:01:27 +0200 | <nshepperd> | there's a package for those |
2021-07-01 05:01:49 +0200 | <qrpnxz> | someone said that before and it wasn't it, but if you wanna share |
2021-07-01 05:02:40 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-01 05:03:16 +0200 | img | (~img@user/img) |
2021-07-01 05:03:37 +0200 | <nshepperd> | dynamic-mvector? doesn't implement the unboxed version though, which is lame |
2021-07-01 05:05:18 +0200 | <qrpnxz> | nice that it has push, but missing slices |
2021-07-01 05:06:07 +0200 | <qrpnxz> | also it's really annoying that data.vector's "safe" move requires both sides to be the same length |
2021-07-01 05:10:24 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 252 seconds) |
2021-07-01 05:11:02 +0200 | derelict | (~derelict@user/derelict) |
2021-07-01 05:11:02 +0200 | <nshepperd> | odd that there's no slice function given all the doc comments about what happens to slices |
2021-07-01 05:11:24 +0200 | <nshepperd> | in go, are slices copy on write or what |
2021-07-01 05:11:49 +0200 | <dsal> | go slices are immutable |
2021-07-01 05:12:14 +0200 | <nshepperd> | so they're not dynamic vectors at all? |
2021-07-01 05:12:47 +0200 | <dsal> | You can write *through* them and "reslice" them (which copies them). There's an `append` operation which is basically realloc + copy |
2021-07-01 05:12:55 +0200 | <dsal> | (with all the downsides of being realloc + copy) |
2021-07-01 05:14:42 +0200 | hammock | (~Hammock@2600:1700:19a1:3330::625) (Ping timeout: 240 seconds) |
2021-07-01 05:15:07 +0200 | <nshepperd> | weird |
2021-07-01 05:15:25 +0200 | <dsal> | You don't much use arrays in go because the size is part of the type. So slices are the general thing. They have some pointy edges, though. |
2021-07-01 05:18:45 +0200 | jao | (jao@gateway/vpn/protonvpn/jao) (Remote host closed the connection) |
2021-07-01 05:19:12 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 252 seconds) |
2021-07-01 05:19:25 +0200 | <qrpnxz> | go slices are not immutable |
2021-07-01 05:19:25 +0200 | <nshepperd> | i can imagine |
2021-07-01 05:19:26 +0200 | <qrpnxz> | wtf |
2021-07-01 05:19:32 +0200 | cheater | (~Username@user/cheater) |
2021-07-01 05:20:59 +0200 | <qrpnxz> | what is "pointy" about slices? |
2021-07-01 05:21:22 +0200 | <dsal> | https://play.golang.org/p/b7uoMnonP4Z |
2021-07-01 05:21:25 +0200 | <dsal> | Stuff like this. |
2021-07-01 05:21:29 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2021-07-01 05:21:30 +0200 | <dsal> | Why do you think go slices are mutable? |
2021-07-01 05:21:54 +0200 | sheepduck | (~sheepduck@user/sheepduck) |
2021-07-01 05:22:07 +0200 | <qrpnxz> | uh cause they are |
2021-07-01 05:22:12 +0200 | <qrpnxz> | idk what you are demonstrating here btw |
2021-07-01 05:22:21 +0200 | <nshepperd> | this go program is claimed to be fast, so i assume 'primes = append(primes, n)' is not copying the vector, but writing to the available space at the end of the storage |
2021-07-01 05:22:33 +0200 | <qrpnxz> | only grows as needed |
2021-07-01 05:22:34 +0200 | <dsal> | (oops, messed up that format string) |
2021-07-01 05:22:41 +0200 | <dsal> | qrpnxz: Please demonstrate mutating a slice. |
2021-07-01 05:22:48 +0200 | <qrpnxz> | s[0] = 1 |
2021-07-01 05:22:53 +0200 | <dsal> | That doesn't change s. |
2021-07-01 05:23:15 +0200 | <qrpnxz> | obj.set(0) doesn't change obj either |
2021-07-01 05:23:32 +0200 | <dsal> | I don't know what obj is. |
2021-07-01 05:23:53 +0200 | <qrpnxz> | a reference type, like slices. You can imagine it as any java object |
2021-07-01 05:23:56 +0200 | <dsal> | nshepperd: append *might* copy and it might mutate the underlying array. If it mutates the underlying array, it might affect other things that share the array. |
2021-07-01 05:24:20 +0200 | <nshepperd> | in which case, a = append(primes, 1); b = append (primes, 2) will result in both a and b containing 2 |
2021-07-01 05:24:39 +0200 | <dsal> | nshepperd: Yeah, that's what I'm demonstrating. It'll do that *sometimes* |
2021-07-01 05:24:46 +0200 | <qrpnxz> | right, append returns a new slice, the new slice might be pointing to new memory. I don't care about the old slice, so i assign it on top of the old one |
2021-07-01 05:24:50 +0200 | <nshepperd> | sounds horribly |
2021-07-01 05:25:28 +0200 | <dsal> | There are a few places go makes for strange bugs. |
2021-07-01 05:25:36 +0200 | shapr | (~user@pool-108-28-144-11.washdc.fios.verizon.net) (Ping timeout: 272 seconds) |
2021-07-01 05:25:48 +0200 | <qrpnxz> | a is always looks like primes with 1 at the end |
2021-07-01 05:25:55 +0200 | <qrpnxz> | b always looks like primes with 2 at the end |
2021-07-01 05:26:15 +0200 | <dsal> | qrpnxz: that's not true, as I demonstrated here: https://play.golang.org/p/FlJSCKXl-xE |
2021-07-01 05:26:16 +0200 | <nshepperd> | how does append enforce that? reference counting? |
2021-07-01 05:26:42 +0200 | <qrpnxz> | ah your thing works now |
2021-07-01 05:26:46 +0200 | <qrpnxz> | ah yeah ur right lol |
2021-07-01 05:26:56 +0200 | <qrpnxz> | well w/e, this literally never comes up |
2021-07-01 05:26:59 +0200 | <nshepperd> | lol |
2021-07-01 05:27:07 +0200 | <dsal> | This comes up *all the time*. |
2021-07-01 05:27:21 +0200 | <qrpnxz> | if you need a nice pure slice you just make yourself a new one like append([]int{}, old...) |
2021-07-01 05:27:31 +0200 | <qrpnxz> | lol where |
2021-07-01 05:27:34 +0200 | <dsal> | You can reslice with a maximum capacity without forcing a copy. |
2021-07-01 05:27:46 +0200 | <dsal> | In large go codebases? I work on... very large go codebases. |
2021-07-01 05:27:47 +0200 | <qrpnxz> | yeah so? |
2021-07-01 05:27:48 +0200 | <nshepperd> | so append assumes uniqueness |
2021-07-01 05:27:53 +0200 | <nshepperd> | that's pretty sharp |
2021-07-01 05:28:02 +0200 | <qrpnxz> | append doesn't assume anything |
2021-07-01 05:28:05 +0200 | <qrpnxz> | just does what it does |
2021-07-01 05:28:19 +0200 | <dsal> | append does two distinct things depending on stuff you're probably not paying attention to. |
2021-07-01 05:28:21 +0200 | <qrpnxz> | ok it assumes that you know what append does |
2021-07-01 05:28:22 +0200 | <qrpnxz> | lol |
2021-07-01 05:29:01 +0200 | <dsal> | If you're below cap, it just copies your new value into the underlying array past the len index and returns a new slice with len incremented. If you're at cap, it allocates a new array, copies all the existing data and then adds your new item. |
2021-07-01 05:29:19 +0200 | <dsal> | (which is sort of like realloc, which also has fun bugs) |
2021-07-01 05:30:12 +0200 | <qrpnxz> | idk how this ever comes up as a problem honestly, if you got a foreign slice that you don't own and you want to append and stuff, you copy it |
2021-07-01 05:30:24 +0200 | <dsal> | Why would you copy it? |
2021-07-01 05:30:34 +0200 | rachel231 | (~rachel231@c-73-142-199-151.hsd1.nh.comcast.net) |
2021-07-01 05:30:59 +0200 | <dsal> | You can always reslice adjusting the cap down. |
2021-07-01 05:31:06 +0200 | <qrpnxz> | if you don't own it and you wanna do crap like append to it, or use it after the real owner needs it again |
2021-07-01 05:31:21 +0200 | <qrpnxz> | go giving you the change to copy if you need to and not copy if you don't need to |
2021-07-01 05:31:31 +0200 | TranquilEcho | (~grom@user/tranquilecho) (Quit: WeeChat 2.8) |
2021-07-01 05:32:15 +0200 | <qrpnxz> | some api gives you a copy every time, sometimes it gives you a buffer slice only valid until next call. If it's the latter you can get very efficient, but if you need to keep the slice past the call, you copy yourself |
2021-07-01 05:33:02 +0200 | <nshepperd> | if you need to copy it before appending is safe, shouldn't copying return a different type so you don't fuck it up |
2021-07-01 05:33:32 +0200 | <dsal> | In general, I try to steer people towards doing stuff that doesn't create bugs. It's difficult sometimes. |
2021-07-01 05:33:52 +0200 | <qrpnxz> | bro this is not haskell, we don't do immutable data structures generally lol |
2021-07-01 05:34:19 +0200 | <nshepperd> | idk this api seems like a mistake |
2021-07-01 05:34:30 +0200 | <qrpnxz> | like for example https://golang.org/pkg/bufio/#Reader.ReadSlice if you don't need to keep the bytes, then you can zip through a reader super fast, by not copying, but if you do need them you just copy, or use another method that automatically copies |
2021-07-01 05:34:34 +0200 | <nshepperd> | compared to plain ol dynamic vectors |
2021-07-01 05:34:58 +0200 | <dsal> | Part of my day job is teaching people at google how to write less buggy go code. |
2021-07-01 05:34:59 +0200 | <qrpnxz> | well actually there is one exception, which is strings. If you want immutable byte slice in go you use string |
2021-07-01 05:35:33 +0200 | <qrpnxz> | dsal, i thought googlers were supposed to be good, not reuse slices they weren't supposed to |
2021-07-01 05:35:36 +0200 | spruit11 | (~quassel@2a02:a467:ccd6:1:d8ed:8d81:7c94:d830) |
2021-07-01 05:35:56 +0200 | <nshepperd> | if googlers were good they wouldn't invent bad APIs |
2021-07-01 05:36:00 +0200 | <dsal> | haha |
2021-07-01 05:36:02 +0200 | <qrpnxz> | xd |
2021-07-01 05:36:34 +0200 | curiousggay_ | (~curiousgg@77-120-144-167.kha.volia.net) |
2021-07-01 05:36:34 +0200 | <qrpnxz> | haskell definitely safer, but go so much more productive for me still with it's readers and writers |
2021-07-01 05:36:43 +0200 | <qrpnxz> | *its |
2021-07-01 05:36:49 +0200 | cloudy`` | (~user@2600:8807:c207:f00:d412:4cce:d9f1:ba0) |
2021-07-01 05:37:02 +0200 | <DigitalKiwi> | go is garbage |
2021-07-01 05:37:17 +0200 | <qrpnxz> | nah |
2021-07-01 05:37:29 +0200 | Feuermagier_ | (~Feuermagi@2a02:2488:4211:3400:5def:8486:9e4:b49a) (Read error: Connection reset by peer) |
2021-07-01 05:37:29 +0200 | curiousgay | (~curiousgg@77-120-144-167.kha.volia.net) (Read error: Connection reset by peer) |
2021-07-01 05:37:29 +0200 | the_proffesor | (~theproffe@2601:282:847f:8010::3a29) |
2021-07-01 05:37:29 +0200 | Feuermagier_ | (~Feuermagi@2a02:2488:4211:3400:5def:8486:9e4:b49a) |
2021-07-01 05:37:29 +0200 | justache | (~justache@user/justache) (Quit: Ping timeout (120 seconds)) |
2021-07-01 05:37:29 +0200 | azeem | (~azeem@dynamic-adsl-94-34-20-185.clienti.tiscali.it) (Ping timeout: 240 seconds) |
2021-07-01 05:37:45 +0200 | justache | (~justache@user/justache) |
2021-07-01 05:37:50 +0200 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-07-01 05:37:54 +0200 | zmt00 | (~zmt00@user/zmt00) |
2021-07-01 05:38:03 +0200 | <dsal> | I can get so much done so much faster in Haskell. |
2021-07-01 05:38:32 +0200 | the_proffesor | (~theproffe@2601:282:847f:8010::3a29) (Changing host) |
2021-07-01 05:38:32 +0200 | the_proffesor | (~theproffe@user/theproffesor) |
2021-07-01 05:38:32 +0200 | theproffesor | Guest2594 |
2021-07-01 05:38:32 +0200 | the_proffesor | theproffesor |
2021-07-01 05:38:38 +0200 | <qrpnxz> | yeah i hope to learn to do that one day, for now gotta use another language for results |
2021-07-01 05:38:42 +0200 | cloudy` | (~user@2600:8807:c207:f00:d022:dd81:f0f8:bb22) (Ping timeout: 240 seconds) |
2021-07-01 05:38:42 +0200 | spruit11_ | (~quassel@2a02:a467:ccd6:1:70d9:6b8a:7264:8769) (Ping timeout: 240 seconds) |
2021-07-01 05:38:42 +0200 | zmt01 | (~zmt00@user/zmt00) (Ping timeout: 240 seconds) |
2021-07-01 05:38:42 +0200 | Guest2594 | (~theproffe@user/theproffesor) (Ping timeout: 240 seconds) |
2021-07-01 05:38:48 +0200 | <qrpnxz> | like net package too good |
2021-07-01 05:38:55 +0200 | <qrpnxz> | how to live without net package |
2021-07-01 05:39:32 +0200 | <dsal> | I just realized I've been working in go for nearly 12 years. :/ But it's still painful. |
2021-07-01 05:40:13 +0200 | <qrpnxz> | how are haskellers doing error handling? I barely see any, do they just use exceptions or what? |
2021-07-01 05:40:40 +0200 | <dsal> | errors? We don't write code with errors. :P |
2021-07-01 05:41:10 +0200 | <qrpnxz> | xd |
2021-07-01 05:41:13 +0200 | <nshepperd> | I/O code uses exceptions, generally |
2021-07-01 05:41:17 +0200 | <dsal> | It depends on what you mean. There's maybe/either kinds of things and there's various exceptions. |
2021-07-01 05:41:24 +0200 | <qrpnxz> | ig the database just never fails when you program in haskell |
2021-07-01 05:41:26 +0200 | <dsal> | I don't enjoy exceptions in haskell any more than I do in any other language. |
2021-07-01 05:42:04 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 272 seconds) |
2021-07-01 05:42:18 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds) |
2021-07-01 05:42:40 +0200 | <dsal> | `bracket` is fine. `catch`/`catches` and the like are OK. Getting reckless with async exceptions can be exciting. |
2021-07-01 05:42:56 +0200 | alx741 | (~alx741@186.178.108.157) (Quit: alx741) |
2021-07-01 05:43:07 +0200 | <qrpnxz> | It's continuation time |
2021-07-01 05:43:45 +0200 | <myShoggoth> | Haskell Foundation June Update: https://discourse.haskell.org/t/haskell-foundation-june-update/2722 |
2021-07-01 05:43:53 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2021-07-01 05:45:26 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-01 05:46:42 +0200 | sheepduck | (~sheepduck@user/sheepduck) (Ping timeout: 252 seconds) |
2021-07-01 05:47:16 +0200 | img | (~img@user/img) |
2021-07-01 05:49:21 +0200 | adanwan_ | (~adanwan@gateway/tor-sasl/adanwan) (Quit: _) |
2021-07-01 05:49:33 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2021-07-01 05:52:42 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 05:53:40 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-07-01 05:56:58 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds) |
2021-07-01 05:59:30 +0200 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 240 seconds) |
2021-07-01 06:03:34 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 258 seconds) |
2021-07-01 06:03:43 +0200 | cheater | (~Username@user/cheater) |
2021-07-01 06:04:16 +0200 | cloudy | (~user@2600:8807:c207:f00:d022:dd81:f0f8:bb22) (Remote host closed the connection) |
2021-07-01 06:04:16 +0200 | raoul | (~raoul@nom4.xyz) |
2021-07-01 06:04:57 +0200 | rachel231 | (~rachel231@c-73-142-199-151.hsd1.nh.comcast.net) (Quit: Connection closed) |
2021-07-01 06:07:55 +0200 | cloudy`` | (~user@2600:8807:c207:f00:d412:4cce:d9f1:ba0) (Remote host closed the connection) |
2021-07-01 06:08:50 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-01 06:16:10 +0200 | azeem | (~azeem@dynamic-adsl-94-34-20-185.clienti.tiscali.it) |
2021-07-01 06:18:41 +0200 | azeem | (~azeem@dynamic-adsl-94-34-20-185.clienti.tiscali.it) (Read error: Connection reset by peer) |
2021-07-01 06:22:30 +0200 | eight | (~eight@user/eight) (Quit: leaving) |
2021-07-01 06:24:11 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-01 06:28:18 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2021-07-01 06:30:41 +0200 | <sm[m]> | bravo cabal documentors! https://cabal.readthedocs.io/en/3.4/cabal-projectindex.html is fantastic |
2021-07-01 06:33:33 +0200 | sheepduck | (~sheepduck@user/sheepduck) |
2021-07-01 06:40:37 +0200 | sheepduck | (~sheepduck@user/sheepduck) (Remote host closed the connection) |
2021-07-01 06:43:03 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-07-01 06:44:05 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-07-01 06:46:26 +0200 | marinelli[m] | (~marinelli@2001:470:69fc:105::2d8) (Quit: node-irc says goodbye) |
2021-07-01 06:48:53 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
2021-07-01 06:50:46 +0200 | derelict | (~derelict@user/derelict) (Ping timeout: 256 seconds) |
2021-07-01 07:03:47 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 256 seconds) |
2021-07-01 07:07:26 +0200 | favonia | (~favonia@user/favonia) |
2021-07-01 07:08:18 +0200 | notzmv | (~zmv@user/notzmv) |
2021-07-01 07:16:18 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 240 seconds) |
2021-07-01 07:19:25 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-07-01 07:22:19 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-07-01 07:23:31 +0200 | marinelli[m] | (~marinelli@2001:470:69fc:105::2d8) |
2021-07-01 07:42:01 +0200 | curiousggay_ | curiousgay |
2021-07-01 07:43:04 +0200 | Guest39 | (~steve@2403:6200:8872:c9a0:7400:c8ff:92fb:3985) |
2021-07-01 07:48:18 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-07-01 07:48:59 +0200 | HotblackDesiato | (~HotblackD@gateway/tor-sasl/hotblackdesiato) (Ping timeout: 244 seconds) |
2021-07-01 07:49:06 +0200 | michalz | (~michalz@185.246.204.105) |
2021-07-01 07:50:04 +0200 | HotblackDesiato | (~HotblackD@gateway/tor-sasl/hotblackdesiato) |
2021-07-01 07:54:20 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 07:57:48 +0200 | <feetwind> | what ghc flags do i need to get a good callstack from a failing (Data.Vector.!) call? do i need to add HasCallStack constraints everywhere? |
2021-07-01 07:58:18 +0200 | <feetwind> | (the program is quite large so the latter is not very realistic) |
2021-07-01 07:58:36 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-07-01 07:58:55 +0200 | Guest39 | (~steve@2403:6200:8872:c9a0:7400:c8ff:92fb:3985) (Quit: Leaving) |
2021-07-01 08:01:34 +0200 | cmburnett | (~cmburnett@c-73-37-184-31.hsd1.mn.comcast.net) () |
2021-07-01 08:02:43 +0200 | qbt | (~edun@user/edun) |
2021-07-01 08:03:09 +0200 | anandprabhu | (~anandprab@94.202.243.198) |
2021-07-01 08:03:12 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-07-01 08:05:04 +0200 | <feetwind> | or is there maybe a ghc plugin that can add HasCallStack constraints per module? |
2021-07-01 08:05:21 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 08:05:21 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 268 seconds) |
2021-07-01 08:06:15 +0200 | Codaraxis__ | (~Codaraxis@193.32.126.157) |
2021-07-01 08:07:46 +0200 | myShoggoth | (~myShoggot@75.164.51.64) (Ping timeout: 258 seconds) |
2021-07-01 08:08:09 +0200 | dka | (~code-is-a@ns3059207.ip-193-70-33.eu) |
2021-07-01 08:08:55 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-07-01 08:09:42 +0200 | chris_ | (~chris@81.96.113.213) (Ping timeout: 252 seconds) |
2021-07-01 08:10:14 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 08:10:33 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
2021-07-01 08:10:54 +0200 | Codaraxis_ | (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Ping timeout: 272 seconds) |
2021-07-01 08:12:58 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) |
2021-07-01 08:13:04 +0200 | fabfianda | (~fabfianda@37.183.255.57) (Read error: Connection reset by peer) |
2021-07-01 08:13:12 +0200 | fabfianda | (~fabfianda@37.183.255.57) |
2021-07-01 08:14:04 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 272 seconds) |
2021-07-01 08:14:18 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 240 seconds) |
2021-07-01 08:14:18 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-07-01 08:20:14 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 08:20:33 +0200 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
2021-07-01 08:24:50 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 272 seconds) |
2021-07-01 08:25:19 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 08:28:24 +0200 | turlando | (~turlando@user/turlando) (Ping timeout: 272 seconds) |
2021-07-01 08:29:17 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 244 seconds) |
2021-07-01 08:29:30 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 240 seconds) |
2021-07-01 08:31:54 +0200 | <ephemient> | feetwind: -prof -fprof-auto -fprof-cafs will add cost centers to (just about) all declarations, which should show up in exception stacktraces. not sure about per-module though |
2021-07-01 08:32:04 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-07-01 08:34:13 +0200 | willbush | (~user@47.183.200.14) (Remote host closed the connection) |
2021-07-01 08:34:21 +0200 | <ephemient> | https://ghc.gitlab.haskell.org/ghc/doc/users_guide/runtime_control.html#rts-flag--xc |
2021-07-01 08:35:25 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 08:39:28 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-01 08:40:03 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 265 seconds) |
2021-07-01 08:40:33 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 08:41:56 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-01 08:42:45 +0200 | v01d4lph4 | (~v01d4lph4@122.160.65.250) |
2021-07-01 08:42:45 +0200 | v01d4lph4 | (~v01d4lph4@122.160.65.250) (Changing host) |
2021-07-01 08:42:45 +0200 | v01d4lph4 | (~v01d4lph4@user/v01d4lph4) |
2021-07-01 08:43:11 +0200 | chele | (~chele@user/chele) |
2021-07-01 08:45:25 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-01 08:46:22 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2021-07-01 08:47:41 +0200 | <rune> | If I include all the packages inside the "dist-newstyle" folder in my hie.yaml file, would this enable "Jump to definition" for functions defined in a dependencies? |
2021-07-01 08:47:48 +0200 | fef | (~thedawn@user/thedawn) |
2021-07-01 08:47:59 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-07-01 08:48:09 +0200 | <rune> | Sorry, wrong channel |
2021-07-01 08:48:16 +0200 | zangi | (~zangi@103.154.230.230) |
2021-07-01 08:49:10 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 258 seconds) |
2021-07-01 08:49:39 +0200 | <zangi> | why doesn't listDirectory list "foo"? |
2021-07-01 08:49:42 +0200 | <zangi> | `filter (== "foo") <$> listDirectory "." <* writeFile "foo" "something"` |
2021-07-01 08:49:58 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Client Quit) |
2021-07-01 08:50:00 +0200 | <zangi> | [] |
2021-07-01 08:50:14 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 08:50:48 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
2021-07-01 08:51:46 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-07-01 08:52:22 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
2021-07-01 08:53:58 +0200 | norias | (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Ping timeout: 272 seconds) |
2021-07-01 08:53:59 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-07-01 08:54:18 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 240 seconds) |
2021-07-01 08:54:26 +0200 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 252 seconds) |
2021-07-01 08:54:38 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
2021-07-01 08:55:03 +0200 | thornAvery | (~thorn@121.220.33.124) |
2021-07-01 08:55:52 +0200 | <thornAvery> | howdy, i have a question about brick but im not sure if this is the place to ask it, would it be ok? |
2021-07-01 08:56:14 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-07-01 08:56:16 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Client Quit) |
2021-07-01 09:00:14 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 09:03:14 +0200 | fvr | (uid503686@id-503686.highgate.irccloud.com) |
2021-07-01 09:04:42 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds) |
2021-07-01 09:05:17 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-07-01 09:06:47 +0200 | <sm[m]> | go for it thornAvery |
2021-07-01 09:10:03 +0200 | sm | (~user@plaintextaccounting/sm) (Remote host closed the connection) |
2021-07-01 09:10:15 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 09:12:48 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4) |
2021-07-01 09:13:30 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-07-01 09:14:18 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 240 seconds) |
2021-07-01 09:14:52 +0200 | oxide | (~lambda@user/oxide) (Ping timeout: 272 seconds) |
2021-07-01 09:15:46 +0200 | azeem | (~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it) |
2021-07-01 09:16:00 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Ping timeout: 258 seconds) |
2021-07-01 09:16:24 +0200 | oxide | (~lambda@user/oxide) |
2021-07-01 09:16:53 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-07-01 09:17:16 +0200 | <[exa]> | zangi: maybe the operation order is wrong? |
2021-07-01 09:19:03 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-07-01 09:20:15 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 09:24:34 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b954061d05013652ae098.dip0.t-ipconnect.de) |
2021-07-01 09:25:00 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 265 seconds) |
2021-07-01 09:25:30 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 09:25:54 +0200 | alex3 | (~alex3@BSN-77-82-41.static.siol.net) (Ping timeout: 240 seconds) |
2021-07-01 09:26:19 +0200 | <tomsmeding> | sm[m]: that's a bookmark |
2021-07-01 09:26:28 +0200 | <tomsmeding> | that's great |
2021-07-01 09:28:34 +0200 | turlando | (~turlando@5.171.97.176) |
2021-07-01 09:28:35 +0200 | turlando | (~turlando@5.171.97.176) (Changing host) |
2021-07-01 09:28:35 +0200 | turlando | (~turlando@user/turlando) |
2021-07-01 09:30:08 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-01 09:31:13 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-07-01 09:31:58 +0200 | alex3 | (~alex3@BSN-77-82-41.static.siol.net) |
2021-07-01 09:33:33 +0200 | turlando | (~turlando@user/turlando) (Ping timeout: 268 seconds) |
2021-07-01 09:33:54 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 240 seconds) |
2021-07-01 09:35:36 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 09:36:16 +0200 | <thornAvery> | so im trying to visualise a cellular automata, im currently constructing a vBox full of hBoxs, where each hBox is a single character string that i apply attributes to. constructing this is taknig a large amount of my cpu usage, and i feel there should be a quicker way to map a [[MyType]] to the screen, where MyType is a simple `data MyType = A | B | C` which determines the attributes to apply |
2021-07-01 09:37:34 +0200 | <thornAvery> | but reading the docs its not immediately obvious if i can do something like, render whole-line strings but with parts of it having different attributes |
2021-07-01 09:44:39 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 268 seconds) |
2021-07-01 09:45:15 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 09:46:01 +0200 | euandreh | (~euandreh@2804:14c:33:9fe5:fe7c:a1fa:94dc:c42a) (Remote host closed the connection) |
2021-07-01 09:46:25 +0200 | euandreh | (~euandreh@2804:14c:33:9fe5:af42:e045:e98b:4388) |
2021-07-01 09:49:48 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds) |
2021-07-01 09:49:51 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) |
2021-07-01 09:50:19 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 09:54:42 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 240 seconds) |
2021-07-01 09:57:07 +0200 | fef | (~thedawn@user/thedawn) (Ping timeout: 244 seconds) |
2021-07-01 09:57:35 +0200 | <zangi> | [exa]: apparently it prints ["foo"] in do notation, weird |
2021-07-01 09:58:03 +0200 | v01d4lph4 | (~v01d4lph4@user/v01d4lph4) (Remote host closed the connection) |
2021-07-01 10:00:15 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 10:01:12 +0200 | v01d4lph4 | (~v01d4lph4@122.160.65.250) |
2021-07-01 10:01:12 +0200 | v01d4lph4 | (~v01d4lph4@122.160.65.250) (Changing host) |
2021-07-01 10:01:12 +0200 | v01d4lph4 | (~v01d4lph4@user/v01d4lph4) |
2021-07-01 10:01:13 +0200 | <tomsmeding> | zangi: https://hackage.haskell.org/package/base-4.15.0.0/docs/Control-Applicative.html#v:-60--42- |
2021-07-01 10:01:28 +0200 | bor0 | (~boro@user/bor0) |
2021-07-01 10:01:32 +0200 | <tomsmeding> | <* first executes the action of its left argument, then the action of its right argument, and finally returns the value from the left argument |
2021-07-01 10:01:52 +0200 | <tomsmeding> | it's not like =<< where it really executes the actions from right to left |
2021-07-01 10:01:56 +0200 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.2) |
2021-07-01 10:03:39 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-07-01 10:04:34 +0200 | ubert | (~Thunderbi@p2e5a50e5.dip0.t-ipconnect.de) |
2021-07-01 10:05:07 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 265 seconds) |
2021-07-01 10:06:08 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-07-01 10:08:55 +0200 | mikail | (~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f) |
2021-07-01 10:09:31 +0200 | hendursa1 | (~weechat@user/hendursaga) (Ping timeout: 244 seconds) |
2021-07-01 10:09:53 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 10:11:03 +0200 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
2021-07-01 10:12:30 +0200 | MoC | (~moc@user/moc) |
2021-07-01 10:13:44 +0200 | <zangi> | tomsmeding: makes sense, thanks |
2021-07-01 10:14:47 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 265 seconds) |
2021-07-01 10:15:19 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 10:15:49 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2021-07-01 10:16:19 +0200 | hegstal | (~hegstal@2a02:c7f:7604:8a00:8d05:aaa6:8a87:6441) |
2021-07-01 10:16:50 +0200 | hololeap | (~hololeap@user/hololeap) |
2021-07-01 10:17:28 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-07-01 10:17:52 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-07-01 10:18:10 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds) |
2021-07-01 10:18:10 +0200 | Lord_of_Life_ | Lord_of_Life |
2021-07-01 10:20:07 +0200 | vicfred | (~vicfred@user/vicfred) (Quit: Leaving) |
2021-07-01 10:22:31 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
2021-07-01 10:27:09 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-07-01 10:28:17 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2021-07-01 10:30:00 +0200 | hololeap | (~hololeap@user/hololeap) (Remote host closed the connection) |
2021-07-01 10:30:14 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 272 seconds) |
2021-07-01 10:32:46 +0200 | jakalx | (~jakalx@base.jakalx.net) () |
2021-07-01 10:34:30 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-07-01 10:34:53 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 10:38:41 +0200 | fendor | (~fendor@77.119.196.177.wireless.dyn.drei.com) |
2021-07-01 10:39:26 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 265 seconds) |
2021-07-01 10:40:35 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 10:41:41 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-01 10:44:27 +0200 | tomferon[m] | (~tomferon@2001:470:69fc:105::268) (Quit: node-irc says goodbye) |
2021-07-01 10:44:33 +0200 | eddiemundo | (~eddiemund@2001:470:69fc:105::a9c) (Quit: node-irc says goodbye) |
2021-07-01 10:46:10 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-01 10:46:38 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 252 seconds) |
2021-07-01 10:46:55 +0200 | cheater | (~Username@user/cheater) |
2021-07-01 10:48:10 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-07-01 10:49:24 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 268 seconds) |
2021-07-01 10:53:02 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
2021-07-01 10:55:26 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 252 seconds) |
2021-07-01 10:55:30 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 11:04:29 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 258 seconds) |
2021-07-01 11:09:11 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dc49:b28b:5485:3e7e) (Remote host closed the connection) |
2021-07-01 11:09:53 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 11:11:00 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-07-01 11:12:43 +0200 | fef | (~thedawn@user/thedawn) |
2021-07-01 11:14:08 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds) |
2021-07-01 11:14:15 +0200 | nanoc | (~nanocoast@p200300e1273bf000ccc6df24f323b7c2.dip0.t-ipconnect.de) |
2021-07-01 11:14:41 +0200 | fef | (~thedawn@user/thedawn) (Remote host closed the connection) |
2021-07-01 11:15:35 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 11:19:22 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-07-01 11:23:03 +0200 | a6a45081-2b83 | (~aditya@223.235.222.167) |
2021-07-01 11:24:42 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 272 seconds) |
2021-07-01 11:25:34 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 11:26:47 +0200 | ukari | (~ukari@user/ukari) (Remote host closed the connection) |
2021-07-01 11:26:52 +0200 | bor0 | (~boro@user/bor0) (Quit: Leaving) |
2021-07-01 11:27:48 +0200 | ukari | (~ukari@user/ukari) |
2021-07-01 11:28:31 +0200 | Cajun | (~Cajun@ip98-163-211-112.no.no.cox.net) (Quit: Client closed) |
2021-07-01 11:32:00 +0200 | Ariakenom | (~Ariakenom@c83-255-154-140.bredband.tele2.se) |
2021-07-01 11:33:23 +0200 | v01d4lph4 | (~v01d4lph4@user/v01d4lph4) (Remote host closed the connection) |
2021-07-01 11:35:02 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 268 seconds) |
2021-07-01 11:40:02 +0200 | Pickchea | (~private@user/pickchea) |
2021-07-01 11:45:14 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 11:49:43 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 258 seconds) |
2021-07-01 11:53:00 +0200 | Ariakenom | (~Ariakenom@c83-255-154-140.bredband.tele2.se) (Ping timeout: 252 seconds) |
2021-07-01 11:53:26 +0200 | mikail | (~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f) (Remote host closed the connection) |
2021-07-01 11:53:56 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 258 seconds) |
2021-07-01 11:58:04 +0200 | mikail | (~mikail@90.212.77.3) |
2021-07-01 12:02:52 +0200 | derelict | (~derelict@user/derelict) |
2021-07-01 12:05:56 +0200 | Torro | (Torro@gateway/vpn/protonvpn/torro) |
2021-07-01 12:08:29 +0200 | dunj3 | (~dunj3@p200300f61714a66193d8ecf822b563af.dip0.t-ipconnect.de) |
2021-07-01 12:09:35 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dc49:b28b:5485:3e7e) |
2021-07-01 12:11:54 +0200 | azeem | (~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it) (Ping timeout: 240 seconds) |
2021-07-01 12:12:10 +0200 | azeem | (~azeem@176.201.21.236) |
2021-07-01 12:13:54 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dc49:b28b:5485:3e7e) (Ping timeout: 240 seconds) |
2021-07-01 12:14:19 +0200 | a6a45081-2b83 | (~aditya@223.235.222.167) (Remote host closed the connection) |
2021-07-01 12:15:29 +0200 | ph88 | (~ph88@ip5f5af6fd.dynamic.kabel-deutschland.de) |
2021-07-01 12:24:22 +0200 | azeem | (~azeem@176.201.21.236) (Ping timeout: 268 seconds) |
2021-07-01 12:25:48 +0200 | azeem | (~azeem@176.201.21.236) |
2021-07-01 12:27:26 +0200 | neo | (~neo3@cpe-292712.ip.primehome.com) |
2021-07-01 12:28:49 +0200 | haliq | (~haliq@128.106.240.245) (Quit: Client closed) |
2021-07-01 12:30:15 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection) |
2021-07-01 12:37:51 +0200 | azeem | (~azeem@176.201.21.236) (Ping timeout: 265 seconds) |
2021-07-01 12:40:47 +0200 | azeem | (~azeem@176.201.21.236) |
2021-07-01 12:42:18 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 240 seconds) |
2021-07-01 12:43:10 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-01 12:43:29 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-07-01 12:44:02 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-01 12:45:06 +0200 | zangi | (~zangi@103.154.230.230) (Ping timeout: 240 seconds) |
2021-07-01 12:46:14 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-07-01 12:47:26 +0200 | zangi | (~zangi@114.125.101.225) |
2021-07-01 12:47:49 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 12:48:00 +0200 | oxide | (~lambda@user/oxide) (Ping timeout: 265 seconds) |
2021-07-01 12:48:18 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 272 seconds) |
2021-07-01 12:49:06 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-07-01 12:49:25 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-01 12:49:34 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-01 12:49:57 +0200 | nschoe | (~quassel@178.251.84.79) |
2021-07-01 12:49:59 +0200 | Schrostfutz | (~Schrostfu@schettlerdck.tkn.tu-berlin.de) |
2021-07-01 12:50:01 +0200 | zangi | (~zangi@114.125.101.225) (Client Quit) |
2021-07-01 12:50:08 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-07-01 12:53:21 +0200 | alex3 | (~alex3@BSN-77-82-41.static.siol.net) (Ping timeout: 258 seconds) |
2021-07-01 12:54:36 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
2021-07-01 12:54:42 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-07-01 12:55:25 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-01 12:55:54 +0200 | azeem | (~azeem@176.201.21.236) (Ping timeout: 272 seconds) |
2021-07-01 12:57:27 +0200 | azeem | (~azeem@176.201.21.236) |
2021-07-01 13:00:18 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-07-01 13:00:32 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-07-01 13:00:39 +0200 | alex3 | (~alex3@BSN-77-82-41.static.siol.net) |
2021-07-01 13:01:09 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-01 13:04:48 +0200 | kspalaiologos | (~kspalaiol@user/kspalaiologos) |
2021-07-01 13:05:24 +0200 | mikail | (~mikail@90.212.77.3) (Ping timeout: 272 seconds) |
2021-07-01 13:06:40 +0200 | AlexNoo_ | (~AlexNoo@94.233.241.144) |
2021-07-01 13:08:22 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2021-07-01 13:10:13 +0200 | AlexNoo | (~AlexNoo@178.34.161.92) (Ping timeout: 258 seconds) |
2021-07-01 13:10:17 +0200 | ukari | (~ukari@user/ukari) (Remote host closed the connection) |
2021-07-01 13:10:19 +0200 | AlexZenon | (~alzenon@178.34.161.92) (Ping timeout: 268 seconds) |
2021-07-01 13:10:22 +0200 | Alex_test | (~al_test@178.34.161.92) (Ping timeout: 252 seconds) |
2021-07-01 13:10:50 +0200 | ukari | (~ukari@user/ukari) |
2021-07-01 13:10:52 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dc49:b28b:5485:3e7e) |
2021-07-01 13:13:57 +0200 | mikail | (~mikail@90.152.14.81) |
2021-07-01 13:14:11 +0200 | AlexZenon | (~alzenon@94.233.241.144) |
2021-07-01 13:14:32 +0200 | Alex_test | (~al_test@94.233.241.144) |
2021-07-01 13:15:32 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dc49:b28b:5485:3e7e) (Ping timeout: 256 seconds) |
2021-07-01 13:23:06 +0200 | azeem | (~azeem@176.201.21.236) (Ping timeout: 240 seconds) |
2021-07-01 13:24:18 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 252 seconds) |
2021-07-01 13:25:38 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 13:26:15 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 13:26:44 +0200 | azeem | (~azeem@176.201.21.236) |
2021-07-01 13:27:20 +0200 | natechan | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
2021-07-01 13:27:48 +0200 | Ariakenom | (~Ariakenom@c83-255-154-140.bredband.tele2.se) |
2021-07-01 13:29:45 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) |
2021-07-01 13:30:44 +0200 | chris_ | (~chris@81.96.113.213) (Ping timeout: 272 seconds) |
2021-07-01 13:31:17 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 13:31:20 +0200 | natechan | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-01 13:32:22 +0200 | jippiedoe | (~david@2a02-a44c-e14e-1-2787-f5de-e687-987e.fixed6.kpn.net) |
2021-07-01 13:35:40 +0200 | chris_ | (~chris@81.96.113.213) (Ping timeout: 252 seconds) |
2021-07-01 13:37:55 +0200 | chronon | (~chronon@user/chronon) () |
2021-07-01 13:39:10 +0200 | anandprabhu | (~anandprab@94.202.243.198) (Quit: Leaving) |
2021-07-01 13:40:26 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection) |
2021-07-01 13:44:29 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2021-07-01 13:48:28 +0200 | jespada | (~jespada@90.254.247.46) (Ping timeout: 272 seconds) |
2021-07-01 13:49:06 +0200 | jespada | (~jespada@90.254.247.46) |
2021-07-01 13:55:08 +0200 | <Profpatsch> | What do people do with lots of nested IO (Validation err a) operations? |
2021-07-01 13:55:56 +0200 | <merijn> | "It Depends (TM)" |
2021-07-01 13:57:18 +0200 | azeem | (~azeem@176.201.21.236) (Ping timeout: 252 seconds) |
2021-07-01 13:58:11 +0200 | <Franciman> | haskell is basically at a dead end |
2021-07-01 13:58:24 +0200 | <Franciman> | it has to decide |
2021-07-01 13:58:29 +0200 | <Franciman> | will it get dependent types? |
2021-07-01 13:58:42 +0200 | <Franciman> | will it get better macros? |
2021-07-01 13:58:48 +0200 | <Franciman> | what will it do? |
2021-07-01 13:58:51 +0200 | <Franciman> | will it stay the same? |
2021-07-01 13:59:17 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 258 seconds) |
2021-07-01 13:59:35 +0200 | cheater | (~Username@user/cheater) |
2021-07-01 14:00:01 +0200 | <Profpatsch> | Franciman: ok |
2021-07-01 14:00:17 +0200 | <Profpatsch> | merijn: on what? |
2021-07-01 14:01:17 +0200 | <hpc> | the real problem with haskell is it can't implement ebpf in homomorphically encrypted iphone apps :D |
2021-07-01 14:01:25 +0200 | Codaraxis__ | (~Codaraxis@193.32.126.157) (Remote host closed the connection) |
2021-07-01 14:01:39 +0200 | <merijn> | Profpatsch: What's the errors? How do you wanna handle them? Why are they in IO? How do you wanna deal with complication from that? etc. |
2021-07-01 14:01:44 +0200 | Codaraxis__ | (~Codaraxis@193.32.126.157) |
2021-07-01 14:02:33 +0200 | azeem | (~azeem@176.201.21.236) |
2021-07-01 14:03:00 +0200 | <Profpatsch> | merijn: basically I have a bunch of IO functions that parse stuff into Validation |
2021-07-01 14:03:15 +0200 | <Profpatsch> | e.g. readDir and then read every file in the dir |
2021-07-01 14:03:23 +0200 | fef | (~thedawn@user/thedawn) |
2021-07-01 14:03:31 +0200 | magnuscake | (~magnuscak@87-121-92-61.dyn.launtel.net.au) |
2021-07-01 14:03:57 +0200 | <Profpatsch> | Usually the way that works is if readDir fails, put that in the Failure and return, if it succeeds read every file and accumulate errors |
2021-07-01 14:04:17 +0200 | <magnuscake> | Hello. I have the following; https://paste.tomsmeding.com/HCa1nNvS |
2021-07-01 14:04:19 +0200 | <Profpatsch> | So there’s a bunch of nested (a -> IO (Validation (NonEmpty err) b) |
2021-07-01 14:04:27 +0200 | <magnuscake> | This is just a general question, but for normal form, why can't I write |
2021-07-01 14:04:37 +0200 | <magnuscake> | data Garden' = Gardner Gardneria' |
2021-07-01 14:04:55 +0200 | <merijn> | I'd say you first use sequence to go from "[IO (Validation err a)]" to "IO [Validation err a]" and then you can fmap sequence into IO to go from '[Validation err a]' to 'Validation err [a]' |
2021-07-01 14:05:07 +0200 | <magnuscake> | | Gardner Daisy' |
2021-07-01 14:05:32 +0200 | <hpc> | magnuscake: the first thing in each section is the data constructor |
2021-07-01 14:05:39 +0200 | <hpc> | it's easier to see with GADT syntax, you get something like |
2021-07-01 14:05:59 +0200 | <hpc> | data Garden' where Gardenia' :: Gardener -> Garden'; Daisy' :: Gardener -> Garden'; ... |
2021-07-01 14:06:18 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b954061d05013652ae098.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2021-07-01 14:06:22 +0200 | <hpc> | and those constructors have to be unique so you know which one it is later when you construct the value |
2021-07-01 14:07:50 +0200 | <magnuscake> | Ah ok that makes sense thanks |
2021-07-01 14:08:15 +0200 | <Profpatsch> | merijn: let’s see whether this play on traverse gets me anywhere: |
2021-07-01 14:08:17 +0200 | <Profpatsch> | forValidate :: |
2021-07-01 14:08:20 +0200 | <Profpatsch> | (Traversable t, Applicative ap, Semigroup err) => |
2021-07-01 14:08:22 +0200 | <Profpatsch> | t (ap (Validation err a)) -> |
2021-07-01 14:08:22 +0200 | phma | (phma@2001:5b0:211c:8948:6f8b:5fd0:dc14:21f2) (Read error: Connection reset by peer) |
2021-07-01 14:08:24 +0200 | <Profpatsch> | (a -> ap (Validation err b)) -> |
2021-07-01 14:08:26 +0200 | <Profpatsch> | ap (t (Validation err b)) |
2021-07-01 14:09:04 +0200 | AlexNoo_ | AlexNoo |
2021-07-01 14:09:14 +0200 | phma | (phma@2001:5b0:211f:2298:dd93:a388:d3e:b1b1) |
2021-07-01 14:09:38 +0200 | lortabac | (~lortabac@95.138.56.124) |
2021-07-01 14:10:35 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2021-07-01 14:12:36 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b9504558b1d2f6b7134fe.dip0.t-ipconnect.de) |
2021-07-01 14:19:28 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-07-01 14:21:06 +0200 | azeem | (~azeem@176.201.21.236) (Ping timeout: 240 seconds) |
2021-07-01 14:21:21 +0200 | azeem | (~azeem@176.201.21.236) |
2021-07-01 14:25:24 +0200 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
2021-07-01 14:25:24 +0200 | Kaipi | (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) |
2021-07-01 14:26:49 +0200 | Kaipi | (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Read error: Connection reset by peer) |
2021-07-01 14:26:59 +0200 | Kaipi | (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) |
2021-07-01 14:27:01 +0200 | dwalker | (~user@user/dwalker) |
2021-07-01 14:29:53 +0200 | pbrisbin | (~patrick@pool-173-49-147-28.phlapa.fios.verizon.net) |
2021-07-01 14:30:44 +0200 | jumper149 | (~jumper149@80.240.31.34) |
2021-07-01 14:31:06 +0200 | <jumper149> | Hmmmm, ghc is using 30GB RAM + 60GB swap. I think something might be wrong x) |
2021-07-01 14:31:22 +0200 | <jumper149> | It fininshes compiling though |
2021-07-01 14:31:40 +0200 | stevenxl | (~stevenlei@68.235.43.101) |
2021-07-01 14:34:33 +0200 | dwalker | (~user@user/dwalker) (Quit: ERC Version 5.3 (IRC client for Emacs)) |
2021-07-01 14:35:30 +0200 | machinedgod | (~machinedg@24.105.81.50) |
2021-07-01 14:37:55 +0200 | dwalker | (~user@185.189.160.132) |
2021-07-01 14:39:54 +0200 | azeem | (~azeem@176.201.21.236) (Ping timeout: 240 seconds) |
2021-07-01 14:40:05 +0200 | <merijn> | jumper149: oof |
2021-07-01 14:42:49 +0200 | <jumper149> | merijn: https://github.com/biocad/servant-openapi3/issues/8 |
2021-07-01 14:42:55 +0200 | <jumper149> | This seems to be related. |
2021-07-01 14:42:58 +0200 | notzmv | (~zmv@user/notzmv) |
2021-07-01 14:43:16 +0200 | <jumper149> | I hope splitting up the API type will help |
2021-07-01 14:45:03 +0200 | azeem | (~azeem@176.201.21.236) |
2021-07-01 14:45:59 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-01 14:46:23 +0200 | <merijn> | iirc Servant is rather type heavy, which certainly correlates with compile times |
2021-07-01 14:46:52 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dc49:b28b:5485:3e7e) |
2021-07-01 14:50:06 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-07-01 14:50:50 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 14:51:03 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-01 14:51:17 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dc49:b28b:5485:3e7e) (Ping timeout: 256 seconds) |
2021-07-01 14:51:41 +0200 | <maerwald> | the bigger problem with servant is my terminal size |
2021-07-01 14:52:24 +0200 | jumper149 | chuckles |
2021-07-01 14:53:43 +0200 | Ariakenom | (~Ariakenom@c83-255-154-140.bredband.tele2.se) (Quit: Leaving) |
2021-07-01 14:53:57 +0200 | Ariakenom | (~Ariakenom@c83-255-154-140.bredband.tele2.se) |
2021-07-01 14:54:08 +0200 | Ariakenom | (~Ariakenom@c83-255-154-140.bredband.tele2.se) (Read error: Connection reset by peer) |
2021-07-01 14:55:30 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2021-07-01 14:56:33 +0200 | alx741 | (~alx741@186.178.108.157) |
2021-07-01 14:58:30 +0200 | sqrt2 | (~ben@tunnel330957-pt.tunnel.tserv6.fra1.ipv6.he.net) (Quit: ZNC - http://znc.in) |
2021-07-01 14:58:41 +0200 | sqrt2 | (~ben@tunnel330957-pt.tunnel.tserv6.fra1.ipv6.he.net) |
2021-07-01 15:01:12 +0200 | <merijn> | :) |
2021-07-01 15:01:27 +0200 | <ph88> | how can i let stack download multiple GHC versions for my docker image ? so that it doesn't have to download again when image is executed ? |
2021-07-01 15:08:04 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 15:10:12 +0200 | azeem | (~azeem@176.201.21.236) (Ping timeout: 258 seconds) |
2021-07-01 15:10:35 +0200 | azeem | (~azeem@176.201.21.236) |
2021-07-01 15:12:50 +0200 | stevenxl | (~stevenlei@68.235.43.101) (Ping timeout: 256 seconds) |
2021-07-01 15:13:50 +0200 | stevenxl | (~stevenlei@68.235.43.101) |
2021-07-01 15:14:52 +0200 | <fendor> | ph88, I think you can use something like: stack setup --resolver=lts-18.0, e |
2021-07-01 15:15:11 +0200 | azeem | (~azeem@176.201.21.236) (Ping timeout: 268 seconds) |
2021-07-01 15:15:49 +0200 | <ph88> | thanks ! |
2021-07-01 15:16:28 +0200 | azeem | (~azeem@176.201.21.236) |
2021-07-01 15:17:30 +0200 | <merijn> | Ah better question is: Why are you making docker images with compilers in it? |
2021-07-01 15:18:27 +0200 | robbert-vdh | (~robbert@robbertvanderhelm.nl) (WeeChat 3.2) |
2021-07-01 15:20:03 +0200 | kspalaiologos | (~kspalaiol@user/kspalaiologos) (Quit: Leaving) |
2021-07-01 15:21:03 +0200 | <fendor> | development container! |
2021-07-01 15:23:09 +0200 | magnuscake | (~magnuscak@87-121-92-61.dyn.launtel.net.au) (Ping timeout: 265 seconds) |
2021-07-01 15:27:02 +0200 | qrpnxz | (~qrpnxz@user/qrpnxz) (Ping timeout: 272 seconds) |
2021-07-01 15:28:45 +0200 | azeem | (~azeem@176.201.21.236) (Ping timeout: 268 seconds) |
2021-07-01 15:29:50 +0200 | azeem | (~azeem@176.201.21.236) |
2021-07-01 15:33:50 +0200 | favonia | (~favonia@user/favonia) |
2021-07-01 15:38:42 +0200 | azeem | (~azeem@176.201.21.236) (Ping timeout: 240 seconds) |
2021-07-01 15:38:55 +0200 | dwalker | (~user@185.189.160.132) (Quit: ERC Version 5.3 (IRC client for Emacs)) |
2021-07-01 15:39:16 +0200 | tabemann | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection) |
2021-07-01 15:39:29 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 15:39:52 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-07-01 15:40:06 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 15:40:45 +0200 | mnrmnaugh | i |
2021-07-01 15:40:55 +0200 | i | mnrmnaugh |
2021-07-01 15:41:11 +0200 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-07-01 15:41:15 +0200 | mnrmnaugh | why |
2021-07-01 15:41:30 +0200 | why | awk |
2021-07-01 15:41:52 +0200 | tabemann | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
2021-07-01 15:42:15 +0200 | fef | (~thedawn@user/thedawn) (Ping timeout: 244 seconds) |
2021-07-01 15:42:27 +0200 | tabemann | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection) |
2021-07-01 15:42:55 +0200 | tabemann | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
2021-07-01 15:45:00 +0200 | chris_ | (~chris@81.96.113.213) (Ping timeout: 272 seconds) |
2021-07-01 15:45:29 +0200 | azeem | (~azeem@176.201.21.236) |
2021-07-01 15:48:18 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 240 seconds) |
2021-07-01 15:49:06 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2021-07-01 15:50:04 +0200 | azeem | (~azeem@176.201.21.236) (Ping timeout: 272 seconds) |
2021-07-01 15:53:34 +0200 | azeem | (~azeem@176.201.21.236) |
2021-07-01 15:57:11 +0200 | Ariakenom | (~Ariakenom@c83-255-154-140.bredband.tele2.se) |
2021-07-01 15:57:16 +0200 | Ariakenom | (~Ariakenom@c83-255-154-140.bredband.tele2.se) (Read error: Connection reset by peer) |
2021-07-01 15:58:44 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b9504558b1d2f6b7134fe.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2021-07-01 15:59:29 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) |
2021-07-01 16:00:18 +0200 | Feuermagier_ | (~Feuermagi@2a02:2488:4211:3400:5def:8486:9e4:b49a) (Ping timeout: 240 seconds) |
2021-07-01 16:00:23 +0200 | fvr | (uid503686@id-503686.highgate.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-01 16:01:19 +0200 | Ariakenom | (~Ariakenom@c83-255-154-140.bredband.tele2.se) |
2021-07-01 16:02:17 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b9504558b1d2f6b7134fe.dip0.t-ipconnect.de) |
2021-07-01 16:04:15 +0200 | zebrag | (~chris@user/zebrag) |
2021-07-01 16:05:55 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-07-01 16:07:10 +0200 | fizbin_ | (~fizbin@93.sub-174-198-203.myvzw.com) |
2021-07-01 16:07:36 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 268 seconds) |
2021-07-01 16:08:13 +0200 | MQ-17J | (~MQ-17J@8.21.10.15) (Ping timeout: 268 seconds) |
2021-07-01 16:08:22 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b9504558b1d2f6b7134fe.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2021-07-01 16:08:54 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-01 16:09:56 +0200 | Deide | (~Deide@wire.desu.ga) |
2021-07-01 16:09:56 +0200 | Deide | (~Deide@wire.desu.ga) (Changing host) |
2021-07-01 16:09:56 +0200 | Deide | (~Deide@user/deide) |
2021-07-01 16:10:02 +0200 | fendor | (~fendor@77.119.196.177.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-07-01 16:12:44 +0200 | fendor | (~fendor@77.119.218.107.wireless.dyn.drei.com) |
2021-07-01 16:14:30 +0200 | <Profpatsch> | super helpful for validation: |
2021-07-01 16:14:32 +0200 | <Profpatsch> | traverseFold :: (Applicative ap, Traversable t, Monoid m) => (a -> ap m) -> t a -> ap m |
2021-07-01 16:14:35 +0200 | <Profpatsch> | traverseFold f xs = fold <$> traverse f xs |
2021-07-01 16:15:02 +0200 | TranquilEcho | (~grom@user/tranquilecho) |
2021-07-01 16:15:27 +0200 | <Profpatsch> | (a -> IO (Validation err b)) -> IO a -> IO (Validation err b) |
2021-07-01 16:15:54 +0200 | <Taneb> | Profpatsch: I think that can be rewritten to just have a Foldable constraint on t |
2021-07-01 16:16:24 +0200 | <Profpatsch> | Taneb: how do you do traverse then? |
2021-07-01 16:16:45 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-07-01 16:16:51 +0200 | <Taneb> | Profpatsch: you don't need it, a -> Ap ap m has the right monoid instance to just use foldmap |
2021-07-01 16:17:42 +0200 | <Profpatsch> | Taneb: what does the implementation look like? |
2021-07-01 16:17:44 +0200 | <Taneb> | :t \f -> getAp . foldMap (Ap . f) |
2021-07-01 16:17:45 +0200 | <lambdabot> | forall k (t :: * -> *) (f :: k -> *) (a1 :: k) a2. (Foldable t, Monoid (Ap f a1)) => (a2 -> f a1) -> t a2 -> f a1 |
2021-07-01 16:18:30 +0200 | <Taneb> | :: (Foldable t, Applicative f, Monoid m) => (a -> f m) -> t a -> f m |
2021-07-01 16:18:51 +0200 | <Taneb> | Ap is in Data.Monoid although I'm not quite convinced that lambdabot picked up the right Ap there |
2021-07-01 16:20:18 +0200 | <Profpatsch> | Taneb: but can you do the same for Semigroup? |
2021-07-01 16:20:36 +0200 | <Profpatsch> | I don’t think you can |
2021-07-01 16:20:41 +0200 | <Taneb> | Profpatsch: with Foldable1 from semigroupoids I guess |
2021-07-01 16:20:47 +0200 | <Taneb> | But I don't think you can your way either |
2021-07-01 16:20:51 +0200 | <Profpatsch> | But that doesn’t use APplicative |
2021-07-01 16:20:59 +0200 | <Profpatsch> | But the class that just has <*> |
2021-07-01 16:21:01 +0200 | <Profpatsch> | not pure |
2021-07-01 16:21:16 +0200 | <Profpatsch> | Apply |
2021-07-01 16:22:52 +0200 | <Profpatsch> | But it’s interesting that you can weaken one but not the other in the ecosystem |
2021-07-01 16:23:00 +0200 | <Taneb> | ? |
2021-07-01 16:23:14 +0200 | <Profpatsch> | Doesn’t work for Semigroup |
2021-07-01 16:23:30 +0200 | <Profpatsch> | Even though it could, but the class tree is missing Apply |
2021-07-01 16:24:29 +0200 | <Taneb> | :t \f -> foldr1 (liftA2 (<>) . f) |
2021-07-01 16:24:30 +0200 | <lambdabot> | (Foldable t, Applicative f, Semigroup c) => (f c -> f c) -> t (f c) -> f c |
2021-07-01 16:24:39 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2021-07-01 16:24:46 +0200 | <Taneb> | That's not quite right :( |
2021-07-01 16:26:10 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 272 seconds) |
2021-07-01 16:28:24 +0200 | <Profpatsch> | Taneb: I wonder if the actual code that is run with the getAp method is different than with the traverse method |
2021-07-01 16:28:30 +0200 | <Profpatsch> | like there is a foldMap and a foldMap' |
2021-07-01 16:28:49 +0200 | <Profpatsch> | But there is no traverse' |
2021-07-01 16:29:09 +0200 | bollu | (~bollu@139.59.46.74) (Ping timeout: 272 seconds) |
2021-07-01 16:29:10 +0200 | <Profpatsch> | which kinda makes sense I guess |
2021-07-01 16:29:24 +0200 | bollu | (~bollu@139.59.46.74) |
2021-07-01 16:29:33 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 258 seconds) |
2021-07-01 16:29:51 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-07-01 16:29:56 +0200 | pja | (~pja@dsl-217-155-153-10.zen.co.uk) |
2021-07-01 16:30:26 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-01 16:31:14 +0200 | azeem | (~azeem@176.201.21.236) (Ping timeout: 272 seconds) |
2021-07-01 16:34:15 +0200 | azeem | (~azeem@176.201.21.236) |
2021-07-01 16:40:33 +0200 | <Taneb> | godbolt gives different assembly for them |
2021-07-01 16:41:14 +0200 | azeem | (~azeem@176.201.21.236) (Ping timeout: 256 seconds) |
2021-07-01 16:41:46 +0200 | azeem | (~azeem@176.201.21.236) |
2021-07-01 16:47:19 +0200 | jippiedoe | (~david@2a02-a44c-e14e-1-2787-f5de-e687-987e.fixed6.kpn.net) (Remote host closed the connection) |
2021-07-01 16:48:03 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2021-07-01 16:48:36 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dc49:b28b:5485:3e7e) |
2021-07-01 16:49:39 +0200 | fizbin_ | (~fizbin@93.sub-174-198-203.myvzw.com) (Read error: Connection reset by peer) |
2021-07-01 16:49:42 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 16:49:58 +0200 | jippiedoe | (~david@2a02-a44c-e14e-1-2787-f5de-e687-987e.fixed6.kpn.net) |
2021-07-01 16:51:24 +0200 | zeenk | (~zeenk@2a02:2f04:a106:9600:82fb:aed9:ca9:38d3) |
2021-07-01 16:51:43 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2021-07-01 16:51:48 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-01 16:52:24 +0200 | finsternis | (~X@23.226.237.192) |
2021-07-01 16:53:08 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dc49:b28b:5485:3e7e) (Ping timeout: 256 seconds) |
2021-07-01 16:54:38 +0200 | usera | (~usera@151.45.149.246) |
2021-07-01 16:59:20 +0200 | norias | (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) |
2021-07-01 16:59:41 +0200 | lambdap | (~lambdap@static.167.190.119.168.clients.your-server.de) (Quit: lambdap) |
2021-07-01 16:59:44 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-07-01 16:59:44 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
2021-07-01 17:00:15 +0200 | lambdap | (~lambdap@static.167.190.119.168.clients.your-server.de) |
2021-07-01 17:03:42 +0200 | ph88 | (~ph88@ip5f5af6fd.dynamic.kabel-deutschland.de) (Quit: Leaving) |
2021-07-01 17:05:12 +0200 | usera | (~usera@151.45.149.246) (Quit: Client closed) |
2021-07-01 17:05:46 +0200 | azeem | (~azeem@176.201.21.236) (Ping timeout: 252 seconds) |
2021-07-01 17:07:03 +0200 | jumper149 | (~jumper149@80.240.31.34) (Quit: WeeChat 3.1) |
2021-07-01 17:07:40 +0200 | cuz | (~user@38.140.58.234) |
2021-07-01 17:08:25 +0200 | aravk_ | aravk |
2021-07-01 17:10:47 +0200 | <tomsmeding> | maerwald: I saw somebody recommend the Haskell Platform to a mac user asking how to get started with haskell; I was on the brink of shouting "ghcup" but it's good I had a look at the official webpage, because I see it actually lists ghcup already :) |
2021-07-01 17:11:05 +0200 | <tomsmeding> | It does give a separate link for installing stack, but ghcup can do that now too, right? |
2021-07-01 17:11:34 +0200 | <maerwald> | yeah |
2021-07-01 17:11:38 +0200 | azeem | (~azeem@176.201.21.236) |
2021-07-01 17:12:38 +0200 | juhp | (~juhp@128.106.188.66) (Quit: juhp) |
2021-07-01 17:12:51 +0200 | juhp | (~juhp@128.106.188.66) |
2021-07-01 17:13:46 +0200 | myShoggoth | (~myShoggot@75.164.51.64) |
2021-07-01 17:13:49 +0200 | thiagomm | (~thiagomm@2804:14c:de88:87a9::1000) |
2021-07-01 17:14:05 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 256 seconds) |
2021-07-01 17:14:23 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-01 17:14:42 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 240 seconds) |
2021-07-01 17:15:20 +0200 | romes2 | (~romes2@44.190.189.46.rev.vodafone.pt) |
2021-07-01 17:15:26 +0200 | <romes2> | hi! |
2021-07-01 17:15:54 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 240 seconds) |
2021-07-01 17:15:55 +0200 | <boxscape> | hi |
2021-07-01 17:15:58 +0200 | thiagomm | (~thiagomm@2804:14c:de88:87a9::1000) (Client Quit) |
2021-07-01 17:16:01 +0200 | <Vq> | Hi romes |
2021-07-01 17:16:18 +0200 | TranquilEcho | (~grom@user/tranquilecho) (Ping timeout: 240 seconds) |
2021-07-01 17:16:23 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 17:17:01 +0200 | dunkeln | (~dunkeln@188.70.10.165) |
2021-07-01 17:17:25 +0200 | TranquilEcho | (~grom@user/tranquilecho) |
2021-07-01 17:18:27 +0200 | nanoc | (~nanocoast@p200300e1273bf000ccc6df24f323b7c2.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
2021-07-01 17:18:42 +0200 | mei | (~mei@user/mei) |
2021-07-01 17:19:19 +0200 | <romes2> | I have a question, how would I check if the value of a Monadic computation is empty ? |
2021-07-01 17:19:38 +0200 | cuz | (~user@38.140.58.234) (Remote host closed the connection) |
2021-07-01 17:19:48 +0200 | <romes2> | x = Nothing >> return (Just 1) is Nothing, and I could wrap it in a "case", but if it wasn't the Maybe monad, but something else that supported "empty" |
2021-07-01 17:20:40 +0200 | cuz | (~user@38.140.58.234) |
2021-07-01 17:20:55 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 246 seconds) |
2021-07-01 17:21:18 +0200 | <romes2> | oh I think I figured it out... when I phrased it as "conditional" when writing another message I got an idea |
2021-07-01 17:22:19 +0200 | <romes2> | thank you everyone hahaha (if anyone wants to know this remembered me of a function called "ifte" in the LogicT backtracking library |
2021-07-01 17:22:27 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 258 seconds) |
2021-07-01 17:22:36 +0200 | Guest1870 | (~Guest18@27.147.234.193) |
2021-07-01 17:22:45 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-01 17:23:10 +0200 | <merijn> | tomsmeding: on macos you might as well install the ghc bindists, imo |
2021-07-01 17:23:52 +0200 | <Guest1870> | why is `take 10 [13, 26..]` better than `[13, 26..13*10]`? |
2021-07-01 17:24:08 +0200 | <merijn> | Who says it is? |
2021-07-01 17:24:23 +0200 | <Guest1870> | http://learnyouahaskell.com/starting-out#ready-set-go |
2021-07-01 17:25:21 +0200 | <merijn> | I don't see where it says that is better? |
2021-07-01 17:25:39 +0200 | <boxscape> | Guest1870: to me it's a bit more immediately obvious what `take 10 [13, 26..]` means but I'd say both are fine |
2021-07-01 17:25:41 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 17:25:46 +0200 | <boxscape> | merijn: it says "Sure, you could do [13,26..24*13]. But there's a better way: take 24 [13,26..]" |
2021-07-01 17:26:02 +0200 | <geekosaur> | might be because it |
2021-07-01 17:26:04 +0200 | <merijn> | I'd say the main advantage is where you don't know if you will need 10 items ahead of time |
2021-07-01 17:26:10 +0200 | <geekosaur> | 's clearer what you intend |
2021-07-01 17:26:14 +0200 | <Guest1870> | better how? syntax wise? |
2021-07-01 17:26:22 +0200 | <merijn> | Like, suppose you wanna assign unique indices to a container of elements |
2021-07-01 17:26:36 +0200 | <merijn> | With the infinite list you don't have to know the size ahead of time |
2021-07-01 17:27:59 +0200 | <dolio> | I'd have to think longer about what the actual upper bound should be, at least. |
2021-07-01 17:29:13 +0200 | tabemann | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection) |
2021-07-01 17:29:13 +0200 | <dolio> | I'm never confident about that sort of off-by-one stuff. |
2021-07-01 17:30:50 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 17:31:26 +0200 | Guest1870 | (~Guest18@27.147.234.193) (Quit: Client closed) |
2021-07-01 17:31:27 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 17:31:32 +0200 | shapr | (~user@pool-108-28-144-11.washdc.fios.verizon.net) |
2021-07-01 17:32:23 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 17:32:23 +0200 | cuz | (~user@38.140.58.234) (Read error: Connection reset by peer) |
2021-07-01 17:32:35 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 17:32:35 +0200 | awk | (~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net) (Read error: Connection reset by peer) |
2021-07-01 17:32:39 +0200 | cuz | (~user@38.140.58.234) |
2021-07-01 17:33:11 +0200 | tabemann | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
2021-07-01 17:33:23 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) |
2021-07-01 17:34:00 +0200 | mnrmnaugh | (~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net) |
2021-07-01 17:36:11 +0200 | tabemann | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection) |
2021-07-01 17:37:20 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) (Ping timeout: 256 seconds) |
2021-07-01 17:37:33 +0200 | tabemann | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
2021-07-01 17:42:23 +0200 | dunkeln | (~dunkeln@188.70.10.165) (Ping timeout: 258 seconds) |
2021-07-01 17:42:43 +0200 | lortabac | (~lortabac@95.138.56.124) (Quit: WeeChat 2.8) |
2021-07-01 17:44:05 +0200 | dunkeln | (~dunkeln@188.70.10.165) |
2021-07-01 17:44:29 +0200 | <nshepperd> | which is better depends what the list is for |
2021-07-01 17:46:52 +0200 | warnz | (~warnz@104-55-100-55.lightspeed.lsvlky.sbcglobal.net) |
2021-07-01 17:48:19 +0200 | Morrow | (~MorrowM_@bzq-110-168-31-106.red.bezeqint.net) |
2021-07-01 17:50:33 +0200 | tabemann | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection) |
2021-07-01 17:53:03 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-07-01 17:53:09 +0200 | tabemann | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
2021-07-01 17:56:31 +0200 | tenniscp25 | (~textual@134.196.209.118) |
2021-07-01 17:56:46 +0200 | Torro | (Torro@gateway/vpn/protonvpn/torro) (Quit: leaving) |
2021-07-01 17:57:39 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2021-07-01 17:59:56 +0200 | eight | (~eight@user/eight) |
2021-07-01 18:00:41 +0200 | <monochrom> | Both are worse. |
2021-07-01 18:01:25 +0200 | <monochrom> | One of them doesn't make clear what length to expect. The other doesn't make clear what end to expect. |
2021-07-01 18:01:33 +0200 | <monochrom> | The only way to win is not to play. |
2021-07-01 18:02:39 +0200 | berberman_ | (~berberman@user/berberman) |
2021-07-01 18:02:43 +0200 | <monochrom> | perhaps s/make clear/spell out/ |
2021-07-01 18:02:50 +0200 | berberman | (~berberman@user/berberman) (Ping timeout: 256 seconds) |
2021-07-01 18:02:52 +0200 | <dolio> | Well, if the problem specification has the length of the list, which it does in the example, then it's easier to use the one that makes the length obvious. |
2021-07-01 18:02:56 +0200 | tenniscp25 | (~textual@134.196.209.118) (Quit: Textual IRC Client: www.textualapp.com) |
2021-07-01 18:03:19 +0200 | <monochrom> | Ah, yes I agree. :) |
2021-07-01 18:03:25 +0200 | tenniscp25 | (~textual@134.196.209.118) |
2021-07-01 18:04:21 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-01 18:04:41 +0200 | <nshepperd> | is that a koan? "there is no better, only worse" |
2021-07-01 18:04:48 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dc49:b28b:5485:3e7e) |
2021-07-01 18:04:50 +0200 | <monochrom> | Oh hey I have a cunning plan! take 10 [13, 26..13*10] |
2021-07-01 18:06:20 +0200 | <monochrom> | nshepperd, generally I think up pessimism jokes. For example, every silver lining has tarnish. >:) |
2021-07-01 18:07:24 +0200 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: Textual IRC Client: www.textualapp.com) |
2021-07-01 18:09:06 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dc49:b28b:5485:3e7e) (Ping timeout: 240 seconds) |
2021-07-01 18:13:46 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 265 seconds) |
2021-07-01 18:14:52 +0200 | lbseale | (~lbseale@user/ep1ctetus) |
2021-07-01 18:16:13 +0200 | MQ-17J | (~MQ-17J@8.21.10.15) |
2021-07-01 18:16:42 +0200 | xff0x | (~xff0x@2001:1a81:5237:1000:d9df:afaf:2f58:a5ba) (Ping timeout: 240 seconds) |
2021-07-01 18:16:45 +0200 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2021-07-01 18:18:49 +0200 | xff0x | (~xff0x@141.98.255.146) |
2021-07-01 18:19:30 +0200 | nschoe | (~quassel@178.251.84.79) (Ping timeout: 240 seconds) |
2021-07-01 18:22:46 +0200 | econo | (uid147250@user/econo) |
2021-07-01 18:24:15 +0200 | romes2 | (~romes2@44.190.189.46.rev.vodafone.pt) (Quit: Client closed) |
2021-07-01 18:25:01 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-01 18:25:07 +0200 | azeem | (~azeem@176.201.21.236) (Ping timeout: 268 seconds) |
2021-07-01 18:26:21 +0200 | qbt | (~edun@user/edun) (Ping timeout: 268 seconds) |
2021-07-01 18:26:31 +0200 | tenniscp25 | (~textual@134.196.209.118) (Quit: Textual IRC Client: www.textualapp.com) |
2021-07-01 18:27:41 +0200 | azeem | (~azeem@176.201.21.236) |
2021-07-01 18:27:50 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:dc49:b28b:5485:3e7e) |
2021-07-01 18:28:42 +0200 | fef | (~thedawn@user/thedawn) |
2021-07-01 18:28:55 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 18:29:37 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 18:30:06 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-07-01 18:32:57 +0200 | <DigitalKiwi> | not every thorn has a rose |
2021-07-01 18:33:29 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.2) |
2021-07-01 18:33:54 +0200 | chris_ | (~chris@81.96.113.213) (Ping timeout: 240 seconds) |
2021-07-01 18:34:30 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 18:34:57 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
2021-07-01 18:35:08 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-07-01 18:37:12 +0200 | dunkeln | (~dunkeln@188.70.10.165) (Ping timeout: 258 seconds) |
2021-07-01 18:38:54 +0200 | chris_ | (~chris@81.96.113.213) (Ping timeout: 252 seconds) |
2021-07-01 18:39:14 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2021-07-01 18:40:06 +0200 | dajoer | (~david@user/gvx) (Quit: leaving) |
2021-07-01 18:40:26 +0200 | <monochrom> | Even better: roses wither, thorns are forever >:) |
2021-07-01 18:41:12 +0200 | <qrpnxz> | thorns let roses live longer |
2021-07-01 18:44:03 +0200 | <DigitalKiwi> | oh here comes the go programmer telling us "thorns are good, actually" |
2021-07-01 18:44:33 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 18:47:20 +0200 | dunkeln | (~dunkeln@188.70.10.165) |
2021-07-01 18:49:47 +0200 | azeem | (~azeem@176.201.21.236) (Ping timeout: 268 seconds) |
2021-07-01 18:49:50 +0200 | jess | (~jess@libera/staff/jess) |
2021-07-01 18:50:22 +0200 | Guest9 | (~Guest9@103.86.19.221) |
2021-07-01 18:51:49 +0200 | azeem | (~azeem@176.201.21.236) |
2021-07-01 18:53:53 +0200 | xff0x | (~xff0x@141.98.255.146) (Ping timeout: 265 seconds) |
2021-07-01 18:54:43 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-01 18:55:15 +0200 | xff0x | (~xff0x@2001:1a81:5237:1000:d9df:afaf:2f58:a5ba) |
2021-07-01 18:55:24 +0200 | azeem | (~azeem@176.201.21.236) (Read error: Connection reset by peer) |
2021-07-01 18:56:19 +0200 | azeem | (~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it) |
2021-07-01 19:00:04 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2021-07-01 19:02:01 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-01 19:04:02 +0200 | MoC | (~moc@user/moc) (Quit: Konversation terminated!) |
2021-07-01 19:05:10 +0200 | azeem | (~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it) (Ping timeout: 256 seconds) |
2021-07-01 19:06:11 +0200 | azeem | (~azeem@176.201.21.236) |
2021-07-01 19:07:31 +0200 | pavonia | (~user@user/siracusa) |
2021-07-01 19:08:50 +0200 | azeem | (~azeem@176.201.21.236) (Read error: Connection reset by peer) |
2021-07-01 19:10:10 +0200 | azeem | (~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it) |
2021-07-01 19:11:06 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 240 seconds) |
2021-07-01 19:11:52 +0200 | cheater | (~Username@user/cheater) |
2021-07-01 19:14:11 +0200 | mikail_ | (~mikail@213.205.242.43) |
2021-07-01 19:14:46 +0200 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 258 seconds) |
2021-07-01 19:15:28 +0200 | nixtamalize | (~nixtamali@117.222.65.230) |
2021-07-01 19:15:58 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2021-07-01 19:16:42 +0200 | mikail | (~mikail@90.152.14.81) (Ping timeout: 240 seconds) |
2021-07-01 19:19:30 +0200 | ringo_ | (~ringo@157.230.117.128) |
2021-07-01 19:20:18 +0200 | ph88 | (~ph88@ip5f5af6fd.dynamic.kabel-deutschland.de) |
2021-07-01 19:22:36 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-07-01 19:23:18 +0200 | jippiedoe | (~david@2a02-a44c-e14e-1-2787-f5de-e687-987e.fixed6.kpn.net) (Ping timeout: 256 seconds) |
2021-07-01 19:24:10 +0200 | elf_fortrez | (~elf_fortr@adsl-72-50-4-120.prtc.net) |
2021-07-01 19:30:17 +0200 | mikail__ | (~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f) |
2021-07-01 19:31:54 +0200 | mikail_ | (~mikail@213.205.242.43) (Ping timeout: 240 seconds) |
2021-07-01 19:32:24 +0200 | mikail__ | (~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f) (Remote host closed the connection) |
2021-07-01 19:33:00 +0200 | mikail__ | (~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f) |
2021-07-01 19:33:41 +0200 | <qrpnxz> | xd |
2021-07-01 19:35:07 +0200 | alphabeta | (~kilolympu@cpc92710-cmbg20-2-0-cust265.5-4.cable.virginm.net) |
2021-07-01 19:36:14 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-07-01 19:36:21 +0200 | mikail__ | (~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f) (Remote host closed the connection) |
2021-07-01 19:37:19 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-07-01 19:37:58 +0200 | anviking | (~anviking@90-229-193-56-no14.tbcn.telia.com) |
2021-07-01 19:38:12 +0200 | kilolympus | (~kilolympu@cpc92710-cmbg20-2-0-cust265.5-4.cable.virginm.net) (Ping timeout: 268 seconds) |
2021-07-01 19:39:00 +0200 | anviking | (~anviking@90-229-193-56-no14.tbcn.telia.com) (Client Quit) |
2021-07-01 19:39:10 +0200 | azeem | (~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it) (Ping timeout: 256 seconds) |
2021-07-01 19:39:15 +0200 | mikail__ | (~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f) |
2021-07-01 19:41:00 +0200 | azeem | (~azeem@176.201.21.236) |
2021-07-01 19:44:48 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 19:45:30 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 19:45:30 +0200 | <qrpnxz> | thorns keep side-effects out of functions in haskell |
2021-07-01 19:45:49 +0200 | fendor | (~fendor@77.119.218.107.wireless.dyn.drei.com) (Ping timeout: 258 seconds) |
2021-07-01 19:47:32 +0200 | azeem | (~azeem@176.201.21.236) (Read error: Connection reset by peer) |
2021-07-01 19:48:04 +0200 | azeem | (~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it) |
2021-07-01 19:48:19 +0200 | tabemann | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection) |
2021-07-01 19:49:07 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 19:49:19 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 19:49:22 +0200 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) |
2021-07-01 19:52:11 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-01 19:52:18 +0200 | wickedjargon | (~wickedjar@cpeac202ebc90c3-cmac202ebc90c0.cpe.net.fido.ca) |
2021-07-01 19:52:58 +0200 | fabfianda | (~fabfianda@37.183.255.57) (Ping timeout: 252 seconds) |
2021-07-01 19:53:21 +0200 | fabfianda | (~fabfianda@37.183.255.57) |
2021-07-01 19:54:08 +0200 | hammock | (~Hammock@2600:1700:19a1:3330::625) |
2021-07-01 19:54:32 +0200 | tabemann | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
2021-07-01 19:55:02 +0200 | ubert | (~Thunderbi@p2e5a50e5.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2021-07-01 19:55:31 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-07-01 19:55:48 +0200 | Schrostfutz | (~Schrostfu@schettlerdck.tkn.tu-berlin.de) (Ping timeout: 272 seconds) |
2021-07-01 19:57:41 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-01 19:59:28 +0200 | norias | (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Ping timeout: 268 seconds) |
2021-07-01 19:59:53 +0200 | elf_fortrez | (~elf_fortr@adsl-72-50-4-120.prtc.net) (Quit: Client closed) |
2021-07-01 20:00:04 +0200 | fef | (~thedawn@user/thedawn) (Ping timeout: 244 seconds) |
2021-07-01 20:00:16 +0200 | Iryon | (~Iryon@2a02:a31a:a045:3500:90e2:686f:e863:4359) |
2021-07-01 20:01:11 +0200 | cheater | (~Username@user/cheater) (Quit: (BitchX) I see your BitchX is as big as mine!) |
2021-07-01 20:01:54 +0200 | <dminuoso> | accursedUnutterablePerformIO is at my side, I have all the side effects. |
2021-07-01 20:02:43 +0200 | nick8325 | (~nick@2001:9b1:26f9:3e00:b7ea:ac95:e18:4c1d) |
2021-07-01 20:03:25 +0200 | <davean> | dminuoso: just forge an MD5 hash - that way it can be SafeHaskell also |
2021-07-01 20:04:02 +0200 | shapr | (~user@pool-108-28-144-11.washdc.fios.verizon.net) (Ping timeout: 272 seconds) |
2021-07-01 20:04:20 +0200 | cheater | (~Username@user/cheater) |
2021-07-01 20:04:43 +0200 | nick8325 | (~nick@2001:9b1:26f9:3e00:b7ea:ac95:e18:4c1d) (Client Quit) |
2021-07-01 20:04:59 +0200 | nick8325 | (~nick@2001:9b1:26f9:3e00:b7ea:ac95:e18:4c1d) |
2021-07-01 20:05:41 +0200 | nick8325 | (~nick@2001:9b1:26f9:3e00:b7ea:ac95:e18:4c1d) (Client Quit) |
2021-07-01 20:05:57 +0200 | nick8325 | (~nick@2001:9b1:26f9:3e00:b7ea:ac95:e18:4c1d) |
2021-07-01 20:06:21 +0200 | mikail__ | (~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f) (Remote host closed the connection) |
2021-07-01 20:07:04 +0200 | mikail__ | (~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f) |
2021-07-01 20:07:51 +0200 | mikail__ | (~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f) (Remote host closed the connection) |
2021-07-01 20:08:02 +0200 | nixtamalize | (~nixtamali@117.222.65.230) () |
2021-07-01 20:08:11 +0200 | michalz | (~michalz@185.246.204.105) (Remote host closed the connection) |
2021-07-01 20:08:48 +0200 | mikail__ | (~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f) |
2021-07-01 20:09:52 +0200 | Pickchea | (~private@user/pickchea) |
2021-07-01 20:10:04 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) |
2021-07-01 20:10:51 +0200 | mikail__ | (~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f) (Remote host closed the connection) |
2021-07-01 20:11:18 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 252 seconds) |
2021-07-01 20:11:20 +0200 | mikail__ | (~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f) |
2021-07-01 20:11:44 +0200 | cheater | (~Username@user/cheater) |
2021-07-01 20:15:59 +0200 | hiruji | (~hiruji@user/hiruji) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-07-01 20:16:18 +0200 | hiruji | (~hiruji@user/hiruji) |
2021-07-01 20:16:23 +0200 | marinelli[m] | (~marinelli@2001:470:69fc:105::2d8) (Quit: node-irc says goodbye) |
2021-07-01 20:20:47 +0200 | ubert | (~Thunderbi@p2e5a50e5.dip0.t-ipconnect.de) |
2021-07-01 20:21:26 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-07-01 20:21:46 +0200 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 272 seconds) |
2021-07-01 20:22:58 +0200 | Guest9 | (~Guest9@103.86.19.221) (Quit: Connection closed) |
2021-07-01 20:25:47 +0200 | tabemann | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection) |
2021-07-01 20:27:28 +0200 | dunkeln | (~dunkeln@188.70.10.165) (Ping timeout: 272 seconds) |
2021-07-01 20:27:35 +0200 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
2021-07-01 20:28:03 +0200 | tabemann | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
2021-07-01 20:31:11 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-07-01 20:32:29 +0200 | Morrow | (~MorrowM_@bzq-110-168-31-106.red.bezeqint.net) (Remote host closed the connection) |
2021-07-01 20:32:48 +0200 | Morrow | (~MorrowM_@bzq-110-168-31-106.red.bezeqint.net) |
2021-07-01 20:34:13 +0200 | mikail__ | (~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f) (Quit: Leaving) |
2021-07-01 20:34:52 +0200 | <chris_> | trying to convert a division operation to a fractional |
2021-07-01 20:36:00 +0200 | <chris_> | sorry |
2021-07-01 20:36:04 +0200 | <chris_> | to a Rational* |
2021-07-01 20:37:56 +0200 | MoC | (~moc@user/moc) |
2021-07-01 20:39:51 +0200 | chexum | (~chexum@gateway/tor-sasl/chexum) (Ping timeout: 244 seconds) |
2021-07-01 20:41:23 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-07-01 20:44:48 +0200 | learner-monad | (~ehanneken@user/learner-monad) |
2021-07-01 20:47:53 +0200 | octeep[m]1 | (~octeepmoc@2001:470:69fc:105::695e) |
2021-07-01 20:47:55 +0200 | MQ-17J | (~MQ-17J@8.21.10.15) (Ping timeout: 258 seconds) |
2021-07-01 20:48:32 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-01 20:49:24 +0200 | <monochrom> | That's pretty vague. |
2021-07-01 20:50:20 +0200 | chexum | (~chexum@gateway/tor-sasl/chexum) |
2021-07-01 20:50:44 +0200 | <chris_> | i did 1/(toRational n-1) |
2021-07-01 20:51:26 +0200 | <monochrom> | What is the type of n? |
2021-07-01 20:51:36 +0200 | <monochrom> | Are you missing some parentheses? |
2021-07-01 20:51:42 +0200 | <chris_> | ahh type of n is Int |
2021-07-01 20:51:59 +0200 | <davean> | why not use %? |
2021-07-01 20:52:58 +0200 | <chris_> | what's % do? |
2021-07-01 20:53:04 +0200 | <chris_> | that does* |
2021-07-01 20:53:17 +0200 | <chris_> | % 4/2 |
2021-07-01 20:53:18 +0200 | <yahb> | chris_: 2.0 |
2021-07-01 20:53:26 +0200 | <chris_> | % 4%2 |
2021-07-01 20:53:27 +0200 | <yahb> | chris_: 2 % 1 |
2021-07-01 20:54:24 +0200 | jolly | (~jolly@208.180.97.158) (Quit: Connection closed) |
2021-07-01 20:54:27 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-07-01 20:54:33 +0200 | <monochrom> | But if n::Int, then 1%n gives Ratio Int, not Rational (Ratio Integer) |
2021-07-01 20:55:06 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 240 seconds) |
2021-07-01 20:55:23 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-01 20:56:27 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-01 21:00:24 +0200 | wickedjargon | (~wickedjar@cpeac202ebc90c3-cmac202ebc90c0.cpe.net.fido.ca) (Ping timeout: 272 seconds) |
2021-07-01 21:00:59 +0200 | MoC | (~moc@user/moc) (Quit: Konversation terminated!) |
2021-07-01 21:01:11 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-07-01 21:01:40 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
2021-07-01 21:02:11 +0200 | <chris_> | doing toRational on the (n-1) makes it run |
2021-07-01 21:02:15 +0200 | marinelli[m] | (~marinelli@2001:470:69fc:105::2d8) |
2021-07-01 21:03:32 +0200 | dunkeln_ | (~dunkeln@188.70.10.165) |
2021-07-01 21:05:31 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-07-01 21:06:18 +0200 | xff0x | (~xff0x@2001:1a81:5237:1000:d9df:afaf:2f58:a5ba) (Ping timeout: 240 seconds) |
2021-07-01 21:07:29 +0200 | xff0x | (~xff0x@2001:1a81:5237:1000:bd6:e736:a4f:c278) |
2021-07-01 21:08:44 +0200 | dunkeln_ | (~dunkeln@188.70.10.165) (Ping timeout: 265 seconds) |
2021-07-01 21:09:13 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-07-01 21:10:11 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Quit: Well, off to Libera.) |
2021-07-01 21:10:32 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2021-07-01 21:11:03 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 21:13:54 +0200 | <davean> | chris_: % is ~ a constructor for Ratio |
2021-07-01 21:14:18 +0200 | <davean> | Rational is Ratio on Integer |
2021-07-01 21:21:37 +0200 | wickedjargon | (~wickedjar@cpeac202ebc90c3-cmac202ebc90c0.cpe.net.fido.ca) |
2021-07-01 21:23:42 +0200 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2021-07-01 21:25:15 +0200 | <chris_> | ok thx davean |
2021-07-01 21:26:05 +0200 | <chris_> | seems that haskell is very explicit with its numeric types compared to other languages? |
2021-07-01 21:28:02 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-07-01 21:28:36 +0200 | <davean> | yes |
2021-07-01 21:28:51 +0200 | <davean> | It tries to not fuck up the math without making it explicite |
2021-07-01 21:29:21 +0200 | <maerwald> | Is it? I usually have no idea what's going on and insert fromIneger/fromIntegral/justMakeThisShitCompile |
2021-07-01 21:29:29 +0200 | blackfield | (~blackfiel@85.255.4.218) () |
2021-07-01 21:29:38 +0200 | <davean> | I certainly never approach it like that |
2021-07-01 21:29:45 +0200 | <maerwald> | :D |
2021-07-01 21:30:05 +0200 | <davean> | https://hackage.haskell.org/package/int-cast-0.2.0.0/docs/Data-IntCast.html is much nicer for example if you do need to convert |
2021-07-01 21:30:29 +0200 | <maerwald> | I'm exaggerating, but our numerical stuff isn't textbook engineering |
2021-07-01 21:30:40 +0200 | <davean> | Our numerical tower isn't |
2021-07-01 21:30:43 +0200 | <davean> | our numerical tower sucks |
2021-07-01 21:30:48 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 272 seconds) |
2021-07-01 21:30:48 +0200 | <davean> | I tihnk we have good conversions though |
2021-07-01 21:30:52 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-07-01 21:30:59 +0200 | <davean> | we just lack laws inside a type sadly because we split operations up poorly |
2021-07-01 21:31:07 +0200 | <davean> | Its seriously fucked up mind you |
2021-07-01 21:31:13 +0200 | <davean> | I've had SERIOUS issues due to that lack of laws |
2021-07-01 21:31:14 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-01 21:31:16 +0200 | cloudy | (~user@2600:8807:c207:f00:d412:4cce:d9f1:ba0) |
2021-07-01 21:31:52 +0200 | <davean> | We basicly can't abstract over numeric types because of it |
2021-07-01 21:32:30 +0200 | <dolio> | That seems accurate to reality. |
2021-07-01 21:32:38 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-01 21:34:26 +0200 | <davean> | Its really frustrating, but its also complicated. Its not clear what the right factoring would be |
2021-07-01 21:34:31 +0200 | jneira_ | (~jneira_@217.red-81-39-172.dynamicip.rima-tde.net) (Quit: Ping timeout (120 seconds)) |
2021-07-01 21:38:16 +0200 | <chris_> | can the same function have different pattern matching WITH different params lengths |
2021-07-01 21:38:42 +0200 | <chris_> | like: initially call this func with 1 arg, then call with 2 afterwards |
2021-07-01 21:39:02 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 272 seconds) |
2021-07-01 21:39:08 +0200 | <davean> | no, a function is exactly one thing, but you can make something that LOOKS like that with type classes. |
2021-07-01 21:39:18 +0200 | <davean> | infact, Haskell sorta only has one argument functions |
2021-07-01 21:39:50 +0200 | tomsmeding | (~tomsmedin@2a03:b0c0:0:1010::767:3001) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-07-01 21:39:59 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-07-01 21:40:06 +0200 | <davean> | You can make something difficult to tell appart from a variable argument function with type classes |
2021-07-01 21:40:09 +0200 | tomsmeding | (~tomsmedin@tomsmeding.com) |
2021-07-01 21:40:15 +0200 | <chris_> | i'm facing a dilemma with recursive incrementation |
2021-07-01 21:40:22 +0200 | <chris_> | i want to increment by argument n |
2021-07-01 21:40:47 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-01 21:41:44 +0200 | <davean> | ok, so? |
2021-07-01 21:41:46 +0200 | <Rembane> | What's the problem? |
2021-07-01 21:42:05 +0200 | <davean> | we all stare at you wondering what the problem is, and expecting you're having an x-y problem |
2021-07-01 21:42:45 +0200 | <chris_> | it's probably more simple than i realize i'll just see if i can solve it first |
2021-07-01 21:42:45 +0200 | <Rembane> | davean: If this channel had a motivating poster, that would be the text of it. |
2021-07-01 21:42:58 +0200 | Rembane | hands chris_ a rubber duck |
2021-07-01 21:43:11 +0200 | <davean> | chris_: Try focusing on what you're actually trying to do, not how you're trying to do it |
2021-07-01 21:45:11 +0200 | abrar_ | (~abrar@static-108-2-152-54.phlapa.fios.verizon.net) |
2021-07-01 21:50:38 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 256 seconds) |
2021-07-01 21:51:13 +0200 | <dminuoso> | 21:30:48 davean | I tihnk we have good conversions though |
2021-07-01 21:51:15 +0200 | <dminuoso> | We dont. |
2021-07-01 21:52:00 +0200 | <Rembane> | dminuoso: Give us the rant! |
2021-07-01 21:52:07 +0200 | <dminuoso> | I can hold back I think. |
2021-07-01 21:52:13 +0200 | <dminuoso> | But Im really itching. |
2021-07-01 21:53:44 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
2021-07-01 22:03:55 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-07-01 22:05:18 +0200 | <maerwald> | :D |
2021-07-01 22:05:21 +0200 | juhp | (~juhp@128.106.188.66) (Ping timeout: 258 seconds) |
2021-07-01 22:07:04 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-07-01 22:07:26 +0200 | juhp | (~juhp@128.106.188.66) |
2021-07-01 22:13:58 +0200 | jneira_ | (~jneira_@217.red-81-39-172.dynamicip.rima-tde.net) |
2021-07-01 22:15:13 +0200 | chisui | (~chisui@200116b866be75009cc16d86abb76e8b.dip.versatel-1u1.de) |
2021-07-01 22:20:04 +0200 | wickedjargon | (~wickedjar@cpeac202ebc90c3-cmac202ebc90c0.cpe.net.fido.ca) (Ping timeout: 268 seconds) |
2021-07-01 22:25:18 +0200 | phma | (phma@2001:5b0:211f:2298:dd93:a388:d3e:b1b1) (Read error: Connection reset by peer) |
2021-07-01 22:25:49 +0200 | <ixlun> | Does anyone know how I'd go about starting to debug a performance issue with Conduit? |
2021-07-01 22:26:32 +0200 | <ixlun> | I'm getting a lot of time spent and allocs in the function `injectLeftovers` |
2021-07-01 22:26:32 +0200 | <dminuoso> | ixlun: You can start with the simple RTS profiler |
2021-07-01 22:26:35 +0200 | phma | (phma@2001:5b0:211f:fff8:cd25:f96a:65d:6896) |
2021-07-01 22:26:49 +0200 | abrar_ | (~abrar@static-108-2-152-54.phlapa.fios.verizon.net) (Ping timeout: 258 seconds) |
2021-07-01 22:27:04 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-07-01 22:28:37 +0200 | <ixlun> | dminuoso: Yep, I've done a profile and the above function appears to be the culprit. I'm not sure why though. |
2021-07-01 22:30:35 +0200 | wickedjargon | (~wickedjar@cpeac202ebc90c3-cmac202ebc90c0.cpe.net.fido.ca) |
2021-07-01 22:31:53 +0200 | <chris_> | so ye i'm a little confused as too how to incremen |
2021-07-01 22:32:03 +0200 | wickedjargon | (~wickedjar@cpeac202ebc90c3-cmac202ebc90c0.cpe.net.fido.ca) (Client Quit) |
2021-07-01 22:32:05 +0200 | <chris_> | as how to* write a function that recursively increments by n |
2021-07-01 22:32:32 +0200 | <Cale> | chris_: What does this function compute? |
2021-07-01 22:32:32 +0200 | <Rembane> | chris_: Increments what? |
2021-07-01 22:33:05 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-07-01 22:35:56 +0200 | fendor | (~fendor@77.119.218.107.wireless.dyn.drei.com) |
2021-07-01 22:36:08 +0200 | kilolympus | (~kilolympu@cpc92710-cmbg20-2-0-cust265.5-4.cable.virginm.net) |
2021-07-01 22:36:24 +0200 | <chris_> | i'm incrementing by +2 each time the function is called |
2021-07-01 22:36:52 +0200 | <chris_> | i can paste my code somewhere maybe |
2021-07-01 22:37:36 +0200 | <chris_> | the function is create a structure of notes where each note's interval (keys up on keyboard) is +n |
2021-07-01 22:37:39 +0200 | <geekosaur> | @where paste |
2021-07-01 22:37:39 +0200 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
2021-07-01 22:37:59 +0200 | <dminuoso> | ixlun: What cost centers are generated? Did you use all-functions? |
2021-07-01 22:38:34 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-07-01 22:38:47 +0200 | <tomsmeding> | ixlun: does the (huge) call stack trace below the top part of the profiling output tell anything interesting? |
2021-07-01 22:38:49 +0200 | <davean> | injectLeftovers is pretty clear in what it does - don't have left overs, read just what you need? Is there a reason you're sending too much data down to consumers? |
2021-07-01 22:39:07 +0200 | <tomsmeding> | not sure how using a streaming library messes up those call stacks |
2021-07-01 22:39:12 +0200 | alphabeta | (~kilolympu@cpc92710-cmbg20-2-0-cust265.5-4.cable.virginm.net) (Ping timeout: 272 seconds) |
2021-07-01 22:39:32 +0200 | <davean> | tomsmeding: its just functions? You might have to understand how streaming libraries are implimented though to understand what they mean |
2021-07-01 22:39:45 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-07-01 22:39:49 +0200 | <dminuoso> | Indeed |
2021-07-01 22:39:53 +0200 | <ixlun> | dminuoso: I'm not sure, I used the `--enable-profiling` cabal option. |
2021-07-01 22:40:09 +0200 | <tomsmeding> | I thought there may be sufficient CPS going on that the callstack doesn't make sense anymore, but then I haven't used streaming libraries yet so in particular not with a profiler :p |
2021-07-01 22:40:41 +0200 | <chris_> | https://paste.tomsmeding.com/sSE5bwAK |
2021-07-01 22:40:53 +0200 | <davean> | tomsmeding: I mean I don't find CPS ruins callstacks, but I also understand the CPS, so your mileage might vary? |
2021-07-01 22:41:01 +0200 | <ixlun> | davean: Indeed, I think that's the issue. Since the whole conduit is a function, the translation means that it's hard to figure out which part of the conduit is causing issues. |
2021-07-01 22:41:07 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-07-01 22:41:19 +0200 | <dminuoso> | ixlun: Also add `--profiling-detail=all-functions`, then you might get more granular data. |
2021-07-01 22:41:29 +0200 | <tomsmeding> | davean: I was just guessing, you're likely right :) |
2021-07-01 22:42:02 +0200 | <dminuoso> | ixlun: At any rate, judging from an initial look at conduit, as long as you're just using conduit directly, it seems the only reasonable explanation is that you're only consuming little input. Are you perhaps left with too much.. leftovers at the end of your pipe? |
2021-07-01 22:42:04 +0200 | <davean> | tomsmeding: it does mean you have to know EVERY name in the internals of the library, but we're not talking large libraries |
2021-07-01 22:42:25 +0200 | <dminuoso> | ixlun: If you re-run with --profiling-detail=all-functions, perhaps you can share the output? |
2021-07-01 22:42:26 +0200 | <davean> | dminuoso: they can happen at every step |
2021-07-01 22:42:35 +0200 | <tomsmeding> | chris_: let the function take an extra parameter, e.g. "increment", where you add "increment" instead of 2, and recursively call with increment+2? |
2021-07-01 22:43:03 +0200 | <davean> | dminuoso: so every monadic bind for example |
2021-07-01 22:43:04 +0200 | <dminuoso> | davean: Yes, but if the cost center is right on `injectLeftovers`, then it's a matter of understanding where it's mostly called. |
2021-07-01 22:43:10 +0200 | <koz> | For InstanceD, I get the parts of an instance declaration represented by the 'Maybe Overlap' and 'Cxt', but not the 'Type'. |
2021-07-01 22:43:13 +0200 | <dminuoso> | davean: And injeftLeftovers is not called on monadic bind |
2021-07-01 22:43:36 +0200 | <koz> | In the example in the docs, does the 'Type' correspond to 'Show [w]', or just '[w]'? |
2021-07-01 22:43:40 +0200 | <ixlun> | dminuoso: Yep, running the profile now. |
2021-07-01 22:43:45 +0200 | <chris_> | tomsmeding: i could do that, but then 1 of the params is redundant in a way |
2021-07-01 22:43:49 +0200 | <dminuoso> | davean: Though, I think we're a bit at a cross roads. |
2021-07-01 22:43:50 +0200 | <koz> | Docs here: https://hackage.haskell.org/package/template-haskell-2.17.0.0/docs/Language-Haskell-TH.html#t:Dec |
2021-07-01 22:44:05 +0200 | <tomsmeding> | chris_: then write a wrapper function that just calls the function you just wrote with 2 :) |
2021-07-01 22:44:16 +0200 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 272 seconds) |
2021-07-01 22:44:24 +0200 | <chris_> | ahhh ye that's prob what i want |
2021-07-01 22:44:28 +0200 | <tomsmeding> | you can even hide the inner function by putting it in a 'where' block below the wrapper function |
2021-07-01 22:44:39 +0200 | <tomsmeding> | this wrapper pattern is quite common in haskell |
2021-07-01 22:44:55 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 265 seconds) |
2021-07-01 22:45:03 +0200 | <davean> | dminuoso: well it depends on what things he's using - I'm saying it can show up at any, not that it does show up at any |
2021-07-01 22:45:08 +0200 | <dminuoso> | Right |
2021-07-01 22:45:13 +0200 | <chris_> | that's what i was thinking of ye intitially, shall i google haskell wrapper pattern? you have an example? |
2021-07-01 22:45:28 +0200 | <tomsmeding> | not sure if that's the right name to be honest |
2021-07-01 22:45:30 +0200 | <dminuoso> | davean: Hence, I asked for --profiling-detail=all-functions, hopefully this will give better cost centers. :) |
2021-07-01 22:45:52 +0200 | <davean> | Why am I helping with conduit though? I ran away from that, I'm going back to machines where things make sense :-p |
2021-07-01 22:46:23 +0200 | <davean> | If I want pushback to be a thing, I'll use a stack! |
2021-07-01 22:46:33 +0200 | <ixlun> | dminuoso: https://termbin.com/tn6c |
2021-07-01 22:46:36 +0200 | <dminuoso> | Okay... are you comparing conduit to a stack now? :< |
2021-07-01 22:46:38 +0200 | GIANTWORLDKEEPER | (~pjetcetal@128-71-13-182.broadband.corbina.ru) (Quit: EXIT) |
2021-07-01 22:46:49 +0200 | <davean> | dminuoso: Huh? |
2021-07-01 22:46:56 +0200 | <tomsmeding> | chris_: https://hackage.haskell.org/package/base-4.15.0.0/docs/src/GHC-List.html#zipWith |
2021-07-01 22:47:00 +0200 | <Cale> | chris_: What if you were to make a list of the intervals to start with, and then zipWith that with the ds? |
2021-07-01 22:47:02 +0200 | <davean> | dminuoso: pushback is a stack operation |
2021-07-01 22:47:17 +0200 | <Cale> | oh, you're already talking about this :) |
2021-07-01 22:47:41 +0200 | <davean> | dminuoso: https://hackage.haskell.org/package/machines-0.7.2/docs/Data-Machine-Stack.html |
2021-07-01 22:47:48 +0200 | <tomsmeding> | Cale: no, I was just showing an example of this wrapper pattern thing :p |
2021-07-01 22:47:49 +0200 | <dminuoso> | Yes I understand.. |
2021-07-01 22:47:52 +0200 | <Cale> | ah |
2021-07-01 22:47:53 +0200 | <tomsmeding> | and accidentally gave precisely zipWith |
2021-07-01 22:48:02 +0200 | <dminuoso> | davean: Lets just drop it, I think we got our wires crossed here. |
2021-07-01 22:48:03 +0200 | <davean> | dminuoso: if the entirety of the initial input is the dataset, pushback is stack push, and all reads are stack pop |
2021-07-01 22:48:07 +0200 | <davean> | dminuoso: ok |
2021-07-01 22:48:09 +0200 | <davean> | I'm confused |
2021-07-01 22:48:24 +0200 | <dminuoso> | oh |
2021-07-01 22:48:28 +0200 | <dminuoso> | Now I see what you mean |
2021-07-01 22:48:36 +0200 | <dminuoso> | Odd, but okay |
2021-07-01 22:48:46 +0200 | <davean> | Its litterly the stack operational semantics |
2021-07-01 22:48:54 +0200 | <davean> | which allows you to compose it |
2021-07-01 22:49:00 +0200 | <davean> | which allows you to control how it happens and where |
2021-07-01 22:49:32 +0200 | <davean> | The implicity and inability to control it is one of the major pain points IME in optimizing streaming |
2021-07-01 22:50:08 +0200 | <Cale> | chris_: So, you'd have something like f ds interval = foldr (:+:) (rest 0) $ zipWith (\d n -> note d (trans n (A,2)) [interval, 2*interval ..] |
2021-07-01 22:50:14 +0200 | <dminuoso> | But isnt a conduit more like a fifo? You cant continuously push on a stack while you're popping and preserve the input order.. |
2021-07-01 22:50:34 +0200 | <dminuoso> | I must be misunderstanding something here |
2021-07-01 22:50:48 +0200 | <davean> | dminuoso: no, it isn't, not internally - consider how "take 50" would be implimented on a string |
2021-07-01 22:51:00 +0200 | <davean> | now consider how it would be implimented on Text |
2021-07-01 22:51:29 +0200 | <davean> | With text you'd get a chunk that reached >= 50 charactures |
2021-07-01 22:51:44 +0200 | <davean> | now, if you got the next characture, if you didn't stack push it, you'd lose the over-read data |
2021-07-01 22:52:00 +0200 | <davean> | do { drop 50; head } |
2021-07-01 22:52:03 +0200 | <davean> | what does head return? |
2021-07-01 22:52:20 +0200 | <davean> | if the semantics were to differ between Text and String you'd have an issue |
2021-07-01 22:53:02 +0200 | <tomsmeding> | (this sounds to me like you have a queue with a putback operation at the taking end, not necessarily that you now have a stack) |
2021-07-01 22:53:12 +0200 | <ixlun> | Now my conduit does have a place where it takes one input value and outputs 15 values for each value. Would those be classed as leftovers? |
2021-07-01 22:53:13 +0200 | <davean> | take/drop are somewhat simple examples, but consider parsers, which might have to read to see if they should consume |
2021-07-01 22:53:14 +0200 | <tomsmeding> | (but /me is out of my depth here) |
2021-07-01 22:53:14 +0200 | shapr | (~user@pool-108-28-144-11.washdc.fios.verizon.net) |
2021-07-01 22:53:40 +0200 | <davean> | tomsmeding: you (virtually) populate the entire stack with the entire data that will be streamed initially, and then you pop and push |
2021-07-01 22:54:13 +0200 | <tomsmeding> | oooh you don't see the initial population as stack operations |
2021-07-01 22:54:28 +0200 | <davean> | Its like setting the tape in a turing machine |
2021-07-01 22:54:37 +0200 | <davean> | Its the starting condition |
2021-07-01 22:54:51 +0200 | <tomsmeding> | my mental model (and I think dminuoso's) is that you're continuously feeding input at the tail end, and taking (and putting back of you over-took) at the head end |
2021-07-01 22:54:59 +0200 | <dminuoso> | Yes. |
2021-07-01 22:55:02 +0200 | <tomsmeding> | that's a queue with an additional "putback" operation |
2021-07-01 22:55:13 +0200 | <davean> | Theres no way to actually feed |
2021-07-01 22:55:16 +0200 | <dminuoso> | I somehow fail to understand davean's model. |
2021-07-01 22:55:19 +0200 | <davean> | you can't control the head of a streamign library |
2021-07-01 22:55:21 +0200 | <tomsmeding> | or, I guess, a stack with an additional shove-below-bottom operation |
2021-07-01 22:55:32 +0200 | <davean> | You don't get any queue operations in any streaming library I know of |
2021-07-01 22:55:34 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-01 22:55:39 +0200 | <tomsmeding> | dminuoso: create lazy list of all data, then take and putback at the front |
2021-07-01 22:55:42 +0200 | <tomsmeding> | that take and putback is a stack |
2021-07-01 22:55:51 +0200 | <monochrom> | I feel that the pushback operation is usually motivated by, only, wanting a lookahead and deciding split it into read-then-pushback. |
2021-07-01 22:56:10 +0200 | <dminuoso> | What's the role of "putback"? leftover from conduit? |
2021-07-01 22:56:16 +0200 | <davean> | monochrom: its not wanting - theres no choice |
2021-07-01 22:56:21 +0200 | <tomsmeding> | dminuoso: as monochrom says, lookahead |
2021-07-01 22:56:24 +0200 | <monochrom> | in which case perhaps supporting lookahead itself directly solves the real problem |
2021-07-01 22:56:25 +0200 | <davean> | the control domains are split |
2021-07-01 22:56:28 +0200 | <dminuoso> | tomsmeding: Right, then `leftover`! |
2021-07-01 22:56:34 +0200 | <dminuoso> | Alright, I see what you mean |
2021-07-01 22:57:03 +0200 | <davean> | Leftover (Pipe l i o u m r) l |
2021-07-01 22:57:05 +0200 | <davean> | Return leftover input, which should be provided to future operations. |
2021-07-01 22:57:07 +0200 | safinaskar | (~safinaska@109.252.90.89) |
2021-07-01 22:57:12 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-01 22:57:13 +0200 | <davean> | thats part of the core operational instructions of Conduit |
2021-07-01 22:57:23 +0200 | TheRAt | (~TheRAt@user/therat) (Ping timeout: 268 seconds) |
2021-07-01 22:57:40 +0200 | <davean> | monochrom: well, its required if you're *monadic* I suppose - I guess weaker streaming might not require it |
2021-07-01 22:57:41 +0200 | <tomsmeding> | that's approaching the number of type parameters in a project of mine |
2021-07-01 22:57:48 +0200 | <davean> | monochrom: I'd have to consider if its optional in Selective |
2021-07-01 22:58:00 +0200 | <monochrom> | and I feel that lookahead semantics and implementation is likely much nicer than pushback semantics and implementation |
2021-07-01 22:58:11 +0200 | <dminuoso> | davean: Leftover is mostly just needed for fusion (and lookahead) though. |
2021-07-01 22:58:19 +0200 | <chris_> | thx cale tomsmeding, looking at your stuff now |
2021-07-01 22:58:27 +0200 | <safinaskar> | is there analog of c++'s std::vector in haskell? i. e. mutable vector i can add elements to. It should have function with type (Vec s a -> a -> ST s (Vec s a)) and that function should not create copy of a vector! |
2021-07-01 22:58:29 +0200 | <chris_> | i just wrote another func for now with another param |
2021-07-01 22:58:31 +0200 | <davean> | monochrom: You'd have to have fusion across arbitrary monadic value sets |
2021-07-01 22:58:36 +0200 | <chris_> | but i'll see how u guys did it |
2021-07-01 22:58:39 +0200 | <dminuoso> | or rather I need to got sleep, I cant form coherent sentences anymore |
2021-07-01 22:58:39 +0200 | <chris_> | or recommend |
2021-07-01 22:58:52 +0200 | <davean> | monochrom: I don't think its viable in any generalized streaming library |
2021-07-01 22:59:05 +0200 | <safinaskar> | i am aware of hackage package "vector", but as well as i know, its "grow" function creates copy of source vector, and thus can be slow |
2021-07-01 22:59:13 +0200 | <davean> | safinaskar: 'vector' |
2021-07-01 22:59:21 +0200 | <davean> | safinaskar: C++'s also creates a copy |
2021-07-01 22:59:34 +0200 | <tomsmeding> | davean: only if it exhausts the underlying buffer |
2021-07-01 22:59:48 +0200 | <davean> | tomsmeding: correct, smae as MVector in 'vector' with certain uses |
2021-07-01 23:00:08 +0200 | <safinaskar> | davean: if you push N elements to c++'s vector one-by-one, full copy will be performed (log N) times |
2021-07-01 23:00:09 +0200 | <ixlun> | So, is the issue that I'm having that I don't have a 1:1 mapping between input and output elements? |
2021-07-01 23:00:17 +0200 | <davean> | safinaskar: sure, so do that with 'vector' |
2021-07-01 23:00:30 +0200 | <dminuoso> | ixlun: Personally Id do some memory profiling to be sure here. |
2021-07-01 23:00:31 +0200 | <safinaskar> | davean: docs don't say this |
2021-07-01 23:00:51 +0200 | <chris_> | https://paste.tomsmeding.com/xxaG2Kxy |
2021-07-01 23:00:58 +0200 | <chris_> | tomsmeding: |
2021-07-01 23:01:09 +0200 | <davean> | safinaskar: MVector !Int !Int !(MutableArray s a), so you'd have to use it the way you want it |
2021-07-01 23:01:10 +0200 | <chris_> | Cale: |
2021-07-01 23:01:41 +0200 | <davean> | safinaskar: it doesn't manage it for you |
2021-07-01 23:01:44 +0200 | <dminuoso> | ixlun: I gotta go to bed, but this talk nicely illuminated how you can e.g. use eventlog2html https://www.youtube.com/watch?v=6Ljv5FHGXDM |
2021-07-01 23:01:54 +0200 | <safinaskar> | okey, give 5 mins, i will write example |
2021-07-01 23:01:54 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2021-07-01 23:02:08 +0200 | <dminuoso> | (or ghc-debug) |
2021-07-01 23:02:10 +0200 | <davean> | safinaskar: But it allows slicing, so basicly you just return the size you want when you finish |
2021-07-01 23:02:23 +0200 | <davean> | safinaskar: its not as nice |
2021-07-01 23:02:32 +0200 | <ixlun> | dminuoso: Cool, thanks for the talk. I'll have a watch and see if I can get any further. Thanks! |
2021-07-01 23:03:23 +0200 | <monochrom> | Yeah, I think Selective is related. Moving even one level up, the only motivation of lookahead is "a <- lookahead; case a of { 5 cases; }". It may be even better to just provide a cominbator for that instead of exposing lookahead. |
2021-07-01 23:03:32 +0200 | <davean> | monochrom: anyway, I'd be super interested if you could show that you could cover the space of even something as limited as Conduit with just lookahead |
2021-07-01 23:03:36 +0200 | <davean> | I don't think its theoretically possible |
2021-07-01 23:04:04 +0200 | <davean> | monochrom: no, sadly thats not the only motivation |
2021-07-01 23:04:10 +0200 | <dminuoso> | ixlun: Personally I suspect that at the end of your pipe you have something like a large String (or maybe some [Bit]), and are left with large amounts of unconsumed input. |
2021-07-01 23:04:27 +0200 | <davean> | monochrom: I can push the pushback to an arbitrary depth |
2021-07-01 23:04:33 +0200 | <dminuoso> | But I encourage you to perhaps look at the video, and try and employ those memory debugging techniques yourself. |
2021-07-01 23:05:16 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-07-01 23:05:21 +0200 | <ixlun> | Indeed, I'll take a look.. Might be a job for tomorrow though. hanks for the link! |
2021-07-01 23:05:35 +0200 | <monochrom> | Then this comes down to "LL(1) is much more optimzable than arbitrary lookahead, which is yet more optimizable than full monadic" etc. |
2021-07-01 23:05:37 +0200 | <davean> | monochrom: this issue is deeply related to parsing |
2021-07-01 23:05:47 +0200 | <monochrom> | Yeah, that. |
2021-07-01 23:05:51 +0200 | <dminuoso> | Debugging this in terms of allocations is probably easier, since GHC has good abilities to show you where allocations happen exactly |
2021-07-01 23:06:16 +0200 | <davean> | which is why I like calling in an explicite stack when I need it |
2021-07-01 23:06:40 +0200 | cuz | (~user@38.140.58.234) (Ping timeout: 265 seconds) |
2021-07-01 23:06:42 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 240 seconds) |
2021-07-01 23:07:00 +0200 | <safinaskar> | here is example! https://paste.debian.net/1203071/ |
2021-07-01 23:07:31 +0200 | <monochrom> | BTW unpopular opinion: Control.Machine and Data.Lens. >:) |
2021-07-01 23:07:33 +0200 | <safinaskar> | how many times this code will duplicate whole vector? (assuming N is length of source list, i. e. length of [a]) |
2021-07-01 23:07:37 +0200 | <safinaskar> | N or log(N)? |
2021-07-01 23:08:42 +0200 | <davean> | safinaskar: N, because you're calling grow every time instead of slicing the vector |
2021-07-01 23:09:16 +0200 | <tomsmeding> | davean: so what safinaskar is asking is whether there is a library that already encapsulates this intelligent growing behaviour |
2021-07-01 23:09:30 +0200 | <tomsmeding> | (like std::vector in c++ :) ) |
2021-07-01 23:09:30 +0200 | <davean> | tomsmeding: for streaming and such there is, not sure about list |
2021-07-01 23:09:56 +0200 | <davean> | for list, vector already has stuff |
2021-07-01 23:10:13 +0200 | <tomsmeding> | I haven't seen such a library but that says absolutely nothing because I'm usually quite unaware of all the wealth of libraries in existence |
2021-07-01 23:10:28 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-01 23:10:38 +0200 | <davean> | Data.Vector.fromList is O(N) |
2021-07-01 23:10:41 +0200 | abrar_ | (~abrar@static-108-2-152-54.phlapa.fios.verizon.net) |
2021-07-01 23:10:47 +0200 | <davean> | which clearly you can see doesn't allow N copies |
2021-07-01 23:10:54 +0200 | <davean> | for example |
2021-07-01 23:11:31 +0200 | <tomsmeding> | well yes, if you know in advance how many elements you're going to push, you can do it in linear time :) |
2021-07-01 23:11:54 +0200 | <davean> | https://hackage.haskell.org/package/vector-conduit-0.5.0.0/docs/Data-Conduit-Vector.html for streaming for example |
2021-07-01 23:12:03 +0200 | <davean> | tomsmeding: fromListN vs. fromList ;) |
2021-07-01 23:12:49 +0200 | <davean> | tomsmeding: Vector's fusion system takes care of it |
2021-07-01 23:12:54 +0200 | <davean> | oh, ok |
2021-07-01 23:12:55 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2021-07-01 23:13:10 +0200 | <davean> | heres whats confusing here! safinaskar and tomsmeding, Vector depends on fusion to deal with this sort of thing |
2021-07-01 23:13:47 +0200 | <tomsmeding> | which merges operations only if the compiler can pair them together |
2021-07-01 23:14:03 +0200 | <davean> | tomsmeding: well, of it you do them specificly via explicite fusion |
2021-07-01 23:14:12 +0200 | <davean> | tomsmeding: but like fromList does that explicitely |
2021-07-01 23:14:17 +0200 | <tomsmeding> | right |
2021-07-01 23:15:22 +0200 | <davean> | so Vector already encapsulates this, just not how you expect to see it |
2021-07-01 23:16:12 +0200 | <davean> | All the normal functions in Vector already use it though |
2021-07-01 23:16:20 +0200 | <tomsmeding> | but long story short, Vector doesn't have this 'push' operation, but it should be easily implementable in terms of 'grow' with slicing? |
2021-07-01 23:16:33 +0200 | <davean> | tomsmeding: It does have the push operation, on Streams |
2021-07-01 23:16:47 +0200 | <davean> | tomsmeding: under Data.Vector.Fusion.Stream |
2021-07-01 23:17:11 +0200 | <davean> | tomsmeding: see snoc and cons |
2021-07-01 23:17:50 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 272 seconds) |
2021-07-01 23:18:10 +0200 | <safinaskar> | tomsmeding: "but it should be easily implementable in terms of 'grow' with slicing" - no, because i don't want new variable, i want "push" to look like it changed existing entity. I. e. I want to still refer to my modified vector using same "MVector s a" handle, just as I can in C++ |
2021-07-01 23:19:00 +0200 | <davean> | cons prepends an element, snock appends an element |
2021-07-01 23:19:19 +0200 | <tomsmeding> | but doesn't mutate the reference |
2021-07-01 23:19:26 +0200 | Iryon | (~Iryon@2a02:a31a:a045:3500:90e2:686f:e863:4359) (Remote host closed the connection) |
2021-07-01 23:19:29 +0200 | <davean> | Right because we're a functional language |
2021-07-01 23:19:31 +0200 | <tomsmeding> | safinaskar: I think the conclusion is that at least vector doesn't provide the exact API you want |
2021-07-01 23:19:46 +0200 | <safinaskar> | tomsmeding: yes |
2021-07-01 23:19:53 +0200 | <safinaskar> | okey, i will try to find library i want |
2021-07-01 23:20:14 +0200 | <davean> | I mean in a technical sense nothing will |
2021-07-01 23:20:18 +0200 | <davean> | Haskell always rebinds |
2021-07-01 23:20:24 +0200 | <tomsmeding> | it could, right? |
2021-07-01 23:20:30 +0200 | <tomsmeding> | safinaskar was asking for a mutable-vector API |
2021-07-01 23:20:34 +0200 | <tomsmeding> | in an ST monad |
2021-07-01 23:20:40 +0200 | <tomsmeding> | and then you suddenly have all kinds of possibilities |
2021-07-01 23:20:45 +0200 | <davean> | It could look like it, but it couldn't do it |
2021-07-01 23:20:54 +0200 | <davean> | Not at a low level you don't |
2021-07-01 23:21:00 +0200 | <davean> | the ST cell will constantly rebind |
2021-07-01 23:21:02 +0200 | <davean> | at best |
2021-07-01 23:21:17 +0200 | <tomsmeding> | will the underlying mutable byte array not be modified in-place? |
2021-07-01 23:21:23 +0200 | <koz> | I'm doing something like [d| instance $(foo) => IsBar ... |]. According to GHC, foo :: Q Type. However, I can't see a way to construct a list of superclass constraints in Type's data constructors. What am I missing? |
2021-07-01 23:21:28 +0200 | acid | (~acid@user/acid) (Read error: Connection reset by peer) |
2021-07-01 23:21:36 +0200 | acid | (~acid@user/acid) |
2021-07-01 23:22:05 +0200 | <davean> | tomsmeding: it'll be modified in place, sure, but your pointer to it won't - and thats the same low level operations I was describing above, and looks almost the same at the higher level |
2021-07-01 23:22:33 +0200 | <tomsmeding> | davean: the point is that you can make an implementation of the suggested API that has the intended complexity |
2021-07-01 23:22:33 +0200 | <davean> | tomsmeding: Haskell implimentations reuse parts in memory all the time |
2021-07-01 23:22:39 +0200 | <tomsmeding> | whether some pointers are copied or not is immaterial :p |
2021-07-01 23:22:47 +0200 | <davean> | tomsmeding: and what we already have has the same complexity and the same oeprations |
2021-07-01 23:22:57 +0200 | <tomsmeding> | no, the operations have a slightly different API |
2021-07-01 23:23:15 +0200 | <davean> | Right, at the end you unstream |
2021-07-01 23:23:19 +0200 | <tomsmeding> | of course, perhaps it might be good to restructure code to use the existing API instead of forcing your own |
2021-07-01 23:23:20 +0200 | <davean> | vs. freeze |
2021-07-01 23:23:22 +0200 | <tomsmeding> | but that's a different question! |
2021-07-01 23:23:27 +0200 | <davean> | No, no restructuring |
2021-07-01 23:23:37 +0200 | <davean> | its the difference between unstream and freeze |
2021-07-01 23:24:18 +0200 | <tomsmeding> | I kind of feel we're talking past each other here :) |
2021-07-01 23:24:22 +0200 | <davean> | maybe |
2021-07-01 23:24:30 +0200 | <davean> | have you looked at the streaming stuff? |
2021-07-01 23:25:14 +0200 | <tomsmeding> | I'm not familiar with the fusion internals, so I was trying to think about implementing the given API based on top-level, non-streaming vector functions |
2021-07-01 23:25:21 +0200 | <davean> | This is NOT internals really |
2021-07-01 23:25:31 +0200 | <davean> | This is an exposed interface |
2021-07-01 23:25:39 +0200 | <davean> | This is the top level API |
2021-07-01 23:25:43 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.1) |
2021-07-01 23:25:54 +0200 | <tomsmeding> | which I clearly know too little about :) |
2021-07-01 23:26:15 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-07-01 23:26:38 +0200 | <tomsmeding> | I'll have a better look at it at some point, because it looks kind of sophisticated |
2021-07-01 23:26:51 +0200 | <tomsmeding> | the design, at least |
2021-07-01 23:27:29 +0200 | <davean> | tomsmeding: what about it? |
2021-07-01 23:27:37 +0200 | <davean> | its almost directly parrallel the standard vector API |
2021-07-01 23:28:16 +0200 | <tomsmeding> | maybe I should stop making unsubstantiated claims |
2021-07-01 23:28:22 +0200 | <monochrom> | koz: ForallT has a Cxt field. Cxt = [Pred] = [Type]. That would be a list of constraints. |
2021-07-01 23:28:29 +0200 | cheater1__ | (~Username@user/cheater) |
2021-07-01 23:28:30 +0200 | <davean> | tomsmeding: note I said Vector, not MVector |
2021-07-01 23:28:35 +0200 | <koz> | monochrom: Ah, thanks! |
2021-07-01 23:28:36 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 272 seconds) |
2021-07-01 23:28:42 +0200 | cheater1__ | cheater |
2021-07-01 23:28:44 +0200 | <davean> | tomsmeding: the difference is in name binding |
2021-07-01 23:28:59 +0200 | <koz> | What would go in its third argument in this case? |
2021-07-01 23:29:04 +0200 | <safinaskar> | davean: "see snoc and cons" - they are pure functional. They return other vector, not the same. (I want api to look like it modifies in place) |
2021-07-01 23:29:11 +0200 | <koz> | Or should I wrap the whole thing? |
2021-07-01 23:29:22 +0200 | <davean> | safinaskar: that does modify in place. |
2021-07-01 23:29:23 +0200 | <koz> | So it'd be [d| instance $(foo) where ... |]? |
2021-07-01 23:29:47 +0200 | <geekosaur> | you need to be in IO or ST to do that. but are you prematurely optimizing, or just using a non-Haskelly API for some reason? |
2021-07-01 23:29:53 +0200 | <tomsmeding> | davean: note the "api to look like" |
2021-07-01 23:29:55 +0200 | <davean> | safinaskar: or at least it doesn't move, copy, or such any existing data |
2021-07-01 23:30:07 +0200 | <monochrom> | Hrm, I don't know. I would expect foo :: Q [Type] actually. |
2021-07-01 23:30:14 +0200 | <davean> | "In place" is a little undefined for new data! :) |
2021-07-01 23:30:23 +0200 | <davean> | In terms of hte old data though, it doesn't touch it |
2021-07-01 23:30:43 +0200 | <koz> | monochrom: That's what I would expect as well, but clearly not. I can wrap the whole thing if that's what it takes. |
2021-07-01 23:30:51 +0200 | <monochrom> | so that it means Q [Pred], list of constraints |
2021-07-01 23:31:02 +0200 | <davean> | tomsmeding: which part do you mean by look-like here? |
2021-07-01 23:31:55 +0200 | <koz> | If I try [d| instance $(foo) where ... |], GHC complains. |
2021-07-01 23:32:02 +0200 | <davean> | tomsmeding: do you want hte name rebindign to be implicite never explicite? I guess I don't see a difference because the name always rebinds |
2021-07-01 23:32:05 +0200 | <koz> | (aka it tells me my instance is malformed) |
2021-07-01 23:32:31 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-07-01 23:32:35 +0200 | <koz> | But if I try [d| instance $(foo) => IsBar (conT typeName) where ... |], GHC insists that foo :: Q Type. |
2021-07-01 23:34:17 +0200 | <tomsmeding> | davean: ah now I see, it was me who was confused. safinaskar asked for a function with type signature (Vec s a -> a -> ST s (Vec s a)), whereas I thought they were asking for (Vec s a -> a -> ST s ()) |
2021-07-01 23:34:32 +0200 | <davean> | tomsmeding: Ah! ok, so yah |
2021-07-01 23:34:37 +0200 | <tomsmeding> | where I would say that the second "looks like" it modifies in place, whereas the first doesn't |
2021-07-01 23:34:54 +0200 | <tomsmeding> | what they do to the underlying buffer is a different, orthogonal issue (which the question also had a requirement on) |
2021-07-01 23:35:40 +0200 | <davean> | tomsmeding: well this explains our conversation :) |
2021-07-01 23:35:43 +0200 | fendor | (~fendor@77.119.218.107.wireless.dyn.drei.com) (Read error: Connection reset by peer) |
2021-07-01 23:35:45 +0200 | <tomsmeding> | :') |
2021-07-01 23:36:42 +0200 | fendor | (~fendor@77.119.218.107.wireless.dyn.drei.com) |
2021-07-01 23:36:44 +0200 | tomsmeding | was confused by the language of "look like" which I would interpret as the second type signature |
2021-07-01 23:36:50 +0200 | <safinaskar> | tomsmeding: yes, i mean type with "ST s ()" in the end |
2021-07-01 23:36:54 +0200 | <tomsmeding> | lol |
2021-07-01 23:37:00 +0200 | <safinaskar> | it seems i can write lib i want |
2021-07-01 23:37:07 +0200 | <safinaskar> | wait 5 mins, i will show you code |
2021-07-01 23:37:25 +0200 | <monochrom> | All pronouns and the adjective "like" should be banned from programming discussions. |
2021-07-01 23:37:47 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b9504558b1d2f6b7134fe.dip0.t-ipconnect.de) |
2021-07-01 23:38:04 +0200 | tomsmeding | . o O ( SELECT * FROM table WHERE thing LIKE '%abc%' ) |
2021-07-01 23:38:24 +0200 | <safinaskar> | tomsmeding: use "he" when talking about me |
2021-07-01 23:38:26 +0200 | <monochrom> | Programming is not marketing, there is no room for that much ambiguity and refusing to really spell out what you mean. |
2021-07-01 23:39:30 +0200 | <tomsmeding> | safinaskar: I suspected that, but I try to build a habit of saying 'they' in any situation of vaguely unclear genering :p |
2021-07-01 23:39:56 +0200 | tabemann | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection) |
2021-07-01 23:40:05 +0200 | <tomsmeding> | monochrom: I would love to live in that world |
2021-07-01 23:40:24 +0200 | <tomsmeding> | also where everyone speaks and writes the common language with poise |
2021-07-01 23:40:30 +0200 | <tomsmeding> | unfortunately that is not the world we live in :p |
2021-07-01 23:41:51 +0200 | hsiktas[m] | (~hsiktasma@2001:470:69fc:105::30d4) (Quit: node-irc says goodbye) |
2021-07-01 23:43:29 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 258 seconds) |
2021-07-01 23:43:30 +0200 | tabemann | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
2021-07-01 23:43:35 +0200 | <tomsmeding> | s/genering/gendering/ .-. |
2021-07-01 23:47:09 +0200 | <davean> | tomsmeding: you can always hide the naming by sticking it in an STRef and <$> the opterations or something :) |
2021-07-01 23:49:05 +0200 | notzmv | (~zmv@user/notzmv) |
2021-07-01 23:49:48 +0200 | <safinaskar> | i wrote vector i want!!!!! look here: https://paste.debian.net/1203074/ |
2021-07-01 23:50:27 +0200 | <tomsmeding> | "With C++-like performance -- I didn't try to compile this" X doubt :p |
2021-07-01 23:51:55 +0200 | <safinaskar> | i mean "with same asymptotic" |
2021-07-01 23:52:22 +0200 | <tomsmeding> | yep that looks quite like I expected it to look |
2021-07-01 23:52:51 +0200 | <tomsmeding> | I wonder if it would be slightly more efficient to use only one STRef, but that really can only be answered with benchmarking |
2021-07-01 23:53:28 +0200 | <tomsmeding> | safinaskar: downside of wrapping MVector like this: you'll have to wrap all the other vector operations you want as well :p |
2021-07-01 23:54:15 +0200 | <orzo> | i'm looking for a haskell job |
2021-07-01 23:54:22 +0200 | machinedgod | (~machinedg@24.105.81.50) |
2021-07-01 23:54:28 +0200 | <orzo> | anybody hiring haskellers? |
2021-07-01 23:55:44 +0200 | <tomsmeding> | safinaskar: I believe C++ doesn't do scaling by 2 but by the golden ratio (phi), because phi^2 = phi + 1; that means that after growing twice, the new buffer fits precisely where the previous two buffers were in memory |
2021-07-01 23:55:46 +0200 | <tomsmeding> | but I may misremember |
2021-07-01 23:56:07 +0200 | <tomsmeding> | also profile profile :p |