2024-12-04 00:00:39 +0100 | alp | (~alp@2001:861:8ca0:4940:e76a:7d36:8adc:27e3) (Remote host closed the connection) |
2024-12-04 00:00:58 +0100 | alp | (~alp@2001:861:8ca0:4940:2134:167a:303d:5617) |
2024-12-04 00:02:20 +0100 | alp | (~alp@2001:861:8ca0:4940:2134:167a:303d:5617) (Remote host closed the connection) |
2024-12-04 00:02:36 +0100 | joeyadams | (~joeyadams@syn-184-054-105-097.res.spectrum.com) |
2024-12-04 00:02:37 +0100 | alp | (~alp@2001:861:8ca0:4940:32d1:b188:aa8d:80b0) |
2024-12-04 00:04:01 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 00:04:01 +0100 | alp | (~alp@2001:861:8ca0:4940:32d1:b188:aa8d:80b0) (Remote host closed the connection) |
2024-12-04 00:04:18 +0100 | alp | (~alp@2001:861:8ca0:4940:53e6:2ee0:3c96:ba17) |
2024-12-04 00:05:42 +0100 | alp | (~alp@2001:861:8ca0:4940:53e6:2ee0:3c96:ba17) (Remote host closed the connection) |
2024-12-04 00:05:59 +0100 | alp | (~alp@2001:861:8ca0:4940:8cdb:a56:d144:a524) |
2024-12-04 00:06:00 +0100 | gawen | (~gawen@user/gawen) gawen |
2024-12-04 00:07:41 +0100 | alp_ | (~alp@2001:861:8ca0:4940:b7d8:58c7:6786:7d57) |
2024-12-04 00:07:55 +0100 | pdxleif | (~ubuntu@ec2-35-163-144-64.us-west-2.compute.amazonaws.com) (Remote host closed the connection) |
2024-12-04 00:08:59 +0100 | xff0x | (~xff0x@2405:6580:b080:900:2e90:f46e:2f28:18f7) (Ping timeout: 260 seconds) |
2024-12-04 00:09:09 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-04 00:09:24 +0100 | alp__ | (~alp@2001:861:8ca0:4940:19e:b817:16a3:105c) |
2024-12-04 00:09:46 +0100 | xff0x | (~xff0x@2405:6580:b080:900:2aec:ff1e:1898:31f2) |
2024-12-04 00:10:45 +0100 | alp | (~alp@2001:861:8ca0:4940:8cdb:a56:d144:a524) (Ping timeout: 248 seconds) |
2024-12-04 00:10:47 +0100 | alp__ | (~alp@2001:861:8ca0:4940:19e:b817:16a3:105c) (Remote host closed the connection) |
2024-12-04 00:11:04 +0100 | alp__ | (~alp@2001:861:8ca0:4940:e5c2:6c92:e493:e6dd) |
2024-12-04 00:12:29 +0100 | alp__ | (~alp@2001:861:8ca0:4940:e5c2:6c92:e493:e6dd) (Remote host closed the connection) |
2024-12-04 00:12:46 +0100 | alp__ | (~alp@2001:861:8ca0:4940:8cf8:84fd:c29d:ded4) |
2024-12-04 00:12:53 +0100 | alp_ | (~alp@2001:861:8ca0:4940:b7d8:58c7:6786:7d57) (Ping timeout: 248 seconds) |
2024-12-04 00:14:12 +0100 | alp__ | (~alp@2001:861:8ca0:4940:8cf8:84fd:c29d:ded4) (Remote host closed the connection) |
2024-12-04 00:14:28 +0100 | alp__ | (~alp@2001:861:8ca0:4940:e711:d17b:85ba:6e68) |
2024-12-04 00:15:54 +0100 | alp__ | (~alp@2001:861:8ca0:4940:e711:d17b:85ba:6e68) (Remote host closed the connection) |
2024-12-04 00:16:11 +0100 | alp__ | (~alp@2001:861:8ca0:4940:da39:ecb7:24a3:fa7c) |
2024-12-04 00:17:09 +0100 | tuxpaint | (~a@put.gay) (Quit: gn) |
2024-12-04 00:17:28 +0100 | tuxpaint | (~a@put.gay) |
2024-12-04 00:17:36 +0100 | alp__ | (~alp@2001:861:8ca0:4940:da39:ecb7:24a3:fa7c) (Remote host closed the connection) |
2024-12-04 00:17:53 +0100 | alp__ | (~alp@2001:861:8ca0:4940:248:7c82:2e7e:d482) |
2024-12-04 00:19:02 +0100 | rvalue | (~rvalue@user/rvalue) (Quit: ZNC - https://znc.in) |
2024-12-04 00:19:18 +0100 | alp__ | (~alp@2001:861:8ca0:4940:248:7c82:2e7e:d482) (Remote host closed the connection) |
2024-12-04 00:19:35 +0100 | alp__ | (~alp@2001:861:8ca0:4940:6255:bcf2:af03:3641) |
2024-12-04 00:19:48 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 00:20:13 +0100 | machined1od | (~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod |
2024-12-04 00:20:35 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) (Read error: Connection reset by peer) |
2024-12-04 00:21:00 +0100 | alp__ | (~alp@2001:861:8ca0:4940:6255:bcf2:af03:3641) (Remote host closed the connection) |
2024-12-04 00:21:17 +0100 | alp__ | (~alp@2001:861:8ca0:4940:487b:94b7:43cf:3ccc) |
2024-12-04 00:22:42 +0100 | alp__ | (~alp@2001:861:8ca0:4940:487b:94b7:43cf:3ccc) (Remote host closed the connection) |
2024-12-04 00:22:59 +0100 | alp__ | (~alp@2001:861:8ca0:4940:e89d:a86a:2e60:67c5) |
2024-12-04 00:24:25 +0100 | alp__ | (~alp@2001:861:8ca0:4940:e89d:a86a:2e60:67c5) (Remote host closed the connection) |
2024-12-04 00:24:42 +0100 | alp__ | (~alp@2001:861:8ca0:4940:5270:bdae:7548:3af1) |
2024-12-04 00:24:50 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-12-04 00:26:06 +0100 | alp__ | (~alp@2001:861:8ca0:4940:5270:bdae:7548:3af1) (Remote host closed the connection) |
2024-12-04 00:26:23 +0100 | alp__ | (~alp@2001:861:8ca0:4940:4cea:f7a:2dd7:2a8) |
2024-12-04 00:27:48 +0100 | alp__ | (~alp@2001:861:8ca0:4940:4cea:f7a:2dd7:2a8) (Remote host closed the connection) |
2024-12-04 00:28:05 +0100 | alp__ | (~alp@2001:861:8ca0:4940:c06:15fd:dd93:fa63) |
2024-12-04 00:29:30 +0100 | alp__ | (~alp@2001:861:8ca0:4940:c06:15fd:dd93:fa63) (Remote host closed the connection) |
2024-12-04 00:29:47 +0100 | alp__ | (~alp@2001:861:8ca0:4940:1d46:1aa0:4e7f:b2f9) |
2024-12-04 00:31:30 +0100 | alp_ | (~alp@2001:861:8ca0:4940:73f1:fc81:eaca:26f6) |
2024-12-04 00:32:55 +0100 | alp_ | (~alp@2001:861:8ca0:4940:73f1:fc81:eaca:26f6) (Remote host closed the connection) |
2024-12-04 00:33:12 +0100 | alp_ | (~alp@2001:861:8ca0:4940:7e12:ac14:b600:1a67) |
2024-12-04 00:34:33 +0100 | alp__ | (~alp@2001:861:8ca0:4940:1d46:1aa0:4e7f:b2f9) (Ping timeout: 246 seconds) |
2024-12-04 00:34:37 +0100 | alp_ | (~alp@2001:861:8ca0:4940:7e12:ac14:b600:1a67) (Remote host closed the connection) |
2024-12-04 00:34:53 +0100 | alp_ | (~alp@2001:861:8ca0:4940:8a72:4fa4:8dbc:5fb1) |
2024-12-04 00:35:35 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 00:36:19 +0100 | alp_ | (~alp@2001:861:8ca0:4940:8a72:4fa4:8dbc:5fb1) (Remote host closed the connection) |
2024-12-04 00:36:36 +0100 | alp_ | (~alp@2001:861:8ca0:4940:e2d0:740d:3023:9109) |
2024-12-04 00:38:01 +0100 | alp_ | (~alp@2001:861:8ca0:4940:e2d0:740d:3023:9109) (Remote host closed the connection) |
2024-12-04 00:38:05 +0100 | rvalue | (~rvalue@user/rvalue) rvalue |
2024-12-04 00:38:18 +0100 | alp_ | (~alp@2001:861:8ca0:4940:bc0e:2aee:6a22:2d20) |
2024-12-04 00:39:43 +0100 | alp_ | (~alp@2001:861:8ca0:4940:bc0e:2aee:6a22:2d20) (Remote host closed the connection) |
2024-12-04 00:40:00 +0100 | alp_ | (~alp@2001:861:8ca0:4940:658:5d41:1e17:177a) |
2024-12-04 00:40:20 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
2024-12-04 00:41:44 +0100 | alp__ | (~alp@2001:861:8ca0:4940:f868:e2da:2313:3292) |
2024-12-04 00:43:07 +0100 | alp__ | (~alp@2001:861:8ca0:4940:f868:e2da:2313:3292) (Remote host closed the connection) |
2024-12-04 00:43:25 +0100 | alp__ | (~alp@2001:861:8ca0:4940:a1d4:8f5:ea39:48) |
2024-12-04 00:44:42 +0100 | alp_ | (~alp@2001:861:8ca0:4940:658:5d41:1e17:177a) (Ping timeout: 246 seconds) |
2024-12-04 00:45:07 +0100 | alp_ | (~alp@2001:861:8ca0:4940:8329:3732:b124:24b7) |
2024-12-04 00:46:31 +0100 | alp_ | (~alp@2001:861:8ca0:4940:8329:3732:b124:24b7) (Remote host closed the connection) |
2024-12-04 00:46:49 +0100 | alp_ | (~alp@2001:861:8ca0:4940:6376:2500:12a5:17ce) |
2024-12-04 00:48:13 +0100 | alp_ | (~alp@2001:861:8ca0:4940:6376:2500:12a5:17ce) (Remote host closed the connection) |
2024-12-04 00:48:32 +0100 | alp_ | (~alp@2001:861:8ca0:4940:6e86:45d3:7da3:dca9) |
2024-12-04 00:48:50 +0100 | alp__ | (~alp@2001:861:8ca0:4940:a1d4:8f5:ea39:48) (Ping timeout: 260 seconds) |
2024-12-04 00:49:56 +0100 | alp_ | (~alp@2001:861:8ca0:4940:6e86:45d3:7da3:dca9) (Remote host closed the connection) |
2024-12-04 00:50:13 +0100 | alp_ | (~alp@2001:861:8ca0:4940:787f:767d:4686:fe80) |
2024-12-04 00:51:06 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 00:51:37 +0100 | alp_ | (~alp@2001:861:8ca0:4940:787f:767d:4686:fe80) (Remote host closed the connection) |
2024-12-04 00:51:56 +0100 | alp_ | (~alp@2001:861:8ca0:4940:8598:7fdf:3873:87a8) |
2024-12-04 00:53:20 +0100 | alp_ | (~alp@2001:861:8ca0:4940:8598:7fdf:3873:87a8) (Remote host closed the connection) |
2024-12-04 00:53:37 +0100 | alp_ | (~alp@2001:861:8ca0:4940:32ee:f693:b590:f66c) |
2024-12-04 00:55:02 +0100 | alp_ | (~alp@2001:861:8ca0:4940:32ee:f693:b590:f66c) (Remote host closed the connection) |
2024-12-04 00:55:20 +0100 | alp_ | (~alp@2001:861:8ca0:4940:2099:9745:f1c7:8705) |
2024-12-04 00:56:04 +0100 | tylerhou | (~tylerhou@user/tylerhou) (Quit: Client closed) |
2024-12-04 00:56:21 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-04 00:56:44 +0100 | alp_ | (~alp@2001:861:8ca0:4940:2099:9745:f1c7:8705) (Remote host closed the connection) |
2024-12-04 00:57:02 +0100 | alp_ | (~alp@2001:861:8ca0:4940:ab2:c635:31cc:2871) |
2024-12-04 00:57:09 +0100 | acidjnk_new3 | (~acidjnk@p200300d6e7283f756566d9820eaa5300.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
2024-12-04 00:58:26 +0100 | alp_ | (~alp@2001:861:8ca0:4940:ab2:c635:31cc:2871) (Remote host closed the connection) |
2024-12-04 00:58:43 +0100 | alp_ | (~alp@2001:861:8ca0:4940:5aee:7e5d:1206:a620) |
2024-12-04 00:58:59 +0100 | GdeVolpiano | (~GdeVolpia@user/GdeVolpiano) (Ping timeout: 252 seconds) |
2024-12-04 01:00:08 +0100 | alp_ | (~alp@2001:861:8ca0:4940:5aee:7e5d:1206:a620) (Remote host closed the connection) |
2024-12-04 01:00:25 +0100 | alp_ | (~alp@2001:861:8ca0:4940:a886:2477:d10a:75c1) |
2024-12-04 01:01:19 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2024-12-04 01:02:09 +0100 | alp__ | (~alp@128-79-174-146.hfc.dyn.abo.bbox.fr) |
2024-12-04 01:03:35 +0100 | gawen | (~gawen@user/gawen) (Quit: cya) |
2024-12-04 01:03:49 +0100 | iqubic | (~sophia@2601:602:9201:9440:6112:c36d:f068:3b4f) (Ping timeout: 260 seconds) |
2024-12-04 01:05:13 +0100 | alp_ | (~alp@2001:861:8ca0:4940:a886:2477:d10a:75c1) (Ping timeout: 252 seconds) |
2024-12-04 01:06:43 +0100 | iqubic | (~sophia@2601:602:9201:9440:9777:a5e9:365:fd69) iqubic |
2024-12-04 01:06:54 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 01:08:14 +0100 | j1n37 | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2024-12-04 01:10:05 +0100 | agent314 | (~quassel@static-198-54-130-91.cust.tzulo.com) agent314 |
2024-12-04 01:10:36 +0100 | <Leary> | @tell tylerhou `Fix` is a functor from the category of endofunctors on Hask to Hask; your `lift` corresponds to `fmap`, mapping the morphisms of the former (natural transformations) to to those of the latter (arrows). |
2024-12-04 01:10:36 +0100 | <lambdabot> | Consider it noted. |
2024-12-04 01:11:08 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2024-12-04 01:11:49 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-04 01:11:52 +0100 | gawen | (~gawen@user/gawen) gawen |
2024-12-04 01:12:21 +0100 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2024-12-04 01:12:46 +0100 | GdeVolpiano | (~GdeVolpia@user/GdeVolpiano) GdeVolpiano |
2024-12-04 01:15:29 +0100 | ByronJohnson | (~bairyn@50.250.232.19) (Remote host closed the connection) |
2024-12-04 01:18:49 +0100 | agent314 | (~quassel@static-198-54-130-91.cust.tzulo.com) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2024-12-04 01:22:41 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 01:23:26 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2024-12-04 01:23:59 +0100 | sprotte24 | (~sprotte24@p200300d16f4231002957a791852bdd2a.dip0.t-ipconnect.de) (Quit: Leaving) |
2024-12-04 01:29:27 +0100 | j1n37 | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2024-12-04 01:29:37 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-04 01:34:11 +0100 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2024-12-04 01:34:51 +0100 | OftenFaded | (~OftenFade@user/tisktisk) (Quit: Client closed) |
2024-12-04 01:34:55 +0100 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2024-12-04 01:37:36 +0100 | weary-traveler | (~user@user/user363627) user363627 |
2024-12-04 01:40:15 +0100 | pera | (~pera@user/pera) pera |
2024-12-04 01:40:43 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 01:46:00 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-12-04 01:47:23 +0100 | mange | (~user@user/mange) (Ping timeout: 252 seconds) |
2024-12-04 01:47:42 +0100 | ByronJohnson | (~bairyn@50.250.232.19) ByronJohnson |
2024-12-04 01:50:48 +0100 | dolio | (~dolio@130.44.140.168) dolio |
2024-12-04 01:50:50 +0100 | euleritian | (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-12-04 01:51:56 +0100 | euleritian | (~euleritia@77.22.252.159) |
2024-12-04 01:52:25 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 260 seconds) |
2024-12-04 01:54:13 +0100 | euleritian | (~euleritia@77.22.252.159) (Read error: Connection reset by peer) |
2024-12-04 01:54:28 +0100 | euleritian | (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) |
2024-12-04 01:56:31 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 01:59:20 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) Smiles |
2024-12-04 02:01:20 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
2024-12-04 02:01:58 +0100 | mange | (~user@user/mange) mange |
2024-12-04 02:01:58 +0100 | mange | (~user@user/mange) (Excess Flood) |
2024-12-04 02:03:33 +0100 | Guest33 | (~Guest33@14.139.38.209) |
2024-12-04 02:04:30 +0100 | Guest33 | (~Guest33@14.139.38.209) (Client Quit) |
2024-12-04 02:04:36 +0100 | OftenFaded | (~OftenFade@user/tisktisk) OftenFaded |
2024-12-04 02:06:02 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
2024-12-04 02:07:35 +0100 | <monochrom> | >:) |
2024-12-04 02:09:53 +0100 | euleritian | (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
2024-12-04 02:12:18 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 02:17:06 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-12-04 02:17:12 +0100 | euleritian | (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) |
2024-12-04 02:24:09 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-12-04 02:28:03 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 02:29:03 +0100 | euleritian | (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 265 seconds) |
2024-12-04 02:30:15 +0100 | euleritian | (~euleritia@dynamic-176-006-135-047.176.6.pool.telefonica.de) |
2024-12-04 02:32:37 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-04 02:43:34 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 02:48:49 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-12-04 02:52:12 +0100 | emma-underscores | (~quassel@204.187.100.82) () |
2024-12-04 02:57:56 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2024-12-04 02:59:20 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 03:02:30 +0100 | Buliarous | (~gypsydang@46.232.210.139) (Remote host closed the connection) |
2024-12-04 03:02:58 +0100 | pera | (~pera@user/pera) (Quit: leaving) |
2024-12-04 03:03:25 +0100 | Buliarous | (~gypsydang@46.232.210.139) Buliarous |
2024-12-04 03:04:20 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
2024-12-04 03:14:29 +0100 | machined1od | (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 260 seconds) |
2024-12-04 03:15:07 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 03:19:48 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-12-04 03:30:39 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 03:33:50 +0100 | joeyadams | (~joeyadams@syn-184-054-105-097.res.spectrum.com) (Quit: Leaving) |
2024-12-04 03:34:23 +0100 | OftenFaded | (~OftenFade@user/tisktisk) (Quit: Client closed) |
2024-12-04 03:35:51 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
2024-12-04 03:41:43 +0100 | Everything | (~Everythin@46-133-12-50.mobile.vf-ua.net) (Quit: leaving) |
2024-12-04 03:46:26 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 03:51:25 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-12-04 03:53:54 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
2024-12-04 03:54:41 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds) |
2024-12-04 03:54:49 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
2024-12-04 04:02:13 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 04:06:57 +0100 | td_ | (~td@i5387091F.versanet.de) (Ping timeout: 248 seconds) |
2024-12-04 04:08:56 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-04 04:08:59 +0100 | td_ | (~td@i53870906.versanet.de) td_ |
2024-12-04 04:20:15 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 04:23:06 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2024-12-04 04:24:30 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-12-04 04:31:58 +0100 | alp__ | (~alp@128-79-174-146.hfc.dyn.abo.bbox.fr) (Remote host closed the connection) |
2024-12-04 04:32:16 +0100 | alp__ | (~alp@2001:861:8ca0:4940:fc7d:2254:175b:29dd) |
2024-12-04 04:33:59 +0100 | alp_ | (~alp@2001:861:8ca0:4940:68d:72c1:d8a6:4577) |
2024-12-04 04:35:23 +0100 | alp_ | (~alp@2001:861:8ca0:4940:68d:72c1:d8a6:4577) (Remote host closed the connection) |
2024-12-04 04:35:38 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 04:35:40 +0100 | alp_ | (~alp@2001:861:8ca0:4940:1baf:64f4:e1ae:5b74) |
2024-12-04 04:37:05 +0100 | alp_ | (~alp@2001:861:8ca0:4940:1baf:64f4:e1ae:5b74) (Remote host closed the connection) |
2024-12-04 04:37:09 +0100 | alp__ | (~alp@2001:861:8ca0:4940:fc7d:2254:175b:29dd) (Ping timeout: 252 seconds) |
2024-12-04 04:37:22 +0100 | alp_ | (~alp@2001:861:8ca0:4940:4ba7:cb8a:c26a:d8d0) |
2024-12-04 04:39:06 +0100 | alp__ | (~alp@2001:861:8ca0:4940:5a62:c4d4:e730:577a) |
2024-12-04 04:40:46 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-04 04:41:53 +0100 | ByronJohnson | (~bairyn@50.250.232.19) (Remote host closed the connection) |
2024-12-04 04:42:17 +0100 | alp_ | (~alp@2001:861:8ca0:4940:4ba7:cb8a:c26a:d8d0) (Ping timeout: 252 seconds) |
2024-12-04 04:44:07 +0100 | alp__ | (~alp@2001:861:8ca0:4940:5a62:c4d4:e730:577a) (Ping timeout: 252 seconds) |
2024-12-04 04:51:26 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 04:59:33 +0100 | koolazer | (~koo@user/koolazer) koolazer |
2024-12-04 05:01:49 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-12-04 05:12:31 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 05:17:30 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-04 05:17:47 +0100 | aforemny_ | (~aforemny@2001:9e8:6cc3:9500:59e1:615b:5b80:729c) aforemny |
2024-12-04 05:18:43 +0100 | aforemny | (~aforemny@2001:9e8:6ce3:fa00:8581:f920:fe47:eb38) (Ping timeout: 252 seconds) |
2024-12-04 05:27:16 +0100 | r-sta | (~r-sta@sgyl-37-b2-v4wan-168528-cust2421.vm6.cable.virginm.net) |
2024-12-04 05:27:27 +0100 | <r-sta> | hello i wish to release a library via cabal |
2024-12-04 05:28:06 +0100 | <r-sta> | i want to have an example to paste where it uses the import, and a cmd line to open a repl to the src with the required lib built from cabal |
2024-12-04 05:28:18 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 05:28:23 +0100 | <r-sta> | can anyone help me with the steps? |
2024-12-04 05:29:05 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Quit: leaving) |
2024-12-04 05:31:14 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) () |
2024-12-04 05:32:05 +0100 | <r-sta> | heres some code |
2024-12-04 05:32:06 +0100 | <r-sta> | https://paste.tomsmeding.com/xmn5qdUG |
2024-12-04 05:33:30 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
2024-12-04 05:34:56 +0100 | <r-sta> | imtrying to write a zipper library for data.functor |
2024-12-04 05:35:09 +0100 | <r-sta> | to give default fmap instances |
2024-12-04 05:37:42 +0100 | <Axman6> | ndo you have a cabal project (i.e, a .cabal file) for it yet? |
2024-12-04 05:37:47 +0100 | <Axman6> | -n |
2024-12-04 05:38:25 +0100 | <Axman6> | that Source class looks quite hard to use |
2024-12-04 05:38:53 +0100 | <r-sta> | yeah, im just trying to use a cabal proj file vsn |
2024-12-04 05:39:10 +0100 | <r-sta> | is there some place i can link a directory? |
2024-12-04 05:39:56 +0100 | <Axman6> | the easiest thing would be to put it on a publicly accessible git hosting site like github (and ththat will make it easier for us ot help you too) |
2024-12-04 05:41:17 +0100 | <Axman6> | Is there a reason you don't have a functional dependency a -> index in Source? |
2024-12-04 05:42:19 +0100 | <Axman6> | repeatedly n f a = iterate f a !! n, btw |
2024-12-04 05:44:05 +0100 | <r-sta> | different sources of the same type might have different indexes |
2024-12-04 05:44:06 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 05:44:40 +0100 | <Axman6> | I'm not sure I really understand what this is supposed to do, so I'll ignore it for now we can sort out the cabal side of things. |
2024-12-04 05:44:51 +0100 | <r-sta> | ok |
2024-12-04 05:44:58 +0100 | <r-sta> | there is a simpler presentation anyhow |
2024-12-04 05:45:03 +0100 | <r-sta> | which is what i will be uploading |
2024-12-04 05:46:41 +0100 | <r-sta> | so... all i have at the moment is a comment... but i could still upload it i guess |
2024-12-04 05:47:19 +0100 | <r-sta> | i can open it up in ghci with cabal v2-repl zipper |
2024-12-04 05:47:27 +0100 | <r-sta> | how do i push it to hackage? |
2024-12-04 05:47:45 +0100 | <r-sta> | and do i have to do something so it appears as Data.Functor.Zipper ? |
2024-12-04 05:48:05 +0100 | <Axman6> | do you have a cabal file? |
2024-12-04 05:49:04 +0100 | <r-sta> | yeah |
2024-12-04 05:49:15 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-12-04 05:49:26 +0100 | <Axman6> | do you have your code on github or another git hosting website so we can see it? |
2024-12-04 05:49:41 +0100 | billchenchina | (~billchenc@2a0d:2580:ff0c:201:47cf:ca1:a674:8042) billchenchina |
2024-12-04 05:50:23 +0100 | <r-sta> | if you give me the cmd to upload to cabal i could link the hackage! |
2024-12-04 05:50:42 +0100 | <r-sta> | cabal-version: 2.4 |
2024-12-04 05:50:42 +0100 | <r-sta> | name: zipper |
2024-12-04 05:50:43 +0100 | <r-sta> | version: 0.1.0.0 |
2024-12-04 05:50:43 +0100 | <r-sta> | library |
2024-12-04 05:50:44 +0100 | <r-sta> | default-language: Haskell2010 |
2024-12-04 05:50:44 +0100 | <r-sta> | hs-source-dirs: src |
2024-12-04 05:50:45 +0100 | <r-sta> | exposed-modules: Data.Functor.Zipper |
2024-12-04 05:50:45 +0100 | <r-sta> | build-depends: base |
2024-12-04 05:50:52 +0100 | <Axman6> | you need a hackage account first, and you should consider whether this is something th's generally useful to other people |
2024-12-04 05:50:59 +0100 | <Axman6> | do not paste multiple lines in IRC! |
2024-12-04 05:51:02 +0100 | <Axman6> | @where paste |
2024-12-04 05:51:02 +0100 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
2024-12-04 05:51:07 +0100 | <r-sta> | erp, sry |
2024-12-04 05:51:23 +0100 | <r-sta> | i think its useful, it gives default functor instances |
2024-12-04 05:51:36 +0100 | <Axman6> | there is already a library called zipper, so you'll need to call it something else |
2024-12-04 05:51:39 +0100 | <r-sta> | ie, users can implement it as an alternative to implementing fmap |
2024-12-04 05:52:06 +0100 | <r-sta> | hmm... its like, a pointer with a next function for where it points too |
2024-12-04 05:52:08 +0100 | <r-sta> | any ideas? |
2024-12-04 05:52:20 +0100 | <r-sta> | its kind of a zipper... |
2024-12-04 05:52:29 +0100 | <Axman6> | I don't see what that has to do with functors? |
2024-12-04 05:52:49 +0100 | <r-sta> | if you give the length of however many cursor updates it requires |
2024-12-04 05:52:57 +0100 | <r-sta> | then it lenses each value and fmaps like that |
2024-12-04 05:53:14 +0100 | <r-sta> | the length is a "complete functor sheduling" |
2024-12-04 05:53:32 +0100 | <r-sta> | where there pointer index / cursor type is just Int for list position |
2024-12-04 05:53:48 +0100 | <r-sta> | if its more complicated because it jumps about the place as it fmaps, then it might not be Int |
2024-12-04 05:53:50 +0100 | <Axman6> | I think this is a long way from being ready to upload to hackage, there's no documentation or explanation of what it does or how to use it |
2024-12-04 05:54:08 +0100 | <Axman6> | so, step one, make it available via git |
2024-12-04 05:54:09 +0100 | poscat | (~poscat@user/poscat) (Ping timeout: 252 seconds) |
2024-12-04 05:54:14 +0100 | <r-sta> | ok |
2024-12-04 05:54:59 +0100 | <r-sta> | i just want to get the hackage cabal issue sorted first cos im sick of these darn proj files |
2024-12-04 05:55:07 +0100 | <jackdk> | Note that Hackage is an append-only package store, and the trustees ask people only to upload packages that "work, are useful to other people, and that you intend to maintain". It's possible to point to git repositories using a `cabal.project` file, which is one way to depend on experimental packages while they're cooking. |
2024-12-04 05:55:17 +0100 | <r-sta> | i want to get as much like, pure abstraction into the background as possible |
2024-12-04 05:55:41 +0100 | <r-sta> | really general libs like functors consisting for pointers with shedules for visitation, id rather make standard libs |
2024-12-04 05:55:44 +0100 | <Axman6> | Please don't upload packages to hackage that aren't ready for other people to use them |
2024-12-04 05:55:51 +0100 | <r-sta> | ah ok |
2024-12-04 05:56:01 +0100 | <r-sta> | ill make sure someone here gives it a look over before i do so |
2024-12-04 05:56:10 +0100 | <r-sta> | just trying to get a hackage account atm |
2024-12-04 05:56:25 +0100 | poscat | (~poscat@user/poscat) poscat |
2024-12-04 05:56:46 +0100 | <Axman6> | that will take a while IIRC, they get manually approved. Please just put it on github, then we can give you better advice |
2024-12-04 05:57:05 +0100 | <jackdk> | ... or your alternative code forge of choice |
2024-12-04 05:57:39 +0100 | <Axman6> | sure, wherever, as long as we can see it |
2024-12-04 05:58:06 +0100 | <r-sta> | okok one moment |
2024-12-04 05:59:38 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 06:01:31 +0100 | <r-sta> | any idea what i could call it? |
2024-12-04 06:01:53 +0100 | <r-sta> | next? |
2024-12-04 06:02:01 +0100 | <r-sta> | ok im calling it next |
2024-12-04 06:02:12 +0100 | <Axman6> | I don't understand what it's for or why it exists, so not really |
2024-12-04 06:03:00 +0100 | <Axman6> | Also have you looked for (or asked) if there is something that already exists that implements what you want? |
2024-12-04 06:04:26 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-04 06:04:53 +0100 | <Axman6> | You haven't defined any instances for your class, so it's very unclear to me what it's supposed to do. the `ensemble` looks very context specific, will other people frequently be working with something which works on [Double] like that? |
2024-12-04 06:05:09 +0100 | <r-sta> | https://github.com/munston/next/tree/main/next |
2024-12-04 06:05:23 +0100 | <r-sta> | hmm... |
2024-12-04 06:05:26 +0100 | <r-sta> | er, no |
2024-12-04 06:05:33 +0100 | <r-sta> | thats for parametric things |
2024-12-04 06:05:39 +0100 | <r-sta> | thats not part of the general abstraction |
2024-12-04 06:05:51 +0100 | <r-sta> | sorry it was a shotgun module for examples sake |
2024-12-04 06:06:01 +0100 | <r-sta> | ... |
2024-12-04 06:06:05 +0100 | <Axman6> | Can you add a README explaining what it is and what it's used for? |
2024-12-04 06:06:25 +0100 | <r-sta> | probably the class is more useful no? |
2024-12-04 06:06:36 +0100 | <r-sta> | isnt it clear from Source and SheduledFunctor what it does? |
2024-12-04 06:06:41 +0100 | <Axman6> | no idea, I don't understand the class |
2024-12-04 06:07:00 +0100 | <r-sta> | ill write a clearer version in this repo 2 secs |
2024-12-04 06:08:56 +0100 | <Axman6> | generally you wouldn't have everything inside a folder in the git repo either, your .cabal file and src directory would usually be at the top level |
2024-12-04 06:09:51 +0100 | <Axman6> | I'm really confused why there seems to be so much IO involved in the types if this is about functors, do we mean the same functors, as in Haskell's Functor class? |
2024-12-04 06:15:27 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 06:17:40 +0100 | <r-sta> | https://raw.githubusercontent.com/munston/next/refs/heads/main/next/src/Data/Functor/Next.hs |
2024-12-04 06:18:06 +0100 | <r-sta> | oh the src thing |
2024-12-04 06:18:13 +0100 | <r-sta> | thats some weird mutability version |
2024-12-04 06:18:18 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2024-12-04 06:18:25 +0100 | <r-sta> | the core (pure) version is the scheduled functor below |
2024-12-04 06:18:27 +0100 | <Axman6> | that's what you shared... |
2024-12-04 06:18:51 +0100 | <r-sta> | yeah. i mean. its just because it uses writing and reading in the IO monad |
2024-12-04 06:19:03 +0100 | <r-sta> | but its just a synonym to the pure version below it |
2024-12-04 06:19:03 +0100 | <Axman6> | so you're reimplementing things that already exist in the lens package? |
2024-12-04 06:19:16 +0100 | <r-sta> | huh, no its just a term |
2024-12-04 06:19:23 +0100 | <r-sta> | its a getter setter pair iiuc |
2024-12-04 06:19:44 +0100 | <r-sta> | its like, if your fmapping, you think of editing the contents *within* the container |
2024-12-04 06:19:47 +0100 | <r-sta> | but with a lens |
2024-12-04 06:19:52 +0100 | <r-sta> | its like you retrive it first |
2024-12-04 06:19:56 +0100 | <r-sta> | then edit it and put it back |
2024-12-04 06:20:09 +0100 | <Axman6> | right, that's what the lens library provides? |
2024-12-04 06:20:13 +0100 | <r-sta> | the mutability in the Source version kind of means you dont need to put it back you just write to disck |
2024-12-04 06:20:25 +0100 | <r-sta> | Axman6: its 3 lines |
2024-12-04 06:20:34 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-12-04 06:20:47 +0100 | <r-sta> | im not pulling in a whole repo for that, so obfuscating |
2024-12-04 06:20:52 +0100 | <r-sta> | its for comunications sake anyway |
2024-12-04 06:21:44 +0100 | <r-sta> | i mean, you could say the index was in a bifunctor... |
2024-12-04 06:22:01 +0100 | <r-sta> | because its a uniquely appearing element, fmap is the same as get edit and set |
2024-12-04 06:22:20 +0100 | <r-sta> | the cursor itself, does not need a cursor for its get and set |
2024-12-04 06:22:25 +0100 | <r-sta> | because there is only one of them |
2024-12-04 06:22:55 +0100 | <r-sta> | its like. functor <-> lenslike opperation |
2024-12-04 06:23:03 +0100 | <r-sta> | its basically a bifunctor on the cursor and the contents |
2024-12-04 06:23:12 +0100 | <r-sta> | but instead we just say we can put a lens on to edit it |
2024-12-04 06:23:38 +0100 | <r-sta> | the actual values in the functor that is being sheduled have an order specified |
2024-12-04 06:23:55 +0100 | <Axman6> | do you have example instances of those three classes? The Lens class feels like it might not be a good idea |
2024-12-04 06:23:58 +0100 | <r-sta> | otherwise the functor is coming from the get edit set in much the same way |
2024-12-04 06:24:33 +0100 | <r-sta> | if you dont have the lens class it ends up looking like the version from before |
2024-12-04 06:27:36 +0100 | <Axman6> | Ok, so I have quite a lot of problems here, but one of the biggest is reusing very well understood terms with new meaning - Haskell developers know what a lens is (and generally accept that that means the van Laarhoven encoding of them). So for people to use this, they need to adopt incompatible ideas that don't work with the rest of the HAskell ecosystem. That doesn't sound like something that should be on hackage. Can you explain what you're actually trying |
2024-12-04 06:27:36 +0100 | <Axman6> | to achieve? It doesn't like you just want to have the code somewhere out of your project, that doesn't mean it needs to be on hackage |
2024-12-04 06:29:26 +0100 | <r-sta> | this might be more simple to understand |
2024-12-04 06:29:26 +0100 | <r-sta> | https://raw.githubusercontent.com/munston/next/refs/heads/main/next/src/Data/Functor/Next.hs |
2024-12-04 06:30:21 +0100 | <r-sta> | there are no problems with using the word Lens in a source file. it is a standard encoding also |
2024-12-04 06:30:26 +0100 | stiell_ | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 260 seconds) |
2024-12-04 06:31:14 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 06:32:57 +0100 | <r-sta> | as for what im trying to acheive, thats what im trying to comunicate, is there anything specific thats not clear about the technique being presented? |
2024-12-04 06:33:16 +0100 | <r-sta> | could do the missing definition i suppose |
2024-12-04 06:33:31 +0100 | <Axman6> | some example instances would help, I understand the code, I don't understand what it's for |
2024-12-04 06:34:02 +0100 | <Axman6> | it feels like it's related to Traversable, or just lens' optics |
2024-12-04 06:35:56 +0100 | <Axman6> | is the idea of fmapDefaultZ that it would repearedly call... yeah I can't figure out how you could even imeplement fmapDefaultZ using that interface, there's no way to tell which index you're up to, how do you know when you're done? |
2024-12-04 06:36:30 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-12-04 06:38:04 +0100 | <r-sta> | you just get given the length |
2024-12-04 06:38:08 +0100 | <r-sta> | you do it that many times |
2024-12-04 06:38:13 +0100 | <r-sta> | maybe thats not the best way... |
2024-12-04 06:38:18 +0100 | <r-sta> | but it is *a* way! |
2024-12-04 06:38:19 +0100 | <Axman6> | but what if the index isn't at the beginning? |
2024-12-04 06:38:28 +0100 | <r-sta> | then your fucked! |
2024-12-04 06:38:46 +0100 | <r-sta> | i mean... it should be at the beginning |
2024-12-04 06:39:05 +0100 | <r-sta> | tbh this feels like a week point |
2024-12-04 06:39:16 +0100 | <Axman6> | so I can go through a _thing_ once ever? what types can be instances of Next? |
2024-12-04 06:39:35 +0100 | <r-sta> | eg if its a list, ix ~ Int |
2024-12-04 06:39:39 +0100 | <r-sta> | next = +1 |
2024-12-04 06:39:56 +0100 | <Axman6> | does that mean that using this on a list of O(n^2)? |
2024-12-04 06:40:11 +0100 | <Axman6> | of=is |
2024-12-04 06:40:16 +0100 | <r-sta> | hmm.. well depends on how you implement the zipper |
2024-12-04 06:40:22 +0100 | <r-sta> | if it just uses !! it will be slow |
2024-12-04 06:40:32 +0100 | <r-sta> | if it actually maintains the cursor like a zipper it might be faster |
2024-12-04 06:40:39 +0100 | <r-sta> | but its at class level so we cant be sure |
2024-12-04 06:41:08 +0100 | <Axman6> | so does it make sense to have instance Next Int [a]? |
2024-12-04 06:41:09 +0100 | <r-sta> | we just know that if we were given an index, we should be able to edit at that cursor location |
2024-12-04 06:41:33 +0100 | <r-sta> | yes thats a good instance. other shedules might be interesting too |
2024-12-04 06:41:46 +0100 | <r-sta> | like if there is (x,xs) instead of (x:xs) |
2024-12-04 06:41:52 +0100 | <Axman6> | or do we need instance Next Int (ListZipper a) which is some other type that represents a cursor over a list? |
2024-12-04 06:41:58 +0100 | <r-sta> | and you alternate between the head, and each element of the tail in turn |
2024-12-04 06:42:11 +0100 | <r-sta> | so doing n opperations on one of n+1 elements |
2024-12-04 06:42:20 +0100 | <r-sta> | and doing one on each of the others |
2024-12-04 06:42:49 +0100 | <r-sta> | Axeman6: yes, if you wanted the fast version, you would have to ensure the instance is over a container that updates that way |
2024-12-04 06:43:01 +0100 | <Axman6> | the usual definition for a list zipper is something like data ListZipper a = ListZipper [a] a [a] where the first list is all the elements before the focus (in reverse order), the current focus, and everything after |
2024-12-04 06:43:13 +0100 | <r-sta> | exactly, this is the perfect example instance |
2024-12-04 06:43:34 +0100 | <Axman6> | ok, so write some instances so people know what this is for |
2024-12-04 06:43:40 +0100 | <r-sta> | we write these implementations, and then it gives the fmap |
2024-12-04 06:43:46 +0100 | <Axman6> | does it make sense to have a zipper over Map k v? |
2024-12-04 06:44:10 +0100 | <r-sta> | iiuc yes, but that it might be slower depending on theoretical hardware |
2024-12-04 06:44:32 +0100 | <Axman6> | Luckily GHC doesn't support theoretical hardware |
2024-12-04 06:44:56 +0100 | <r-sta> | damn, then the Map version might even be faster |
2024-12-04 06:45:21 +0100 | <r-sta> | i cant decide on how to write the classes though |
2024-12-04 06:45:38 +0100 | <r-sta> | you have flumoxed me by saying i shouldnt invoke a lens class just for a lens on the cursor |
2024-12-04 06:45:55 +0100 | <Axman6> | So this goes to my point ogf this not being ready for hackage, if you can't figure out how to use it properly, how will others? |
2024-12-04 06:46:12 +0100 | <Axman6> | Well, what are the instances of the Lens class? |
2024-12-04 06:46:26 +0100 | <Axman6> | show us some instances |
2024-12-04 06:47:03 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 06:47:44 +0100 | <Axman6> | For reference, the lens encoding of this is extremely nice: https://hackage.haskell.org/package/zippers-0.3.2/docs/Control-Zipper.html as long as you have a lens to any point in your structure, you can get a zipper for free over it |
2024-12-04 06:48:46 +0100 | <Axman6> | (This is one of those libraries I've always wanted a use for but never found one) |
2024-12-04 06:49:02 +0100 | <r-sta> | https://github.com/munston/next/blob/main/next/src/Data/Functor/Next.hs |
2024-12-04 06:50:19 +0100 | <r-sta> | er, yeah, i was working with ed for a while on all that stuff and despite basically giving the biplate stuff i ended up hating all the carrots and stuff |
2024-12-04 06:50:32 +0100 | <Axman6> | editZ doesn't call next, so it just applies `f` `lengthZ x` times on one focus right? |
2024-12-04 06:50:56 +0100 | <r-sta> | yeah, you dont want the cursor shifting each time there is an edit nesacarrily |
2024-12-04 06:51:52 +0100 | <Axman6> | how often do I want to apply a function n times, where n is the length of the ... structure? |
2024-12-04 06:52:04 +0100 | <Axman6> | I still don't see any instances btw |
2024-12-04 06:52:05 +0100 | <r-sta> | every time you do fmap! |
2024-12-04 06:52:31 +0100 | <r-sta> | anyway, this can let you do it n+m times, where m are some extra edits!!! |
2024-12-04 06:52:33 +0100 | <Axman6> | but if the index never moves, then I'm just applying f that many times to one item? |
2024-12-04 06:53:00 +0100 | <Axman6> | Also, you can't use this to implement fmap at all right? You only modify one a at a time, so its type can't change |
2024-12-04 06:53:02 +0100 | <r-sta> | huh, no, just because its not used in the edit function automatically, you just have to use it manually in fmap |
2024-12-04 06:53:14 +0100 | <r-sta> | erp! |
2024-12-04 06:53:16 +0100 | <r-sta> | type change |
2024-12-04 06:53:19 +0100 | <r-sta> | oh no! |
2024-12-04 06:53:20 +0100 | <Axman6> | that |
2024-12-04 06:53:28 +0100 | <Axman6> | that's a pretty fundamental part of fmap... |
2024-12-04 06:53:29 +0100 | <r-sta> | stupid parameter vectors totally blindsided me |
2024-12-04 06:53:36 +0100 | <Axman6> | it might be _the_ fundamental part of fmap |
2024-12-04 06:53:46 +0100 | <r-sta> | suspended traversals will never allow for that! |
2024-12-04 06:53:51 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-04 06:53:52 +0100 | <Axman6> | indeed |
2024-12-04 06:54:27 +0100 | <r-sta> | the requirement becomes an insane 2 type zipper |
2024-12-04 06:54:33 +0100 | <Axman6> | data ListZipper' a b c = ListZipper [a] (Maybe b) [c] would allow it |
2024-12-04 06:54:37 +0100 | <r-sta> | and not amenable to arbitrary scheduling |
2024-12-04 06:54:39 +0100 | <r-sta> | ffs |
2024-12-04 06:54:48 +0100 | Square2 | (~Square4@user/square) Square |
2024-12-04 06:55:09 +0100 | <r-sta> | yeah, but its about not being able to do many updates to the same entry according to the schedule |
2024-12-04 06:55:24 +0100 | <r-sta> | "functor schedule" is a misnomer in of itself |
2024-12-04 06:55:29 +0100 | <r-sta> | nothing to do with functors! |
2024-12-04 06:55:32 +0100 | <r-sta> | brarg! |
2024-12-04 06:55:53 +0100 | <r-sta> | ok, now this is why you need a seccond pair of eyes |
2024-12-04 06:55:54 +0100 | <Axman6> | indeed |
2024-12-04 06:56:08 +0100 | <r-sta> | well thats not getting on hackage then! |
2024-12-04 06:56:11 +0100 | <Axman6> | These are good lessons to learn though |
2024-12-04 06:56:34 +0100 | <r-sta> | ok fair |
2024-12-04 06:56:49 +0100 | <r-sta> | im actually kinda bummed out about that, ima go |
2024-12-04 06:56:53 +0100 | <Axman6> | and one of the reasons I kept trying to get you to write some concrete things like instances (fmapDefaultZ would have been good too). just because you can write the types doesn't mean you can write the code |
2024-12-04 06:57:27 +0100 | <Axman6> | so this may well still be a useful thing, but you gotta prove that (luckily programs are proofs in Haskell) |
2024-12-04 06:57:28 +0100 | <r-sta> | ... |
2024-12-04 06:57:29 +0100 | <r-sta> | suppose |
2024-12-04 06:57:50 +0100 | <Axman6> | undefined proves everything, just not usefully |
2024-12-04 06:57:53 +0100 | Square | (~Square@user/square) (Ping timeout: 255 seconds) |
2024-12-04 06:58:20 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 06:58:24 +0100 | <r-sta> | your right, i would have run into the "edit many times, not (a->b) for edit" as soon as i went to write the instance |
2024-12-04 06:58:47 +0100 | <Axman6> | monoMap :: Zipper ix a (f a) => (a -> a) -> f a -> f a feels doable, and worth seeing if you can do it |
2024-12-04 06:58:51 +0100 | <r-sta> | ANYWAY |
2024-12-04 06:58:53 +0100 | <r-sta> | basically |
2024-12-04 06:58:54 +0100 | <r-sta> | yeah |
2024-12-04 06:58:57 +0100 | <r-sta> | you have to mono it |
2024-12-04 06:59:05 +0100 | <r-sta> | then everything still holds |
2024-12-04 06:59:23 +0100 | <Axman6> | prove it =) |
2024-12-04 06:59:27 +0100 | <r-sta> | multiple edits breaks traversable laws, i thought this might be an interesting structure |
2024-12-04 07:00:24 +0100 | <r-sta> | (sorry your also right there should be a next in editZ) |
2024-12-04 07:01:24 +0100 | <r-sta> | this compiles ok; |
2024-12-04 07:01:24 +0100 | <r-sta> | https://github.com/munston/next/blob/main/next/src/Data/Functor/Next.hs |
2024-12-04 07:02:02 +0100 | <Axman6> | does it work? Show me some instances |
2024-12-04 07:02:53 +0100 | <Axman6> | simple ones that only have simple definitions: Data.Proxy.Proxy, (b, a), Maybe a - can you write isntances for next and zipper for those? |
2024-12-04 07:03:53 +0100 | <monochrom> | If I were interested, I would ask about actual instances and toy examples too. |
2024-12-04 07:04:04 +0100 | <Axman6> | instance Next () (Proxy a) where ..., instance Next () (b, a) where ..., instance Next ?? (Maybe a) where ... |
2024-12-04 07:04:05 +0100 | <monochrom> | But since I am uninterested, I will tell the well-known math joke. |
2024-12-04 07:04:18 +0100 | <r-sta> | or maybe more like this; |
2024-12-04 07:04:18 +0100 | <r-sta> | https://github.com/munston/next/blob/main/next/src/Data/Functor/Next.hs |
2024-12-04 07:04:43 +0100 | <r-sta> | go on, whats this math joke? |
2024-12-04 07:04:54 +0100 | <Axman6> | I think the joke is an exercise left to the reader |
2024-12-04 07:04:58 +0100 | <monochrom> | A math PhD student thought up a new kind of rings (additional axioms on top of ring axioms), and proved many nice theorems about them. |
2024-12-04 07:05:31 +0100 | Axman6 | gets the popcorn |
2024-12-04 07:05:38 +0100 | <monochrom> | During the exam, the examiners asked: Do you have examples of this kind of rings? Answer: No, haven't thought of it. |
2024-12-04 07:05:51 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-12-04 07:05:53 +0100 | poscat | (~poscat@user/poscat) (Quit: Bye) |
2024-12-04 07:06:08 +0100 | <monochrom> | The examiners went on to go to the blackboard and proved that only {0} satisfies the additional axioms. |
2024-12-04 07:07:20 +0100 | poscat | (~poscat@user/poscat) poscat |
2024-12-04 07:07:43 +0100 | euandreh1 | (~Thunderbi@2804:d59:8929:cc00:c70d:53a7:f44e:6c64) euandreh |
2024-12-04 07:08:15 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 07:09:40 +0100 | Axman6 | is waiting for a punchline... |
2024-12-04 07:09:50 +0100 | <monochrom> | That's the punchline. |
2024-12-04 07:10:50 +0100 | euandreh1 | (~Thunderbi@2804:d59:8929:cc00:c70d:53a7:f44e:6c64) (Client Quit) |
2024-12-04 07:10:56 +0100 | euandreh | (~Thunderbi@189.6.105.228) (Ping timeout: 264 seconds) |
2024-12-04 07:11:05 +0100 | <Axman6> | that feels more like a cry for help based on a real experience you've had monochrom, you good bro? |
2024-12-04 07:11:19 +0100 | <monochrom> | Perhaps I can retell the joke with semigroups instead of rings? More people here know semigroups. |
2024-12-04 07:11:56 +0100 | <monochrom> | A math PhD student thought up a new kind of semigroups (additional axioms on top of semigroup axioms), and proved many nice theorems about them. |
2024-12-04 07:12:10 +0100 | <monochrom> | During the exam, the examiners asked: Do you have examples of this kind of semigroups? Answer: No, haven't thought of it. |
2024-12-04 07:12:11 +0100 | <Axman6> | Also, I'm pretty sure the appropriate type above for Maybe would be instance Next Bool (Maybe a) - "have we visited all the a's yet" |
2024-12-04 07:12:25 +0100 | <monochrom> | The examiners went on to go to the blackboard and proved that only the empty set satisfies the additional axioms. |
2024-12-04 07:12:54 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
2024-12-04 07:13:26 +0100 | <Axman6> | monochrom: that just sounds like the sort of nonsense mathematicians do all the time though, the student feels like a model methematician to me |
2024-12-04 07:14:01 +0100 | <monochrom> | haha |
2024-12-04 07:15:06 +0100 | <Axman6> | r-sta: I have a feeling you want to use lengthZ x - 1 btw |
2024-12-04 07:15:14 +0100 | <monochrom> | Works that survive peer review are not that bad. Someone would be asking "is there an example?" all the time. |
2024-12-04 07:15:41 +0100 | <monochrom> | But sure, during sketching and brainstorming, of course you run into that all the time. It's brainstorming. |
2024-12-04 07:16:06 +0100 | <Axman6> | I've definitely gone through very similar things, where I thought I had come up with something useful, until I tried to use it |
2024-12-04 07:17:25 +0100 | <Axman6> | (possible max 0 (lengthZ x - 1) to be safe - the isntance for Proxy will have lengthZ _ = 0) |
2024-12-04 07:17:36 +0100 | <r-sta> | it does not work... |
2024-12-04 07:17:37 +0100 | <r-sta> | https://github.com/munston/next/blob/main/next/src/Data/Functor/Next.hs |
2024-12-04 07:18:32 +0100 | <Axman6> | what goes wrong? |
2024-12-04 07:18:46 +0100 | <Axman6> | I would expect any use of error to go wrong =) |
2024-12-04 07:19:12 +0100 | <r-sta> | it does not return an error |
2024-12-04 07:19:17 +0100 | <r-sta> | :-( |
2024-12-04 07:19:33 +0100 | <Axman6> | what did you do to run it though? |
2024-12-04 07:19:42 +0100 | <Axman6> | did you evaluate test in ghci? |
2024-12-04 07:20:00 +0100 | <r-sta> | yeah it just returns fine |
2024-12-04 07:20:03 +0100 | <r-sta> | unchanged |
2024-12-04 07:20:15 +0100 | <r-sta> | ghci> test |
2024-12-04 07:20:16 +0100 | <r-sta> | ListCursor 0 0 [1,2,3] |
2024-12-04 07:20:24 +0100 | <r-sta> | should be [2,3,4] |
2024-12-04 07:20:35 +0100 | <r-sta> | well, if it was (+1) and not (error.show) |
2024-12-04 07:21:10 +0100 | <Axman6> | should newListCursor xs = ListCursor 0 0 xs be calling length? (something which is almost always a code smell btw, length may never terminate) |
2024-12-04 07:21:21 +0100 | <r-sta> | DERP! |
2024-12-04 07:22:59 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-12-04 07:24:00 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 07:24:01 +0100 | <r-sta> | ok |
2024-12-04 07:24:02 +0100 | <r-sta> | https://raw.githubusercontent.com/munston/next/refs/heads/main/next/src/Data/Functor/Next.hs |
2024-12-04 07:24:04 +0100 | <r-sta> | that works |
2024-12-04 07:24:09 +0100 | <r-sta> | all examples and everything |
2024-12-04 07:24:48 +0100 | <r-sta> | not a bad concept eh!? |
2024-12-04 07:25:08 +0100 | <Axman6> | I seem many problems still, but at least you got something working |
2024-12-04 07:25:13 +0100 | <r-sta> | any ideas how to get it into the kind of form where it could be a lib? |
2024-12-04 07:25:39 +0100 | <r-sta> | problems!? |
2024-12-04 07:25:42 +0100 | <r-sta> | seems fine! |
2024-12-04 07:25:47 +0100 | zenmov | (~zenmov@user/zenmov) zenmov |
2024-12-04 07:25:48 +0100 | <r-sta> | compiles, passes unit tests |
2024-12-04 07:25:58 +0100 | <r-sta> | never breaks... |
2024-12-04 07:26:01 +0100 | <Axman6> | I think you'd need to make it more efficient first, there's some significant performance issues there. most of the list operations are O(n^2) |
2024-12-04 07:26:31 +0100 | <Axman6> | And I think you'd need some more instances defined |
2024-12-04 07:26:33 +0100 | <r-sta> | oh, you mean you want the propper zipper version |
2024-12-04 07:26:39 +0100 | <r-sta> | im not spending all day writing instances |
2024-12-04 07:26:59 +0100 | <Axman6> | then why do you want to release it on hackage? Without instances, it's not useful to anyone |
2024-12-04 07:27:14 +0100 | <r-sta> | huh |
2024-12-04 07:27:24 +0100 | <r-sta> | i meant more in terms of, like getting it to do stuff |
2024-12-04 07:27:34 +0100 | <r-sta> | its not useless |
2024-12-04 07:27:39 +0100 | <r-sta> | but like, the user might want Map |
2024-12-04 07:27:44 +0100 | <r-sta> | idk how to implementa that |
2024-12-04 07:27:46 +0100 | <Axman6> | Just because some Haskell code _exists_ doesn't mean it should be on Hackage (as someone who has a few packages on Hackage that aren't useful at all that should be removed) |
2024-12-04 07:27:53 +0100 | <r-sta> | cos its from a library and i can basically only do pure code |
2024-12-04 07:28:10 +0100 | <r-sta> | ok ill keep it off hackage and save from having to maintain it! |
2024-12-04 07:28:13 +0100 | <Axman6> | I don't understand your point |
2024-12-04 07:28:24 +0100 | <r-sta> | point is i am not writing these instances |
2024-12-04 07:28:27 +0100 | <Axman6> | what does pure code have to do with Map? |
2024-12-04 07:28:37 +0100 | <r-sta> | er... i mean. not from libraries |
2024-12-04 07:28:39 +0100 | <r-sta> | sorry, tired |
2024-12-04 07:28:48 +0100 | <r-sta> | prelude only idiom |
2024-12-04 07:28:49 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-12-04 07:28:58 +0100 | <r-sta> | part of the reason i want to get some of my libs on hackage |
2024-12-04 07:28:59 +0100 | <Axman6> | Right, so what use does this provide to other people? |
2024-12-04 07:29:02 +0100 | <r-sta> | so i can actually use libs! |
2024-12-04 07:29:12 +0100 | <Axman6> | you can use libraries without hackage |
2024-12-04 07:29:18 +0100 | <r-sta> | ok. so. if eg. you. wrote the Map instance, etc, so it was useful |
2024-12-04 07:29:29 +0100 | <r-sta> | well, its broken cos i didnt realise there was this mono type restriction |
2024-12-04 07:29:36 +0100 | <r-sta> | and so there are like, theoretics abound |
2024-12-04 07:29:50 +0100 | <Axman6> | Well, I can;t write the Map instance, I don't control your package or the containers package, and those are the only two places instances are allowed to be defined |
2024-12-04 07:30:30 +0100 | <r-sta> | fair |
2024-12-04 07:30:35 +0100 | <r-sta> | well i dont need this anyway |
2024-12-04 07:30:41 +0100 | <r-sta> | personally |
2024-12-04 07:30:52 +0100 | <r-sta> | and i kind of just wanted to use it for my project. but i get thats not the point |
2024-12-04 07:31:01 +0100 | <r-sta> | so ill keep it in a local cabal proj as per usual |
2024-12-04 07:31:14 +0100 | <r-sta> | and if any of the libs are more worthy of user stuff ill put those |
2024-12-04 07:31:14 +0100 | <Axman6> | Sounds reasonable to me |
2024-12-04 07:31:40 +0100 | <r-sta> | so what do you think of the concept? |
2024-12-04 07:31:49 +0100 | <r-sta> | and this weird multi edit monotyping business |
2024-12-04 07:32:18 +0100 | euleritian | (~euleritia@dynamic-176-006-135-047.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-12-04 07:32:35 +0100 | euleritian | (~euleritia@77.23.250.232) |
2024-12-04 07:33:48 +0100 | <Axman6> | I'm not sure what someone would use it for. it reminds me a bit of Ed Kmett's monoid action stuff, but only barely. |
2024-12-04 07:34:05 +0100 | <r-sta> | well im using it for parameters |
2024-12-04 07:34:13 +0100 | <r-sta> | i have an awesome code hang on |
2024-12-04 07:34:32 +0100 | <Axman6> | Also feels a lot like https://hackage.haskell.org/package/cursor |
2024-12-04 07:35:39 +0100 | <r-sta> | yup |
2024-12-04 07:35:46 +0100 | <r-sta> | done loads on this over the years |
2024-12-04 07:35:50 +0100 | <r-sta> | there was i think conduit |
2024-12-04 07:36:17 +0100 | <r-sta> | https://pastebin.com/raw/tCbSrZ5M |
2024-12-04 07:36:35 +0100 | <Axman6> | Can't quite see the relationship to conduit |
2024-12-04 07:37:13 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2024-12-04 07:37:18 +0100 | <r-sta> | sorry i think i put the wrong code |
2024-12-04 07:38:02 +0100 | <Axman6> | I'm done with work for today, so home time for me |
2024-12-04 07:39:23 +0100 | <r-sta> | ok try this |
2024-12-04 07:39:24 +0100 | <r-sta> | https://pastebin.com/raw/4bGief1Z |
2024-12-04 07:39:43 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 07:40:38 +0100 | <r-sta> | and thanks for your help |
2024-12-04 07:42:32 +0100 | r-sta | (~r-sta@sgyl-37-b2-v4wan-168528-cust2421.vm6.cable.virginm.net) (Quit: Client closed) |
2024-12-04 07:42:38 +0100 | hseg | (~gesh@46.120.21.36) |
2024-12-04 07:44:10 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-04 07:53:15 +0100 | gentauro | (~gentauro@user/gentauro) (Ping timeout: 276 seconds) |
2024-12-04 07:55:07 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 07:57:36 +0100 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en |
2024-12-04 07:59:13 +0100 | alp | (~alp@2001:861:8ca0:4940:81a9:6af:7f50:e369) |
2024-12-04 07:59:26 +0100 | gentauro | (~gentauro@user/gentauro) gentauro |
2024-12-04 08:02:43 +0100 | alp | (~alp@2001:861:8ca0:4940:81a9:6af:7f50:e369) (Remote host closed the connection) |
2024-12-04 08:03:19 +0100 | ByronJohnson | (~bairyn@50.250.232.19) ByronJohnson |
2024-12-04 08:03:20 +0100 | alp | (~alp@2001:861:8ca0:4940:81a9:6af:7f50:e369) |
2024-12-04 08:07:16 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-04 08:07:19 +0100 | euleritian | (~euleritia@77.23.250.232) (Ping timeout: 260 seconds) |
2024-12-04 08:08:10 +0100 | euleritian | (~euleritia@dynamic-176-006-135-047.176.6.pool.telefonica.de) |
2024-12-04 08:09:13 +0100 | ByronJohnson | (~bairyn@50.250.232.19) (Remote host closed the connection) |
2024-12-04 08:18:34 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 08:19:05 +0100 | CiaoSen | (~Jura@2a05:5800:206:4900:ca4b:d6ff:fec1:99da) CiaoSen |
2024-12-04 08:20:16 +0100 | ByronJohnson | (~bairyn@50.250.232.19) ByronJohnson |
2024-12-04 08:23:23 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
2024-12-04 08:25:21 +0100 | poscat | (~poscat@user/poscat) (Quit: Bye) |
2024-12-04 08:31:50 +0100 | ft | (~ft@p508db9c7.dip0.t-ipconnect.de) (Quit: leaving) |
2024-12-04 08:34:21 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 08:41:05 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-04 08:41:47 +0100 | agent314 | (~quassel@static-198-54-130-91.cust.tzulo.com) agent314 |
2024-12-04 08:45:03 +0100 | agent314 | (~quassel@static-198-54-130-91.cust.tzulo.com) (Client Quit) |
2024-12-04 08:45:06 +0100 | vpan | (~vpan@212.117.1.172) |
2024-12-04 08:52:07 +0100 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2024-12-04 08:52:24 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 08:53:21 +0100 | agent314 | (~quassel@static-198-54-130-91.cust.tzulo.com) agent314 |
2024-12-04 08:54:25 +0100 | agent314 | (~quassel@static-198-54-130-91.cust.tzulo.com) (Client Quit) |
2024-12-04 08:57:00 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac |
2024-12-04 08:57:36 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
2024-12-04 09:00:03 +0100 | caconym | (~caconym@user/caconym) (Quit: bye) |
2024-12-04 09:00:40 +0100 | caconym | (~caconym@user/caconym) caconym |
2024-12-04 09:01:46 +0100 | falafel | (~falafel@2603:8000:b4f0:62a0:73f:cafd:54ea:955f) falafel |
2024-12-04 09:06:30 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
2024-12-04 09:08:23 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds) |
2024-12-04 09:13:09 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-12-04 09:14:51 +0100 | chele | (~chele@user/chele) chele |
2024-12-04 09:21:24 +0100 | kuribas | (~user@2a02:1808:80:ffbf:6c27:4932:fe0c:bc0c) kuribas |
2024-12-04 09:22:07 +0100 | euleritian | (~euleritia@dynamic-176-006-135-047.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-12-04 09:22:25 +0100 | euleritian | (~euleritia@77.23.250.232) |
2024-12-04 09:27:14 +0100 | euleritian | (~euleritia@77.23.250.232) (Ping timeout: 260 seconds) |
2024-12-04 09:27:37 +0100 | youthlic | (~Thunderbi@user/youthlic) (Remote host closed the connection) |
2024-12-04 09:28:04 +0100 | youthlic | (~Thunderbi@user/youthlic) youthlic |
2024-12-04 09:28:21 +0100 | <albet70> | hi, nice to meet u all,i want 2 improve my english. pls help me.3ks a lot |
2024-12-04 09:28:26 +0100 | euleritian | (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) |
2024-12-04 09:33:15 +0100 | euleritian | (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
2024-12-04 09:33:16 +0100 | poscat | (~poscat@user/poscat) poscat |
2024-12-04 09:33:47 +0100 | euleritian | (~euleritia@dynamic-176-006-135-047.176.6.pool.telefonica.de) |
2024-12-04 09:37:07 +0100 | kuribas` | (~user@ip-188-118-57-242.reverse.destiny.be) kuribas |
2024-12-04 09:38:34 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-12-04 09:38:52 +0100 | kuribas | (~user@2a02:1808:80:ffbf:6c27:4932:fe0c:bc0c) (Ping timeout: 252 seconds) |
2024-12-04 09:42:07 +0100 | falafel | (~falafel@2603:8000:b4f0:62a0:73f:cafd:54ea:955f) (Ping timeout: 264 seconds) |
2024-12-04 09:42:14 +0100 | youthlic | (~Thunderbi@user/youthlic) (Remote host closed the connection) |
2024-12-04 09:42:27 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2024-12-04 09:42:32 +0100 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
2024-12-04 09:42:41 +0100 | youthlic | (~Thunderbi@user/youthlic) youthlic |
2024-12-04 09:53:59 +0100 | michalz | (~michalz@185.246.207.222) |
2024-12-04 09:56:38 +0100 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en) |
2024-12-04 09:58:34 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-12-04 09:58:36 +0100 | billchenchina- | (~billchenc@103.118.42.229) billchenchina |
2024-12-04 10:00:49 +0100 | billchenchina | (~billchenc@2a0d:2580:ff0c:201:47cf:ca1:a674:8042) (Ping timeout: 245 seconds) |
2024-12-04 10:07:44 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod |
2024-12-04 10:08:50 +0100 | poscat | (~poscat@user/poscat) (Ping timeout: 260 seconds) |
2024-12-04 10:09:09 +0100 | poscat0x04 | (~poscat@user/poscat) poscat |
2024-12-04 10:11:51 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) Smiles |
2024-12-04 10:13:51 +0100 | acidjnk_new3 | (~acidjnk@p200300d6e7283f433921c55fec8b6dfb.dip0.t-ipconnect.de) acidjnk |
2024-12-04 10:17:15 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.4.2) |
2024-12-04 10:19:05 +0100 | euleritian | (~euleritia@dynamic-176-006-135-047.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-12-04 10:19:12 +0100 | lxsameer | (~lxsameer@Serene/lxsameer) lxsameer |
2024-12-04 10:19:22 +0100 | euleritian | (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) |
2024-12-04 10:24:53 +0100 | billchenchina- | (~billchenc@103.118.42.229) (Ping timeout: 255 seconds) |
2024-12-04 10:26:50 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2024-12-04 10:29:54 +0100 | euleritian | (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 246 seconds) |
2024-12-04 10:30:36 +0100 | ByronJohnson | (~bairyn@50.250.232.19) (Ping timeout: 246 seconds) |
2024-12-04 10:30:58 +0100 | euleritian | (~euleritia@dynamic-176-006-135-047.176.6.pool.telefonica.de) |
2024-12-04 10:39:01 +0100 | euleritian | (~euleritia@dynamic-176-006-135-047.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-12-04 10:39:20 +0100 | euleritian | (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) |
2024-12-04 10:47:36 +0100 | ByronJohnson | (~bairyn@50.250.232.19) ByronJohnson |
2024-12-04 11:02:06 +0100 | lortabac | (~lortabac@37.166.141.63) lortabac |
2024-12-04 11:08:51 +0100 | comerijn | (~merijn@77.242.116.146) merijn |
2024-12-04 11:11:20 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 252 seconds) |
2024-12-04 11:12:47 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2024-12-04 11:13:13 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2024-12-04 11:19:56 +0100 | CiaoSen | (~Jura@2a05:5800:206:4900:ca4b:d6ff:fec1:99da) (Ping timeout: 264 seconds) |
2024-12-04 11:27:28 +0100 | <hellwolf> | huh? |
2024-12-04 11:27:35 +0100 | <hellwolf> | wrong channel, ser |
2024-12-04 11:48:08 +0100 | lortabac | (~lortabac@37.166.141.63) (Read error: Connection reset by peer) |
2024-12-04 11:56:17 +0100 | cptaffe` | (~cptaffe@user/cptaffe) cptaffe |
2024-12-04 11:56:45 +0100 | cptaffe | (~cptaffe@user/cptaffe) (Ping timeout: 260 seconds) |
2024-12-04 11:58:00 +0100 | dunj3 | (~dunj3@2a01:239:328:1600::1) (Quit: ZNC 1.9.1 - https://znc.in) |
2024-12-04 11:58:32 +0100 | cptaffe` | cptaffe |
2024-12-04 12:00:38 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) L29Ah |
2024-12-04 12:15:26 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2024-12-04 12:16:55 +0100 | comerijn | (~merijn@77.242.116.146) (Ping timeout: 264 seconds) |
2024-12-04 12:19:35 +0100 | __monty__ | (~toonn@user/toonn) toonn |
2024-12-04 12:20:34 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac |
2024-12-04 12:24:08 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (*.net *.split) |
2024-12-04 12:24:08 +0100 | mantraofpie | (~mantraofp@user/mantraofpie) (*.net *.split) |
2024-12-04 12:24:08 +0100 | califax | (~califax@user/califx) (*.net *.split) |
2024-12-04 12:24:08 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (*.net *.split) |
2024-12-04 12:24:08 +0100 | gmg | (~user@user/gehmehgeh) (*.net *.split) |
2024-12-04 12:24:08 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) (*.net *.split) |
2024-12-04 12:24:08 +0100 | chiselfuse | (~chiselfus@user/chiselfuse) (*.net *.split) |
2024-12-04 12:25:20 +0100 | alp | (~alp@2001:861:8ca0:4940:81a9:6af:7f50:e369) (Ping timeout: 260 seconds) |
2024-12-04 12:30:09 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2024-12-04 12:30:54 +0100 | CiaoSen | (~Jura@2a05:5800:206:4900:ca4b:d6ff:fec1:99da) CiaoSen |
2024-12-04 12:34:34 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 245 seconds) |
2024-12-04 12:41:31 +0100 | <hellwolf> | I have a dumb question, for some recursive show instances, how can I avoid too many parenthesis? I don't seem to be able to square it, no matter how I try. I always end up "a :* (b :* (c :* Nil))" |
2024-12-04 12:41:51 +0100 | <hellwolf> | (maybe it's the limitation of the show function signature) |
2024-12-04 12:47:58 +0100 | <tomsmeding> | hellwolf: showsPrec can do this |
2024-12-04 12:48:16 +0100 | <tomsmeding> | but iirc the default-generated Show instance only takes precedence into account, not associativity |
2024-12-04 12:48:17 +0100 | <hellwolf> | I was looking at it. but not sure how yet. |
2024-12-04 12:48:37 +0100 | <tomsmeding> | showsPrec takes a precedence argument so that you can do parentheses correctly in the first place |
2024-12-04 12:48:58 +0100 | <tomsmeding> | correctly handling associativity means carefully choosing what precedence you pass to subterms, usually |
2024-12-04 12:49:16 +0100 | <hellwolf> | okay, I will take a look... I have skill issues atm. |
2024-12-04 12:49:33 +0100 | <tomsmeding> | doing it this way with showsPrec essentially means that you lump together all operators on a certain precedence level |
2024-12-04 12:50:35 +0100 | <tomsmeding> | so e.g. if you have :+ and :- both on the same precedence level and both left-associative, then ((a :+ b) :- c) :+ d will (with an associativity-aware showsPrec) print as "a :+ b :- c :+ d" |
2024-12-04 12:50:40 +0100 | <tomsmeding> | this may not be what you want |
2024-12-04 12:50:55 +0100 | <tomsmeding> | but if this is what you want, then showsPrec is enough to implement this |
2024-12-04 12:51:07 +0100 | <tomsmeding> | note that this behaviour will even happen if :+ and :- are of unrelated types |
2024-12-04 12:53:03 +0100 | <tomsmeding> | hellwolf: the general idea with showsPrec is that at the start of a showsPrec implementation, if the `d` you receive is strictly larger than the precedence level of the operator you're about to print, then you add parentheses around your result |
2024-12-04 12:53:28 +0100 | <tomsmeding> | so if you have a non-associative level-6 binary operator, then it would call showsPrec on its children with d=7 |
2024-12-04 12:53:42 +0100 | <tomsmeding> | so that if those were more copies of your operator, they'd be adding parentheses around themselves |
2024-12-04 12:54:36 +0100 | <tomsmeding> | now if you have a right-associative level-6 binary operator, then if the right-hand child is another copy of your operator, then you don't want that child to get parentheses. (i.e. print `a ^ (b ^ c)` as `a ^ b ^ c`.) |
2024-12-04 12:54:49 +0100 | <tomsmeding> | so then call showsPrec on the left child with d=7 and on the right child with d=6 |
2024-12-04 12:55:12 +0100 | <tomsmeding> | this works, but as I said, this will print _anything_ on the right-hand side with d=6, including operators from unrelated types |
2024-12-04 12:55:18 +0100 | <tomsmeding> | this is generally fine, but it's something to be aware of |
2024-12-04 12:55:58 +0100 | <tomsmeding> | general note: if you want to communicate "you're innermost, always add parens if you're not a single word", pass d=11 |
2024-12-04 12:56:18 +0100 | <tomsmeding> | (all operators have precedence level <= 10) |
2024-12-04 12:56:28 +0100 | <tomsmeding> | and if you want to communicate "never add parens", pass d=0 |
2024-12-04 12:57:03 +0100 | <hellwolf> | I see... gonna spend sometimes on it, taking a note in TODO. THanks! |
2024-12-04 12:57:04 +0100 | <tomsmeding> | hellwolf: "skill issue" is harsher language for "need to practice more" |
2024-12-04 12:58:09 +0100 | <hellwolf> | I want to show an example. but another question popped up, how do you set default Num type to Int in ghci? |
2024-12-04 12:58:45 +0100 | <hellwolf> | during one session is fine to. But when I use "default (Int)", ghci doesn't like it. |
2024-12-04 13:00:26 +0100 | <tomsmeding> | doesn't it? |
2024-12-04 13:00:29 +0100 | <tomsmeding> | % default (Int) |
2024-12-04 13:00:30 +0100 | <yahb2> | <no output> |
2024-12-04 13:00:41 +0100 | <tomsmeding> | % maxBound |
2024-12-04 13:00:41 +0100 | <yahb2> | 9223372036854775807 |
2024-12-04 13:00:42 +0100 | <tomsmeding> | works for me |
2024-12-04 13:01:21 +0100 | <tomsmeding> | % :q |
2024-12-04 13:01:21 +0100 | <yahb2> | <bye> |
2024-12-04 13:01:29 +0100 | <tomsmeding> | (clearing that default because it may be surprising) |
2024-12-04 13:04:38 +0100 | <hellwolf> | `It does |
2024-12-04 13:04:48 +0100 | <hellwolf> | need the parenthesis |
2024-12-04 13:04:49 +0100 | <hellwolf> | :D |
2024-12-04 13:05:08 +0100 | <hellwolf> | % default Int |
2024-12-04 13:05:08 +0100 | <yahb2> | <interactive>:5:9: error: [GHC-58481] parse error on input ‘Int’ |
2024-12-04 13:09:09 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 276 seconds) |
2024-12-04 13:09:34 +0100 | <tomsmeding> | ah right :) |
2024-12-04 13:16:42 +0100 | alp | (~alp@2001:861:8ca0:4940:7c92:cf4a:cc5b:7dc2) |
2024-12-04 13:18:41 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2024-12-04 13:24:06 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 276 seconds) |
2024-12-04 13:24:30 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac |
2024-12-04 13:28:40 +0100 | alp | (~alp@2001:861:8ca0:4940:7c92:cf4a:cc5b:7dc2) (Remote host closed the connection) |
2024-12-04 13:29:03 +0100 | alp | (~alp@2001:861:8ca0:4940:e895:2263:cae3:811) |
2024-12-04 13:31:45 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) cyanteeth |
2024-12-04 13:33:21 +0100 | battos | (~battos@78.190.101.163) battos |
2024-12-04 13:34:33 +0100 | <battos> | Hey. I have a stack overflow exception and I cant solve it for couple hours. If anyone can help, I would appreciate it. Thanks. https://stackoverflow.com/questions/79251167/haskell-3-way-merge-sort-stack-overflow-exception |
2024-12-04 13:36:03 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2024-12-04 13:36:13 +0100 | <int-e> | battos: check what happens if xs has length 2 in `threeWayMergeSort` |
2024-12-04 13:36:16 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) (Remote host closed the connection) |
2024-12-04 13:37:03 +0100 | <battos> | int-e, 2 `div` 3 would be 0 right |
2024-12-04 13:37:25 +0100 | <battos> | omg if this is the problem i am gonna... |
2024-12-04 13:37:28 +0100 | <int-e> | yep |
2024-12-04 13:37:53 +0100 | <battos> | what should i do? (n `div` 3) + 1? |
2024-12-04 13:38:09 +0100 | <int-e> | (n+1) `div` 3 probably works |
2024-12-04 13:38:39 +0100 | <int-e> | with (n `div` 3) + 1 you have to worry about n=3 |
2024-12-04 13:39:02 +0100 | <int-e> | it's... fine actually, but it's not the split you want. |
2024-12-04 13:39:14 +0100 | <int-e> | :t splitAt |
2024-12-04 13:39:15 +0100 | <lambdabot> | Int -> [a] -> ([a], [a]) |
2024-12-04 13:39:29 +0100 | <battos> | n+1 did not work |
2024-12-04 13:39:43 +0100 | CiaoSen | (~Jura@2a05:5800:206:4900:ca4b:d6ff:fec1:99da) (Ping timeout: 264 seconds) |
2024-12-04 13:39:45 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) cyanteeth |
2024-12-04 13:40:05 +0100 | <int-e> | you have that expression 4 times, did you change them all? |
2024-12-04 13:40:06 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) (Remote host closed the connection) |
2024-12-04 13:40:16 +0100 | <battos> | int-e, yes |
2024-12-04 13:41:26 +0100 | <int-e> | oh |
2024-12-04 13:41:31 +0100 | <battos> | lambdabot, do i need to like understand something. bc i didnt get it :( Im new to haskell and functional programming |
2024-12-04 13:41:33 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2024-12-04 13:41:43 +0100 | <int-e> | merge left middle [] = merge left middle [] and merge left [] right = merge left [] right will not terminate |
2024-12-04 13:41:54 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 248 seconds) |
2024-12-04 13:42:42 +0100 | <int-e> | and there's no case for `merge [] [1] [2]` |
2024-12-04 13:42:55 +0100 | <int-e> | so... a bit more work to do |
2024-12-04 13:43:10 +0100 | <battos> | i guess so |
2024-12-04 13:43:58 +0100 | <int-e> | it's probably best to have a dedicate 2-way merge function |
2024-12-04 13:44:11 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2024-12-04 13:44:17 +0100 | <int-e> | that you can fall back to when one of the lists is depleted |
2024-12-04 13:46:25 +0100 | <battos> | that makes sense |
2024-12-04 13:49:43 +0100 | <int-e> | battos: lambdabot is a bot. `splitAt` is a function that combines take and drop in one which would help avoiding some duplicate effort your code. |
2024-12-04 13:49:48 +0100 | <int-e> | *in your code |
2024-12-04 13:50:28 +0100 | <battos> | oh ok |
2024-12-04 13:52:16 +0100 | <battos> | int-e, https://paste.tomsmeding.com/blUsmtTG i wrote a mergeTwo function |
2024-12-04 13:52:46 +0100 | <battos> | still, [2,1] -> exception stack overflow |
2024-12-04 13:55:23 +0100 | <int-e> | n+1 `div` 3 is not (n+1) `div` 3 |
2024-12-04 13:56:12 +0100 | <int-e> | But with the changes, merge [1] [2] [] now works. |
2024-12-04 13:57:03 +0100 | <battos> | is n+1 div 3 -> n + (1 div 3) |
2024-12-04 13:57:08 +0100 | <int-e> | n+1 `div` 3 = n + (1 `div` 3) = n + 0 = n |
2024-12-04 13:57:33 +0100 | <int-e> | `div` is multiplicative |
2024-12-04 13:58:25 +0100 | <battos> | ok, changed n+1 -> (n+1) and now threeWayMergeSort [2,1] works |
2024-12-04 13:59:06 +0100 | <battos> | now i need to benchmark this function for random arrays of size 10k, 100k, 1000k for my homework :D |
2024-12-04 13:59:11 +0100 | <battos> | thanks for helping |
2024-12-04 14:00:15 +0100 | <battos> | if you want to you can add the solution to stackoverflow so i can select it as solution int-e |
2024-12-04 14:00:26 +0100 | <int-e> | I don't do SO |
2024-12-04 14:01:09 +0100 | <battos> | Okay |
2024-12-04 14:09:31 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) cyanteeth |
2024-12-04 14:10:52 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) (Remote host closed the connection) |
2024-12-04 14:14:24 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.4.2) |
2024-12-04 14:14:51 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac |
2024-12-04 14:31:03 +0100 | notzmv | (~umar@user/notzmv) notzmv |
2024-12-04 14:37:07 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) cyanteeth |
2024-12-04 14:37:52 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) (Remote host closed the connection) |
2024-12-04 14:42:36 +0100 | califax | (~califax@user/califx) califx |
2024-12-04 14:44:21 +0100 | stiell_ | (~stiell@gateway/tor-sasl/stiell) stiell |
2024-12-04 14:44:31 +0100 | gmg | (~user@user/gehmehgeh) gehmehgeh |
2024-12-04 14:46:37 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) cyanteeth |
2024-12-04 14:47:07 +0100 | chiselfuse | (~chiselfus@user/chiselfuse) chiselfuse |
2024-12-04 14:52:02 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) ChaiTRex |
2024-12-04 14:53:38 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) (Remote host closed the connection) |
2024-12-04 14:55:32 +0100 | caubert | (~caubert@user/caubert) (Quit: WeeChat 4.4.2) |
2024-12-04 15:01:00 +0100 | homo | (~homo@82-128-196-26.bb.dnainternet.fi) |
2024-12-04 15:01:31 +0100 | caubert | (~caubert@user/caubert) caubert |
2024-12-04 15:01:57 +0100 | homo | (~homo@82-128-196-26.bb.dnainternet.fi) (Changing host) |
2024-12-04 15:01:57 +0100 | homo | (~homo@user/homo) homo |
2024-12-04 15:04:31 +0100 | Square | (~Square@user/square) Square |
2024-12-04 15:05:10 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2024-12-04 15:06:14 +0100 | <battos> | when I :set +s, it says something like (x secs, y bytes). This is the time and memory usage of the command, right? |
2024-12-04 15:07:45 +0100 | Square2 | (~Square4@user/square) (Ping timeout: 248 seconds) |
2024-12-04 15:08:42 +0100 | hiecaq | (~hiecaq@user/hiecaq) hiecaq |
2024-12-04 15:10:33 +0100 | hackyhacker | (~hackyhack@ip-213-124-181-180.ip.prioritytelecom.net) hackyhacker |
2024-12-04 15:11:42 +0100 | <hackyhacker> | Hello I found in the HLint docs that they support to ignore eta reduce suggestions. Does anyone know how to set this option globally in helix or nvim with lspconfig? |
2024-12-04 15:16:38 +0100 | briandaed | (~root@185.234.210.211.r.toneticgroup.pl) |
2024-12-04 15:16:56 +0100 | briandaed | (~root@185.234.210.211.r.toneticgroup.pl) (Changing host) |
2024-12-04 15:16:56 +0100 | briandaed | (~root@user/briandaed) briandaed |
2024-12-04 15:17:00 +0100 | <merijn> | hackyhacker: Should be a global hlint config file, I think |
2024-12-04 15:18:32 +0100 | <hackyhacker> | You can drop an hlint.config in the root of your project but I don't think there is a global one idk. |
2024-12-04 15:18:39 +0100 | <merijn> | hackyhacker: Also, just an fyi, that hlint is very opinionated and not necessarily with widely shared opinions ;) |
2024-12-04 15:19:04 +0100 | <hackyhacker> | Yeah I find it very unreadable to write everything pointfree like hlint suggests |
2024-12-04 15:20:03 +0100 | <merijn> | agree |
2024-12-04 15:20:26 +0100 | Typedfern | (~Typedfern@56.red-83-37-30.dynamicip.rima-tde.net) (Ping timeout: 265 seconds) |
2024-12-04 15:21:56 +0100 | <hackyhacker> | Does everyone just use VSCode? The other editors are so hard to set up because I can barely find anyone talking about it online. For other languages I can often find config examples from github issues and stuff. |
2024-12-04 15:22:51 +0100 | <hackyhacker> | Or do you guys just use bare bones editors without lsp stuff? |
2024-12-04 15:24:14 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
2024-12-04 15:26:19 +0100 | <kqr> | I'm looking for something like concatMap except the mapping function in my case is a side effectful a -> m [b]. What is it I'm looking for? |
2024-12-04 15:26:22 +0100 | <lortabac> | merijn: "hlint is very opinionated and not necessarily with widely shared opinions" -> this is a very diplomatic statement :) |
2024-12-04 15:26:52 +0100 | Typedfern | (~Typedfern@192.red-83-37-43.dynamicip.rima-tde.net) |
2024-12-04 15:27:30 +0100 | battos | (~battos@78.190.101.163) (Quit: Leaving) |
2024-12-04 15:28:06 +0100 | <kqr> | I guess I could fmap concat over the result of traverse though. |
2024-12-04 15:28:39 +0100 | <haskellbridge> | <Morj> Doesn't concatMapM sound exatcly like what you want? :D |
2024-12-04 15:29:38 +0100 | <lortabac> | am I the only one who would like to have a point-free fmap? We have <$> and <&> but no <.> |
2024-12-04 15:30:08 +0100 | <Leary> | :t \f -> getAp . foldMap (Ap . f) |
2024-12-04 15:30:09 +0100 | <lambdabot> | forall k (t :: * -> *) (f :: k -> *) (a1 :: k) a2. (Foldable t, Monoid (Ap f a1)) => (a2 -> f a1) -> t a2 -> f a1 |
2024-12-04 15:30:13 +0100 | <lortabac> | this is annoying when changing a definition from pure to monadic. You are obliged to eta-expand |
2024-12-04 15:30:51 +0100 | <kqr> | Morj: Yeah, but it's not in base! |
2024-12-04 15:30:58 +0100 | <Leary> | kqr: ^ This, though the signature should be simpler than that. |
2024-12-04 15:31:36 +0100 | <haskellbridge> | <Morj> Ah it's in ghc api, lol. My eyes glanced off of that thinking that ghc = base |
2024-12-04 15:31:48 +0100 | <kqr> | Oh. I'm just starting to wrap my head around Foldable and Monoid instances like Sum etc. so this is good practice. |
2024-12-04 15:32:59 +0100 | <Leary> | :t (\f -> getAp . foldMap (Ap . f)) :: forall f g a b. (Foldable f, Applicative g, Monoid b) => (a -> g b) -> f a -> g b |
2024-12-04 15:33:00 +0100 | <lambdabot> | (Foldable f, Applicative g, Monoid b) => (a -> g b) -> f a -> g b |
2024-12-04 15:37:51 +0100 | ByronJohnson | (~bairyn@50.250.232.19) (Remote host closed the connection) |
2024-12-04 15:39:21 +0100 | <merijn> | lortabac: I mean, the hlint default config is basically "What Neil Mitchell likes" :p |
2024-12-04 15:41:20 +0100 | euleritian | (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
2024-12-04 15:43:05 +0100 | hseg | (~gesh@46.120.21.36) (Quit: WeeChat 4.4.3) |
2024-12-04 15:44:24 +0100 | euleritian | (~euleritia@dynamic-176-006-146-121.176.6.pool.telefonica.de) |
2024-12-04 15:45:36 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) cyanteeth |
2024-12-04 15:47:33 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) (Remote host closed the connection) |
2024-12-04 15:53:23 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) cyanteeth |
2024-12-04 15:57:24 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) (Remote host closed the connection) |
2024-12-04 16:02:23 +0100 | Square | (~Square@user/square) (Ping timeout: 255 seconds) |
2024-12-04 16:09:06 +0100 | alexherbo2 | (~alexherbo@2a02-8440-3118-f7e7-64d7-8b7a-d066-aa25.rev.sfr.net) alexherbo2 |
2024-12-04 16:09:36 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2024-12-04 16:09:59 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) ChaiTRex |
2024-12-04 16:17:09 +0100 | <hellwolf> | do notation and where clause doesn't mix well, is it correct? Also, whomever also using using emacs, do you also have the issue that when using let in do notation, the emacs' indentation with "tab" starts to go wrong. |
2024-12-04 16:19:57 +0100 | <int-e> | can you press tab multiple times to cycle between several guesses? |
2024-12-04 16:21:29 +0100 | <hellwolf> | not in this case |
2024-12-04 16:21:33 +0100 | weary-traveler | (~user@user/user363627) user363627 |
2024-12-04 16:21:46 +0100 | <hellwolf> | perhaps I need to upgrade my emacs setup, but I don't find my much outdated. |
2024-12-04 16:21:50 +0100 | <hellwolf> | *mine |
2024-12-04 16:30:41 +0100 | alp | (~alp@2001:861:8ca0:4940:e895:2263:cae3:811) (Ping timeout: 252 seconds) |
2024-12-04 16:30:49 +0100 | rvalue | (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
2024-12-04 16:31:21 +0100 | rvalue | (~rvalue@user/rvalue) rvalue |
2024-12-04 16:32:00 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2024-12-04 16:33:56 +0100 | turlando | (~turlando@user/turlando) (Remote host closed the connection) |
2024-12-04 16:35:12 +0100 | turlando | (~turlando@user/turlando) turlando |
2024-12-04 16:37:12 +0100 | alp | (~alp@2001:861:8ca0:4940:7ce9:459b:14a1:a2de) |
2024-12-04 16:43:55 +0100 | chele | (~chele@user/chele) (Remote host closed the connection) |
2024-12-04 16:44:26 +0100 | poscat0x04 | (~poscat@user/poscat) (Quit: Bye) |
2024-12-04 16:56:22 +0100 | hiecaq | (~hiecaq@user/hiecaq) (Quit: ERC 5.6.0.30.1 (IRC client for GNU Emacs 30.0.92)) |
2024-12-04 16:58:51 +0100 | euleritian | (~euleritia@dynamic-176-006-146-121.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-12-04 16:59:08 +0100 | euleritian | (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) |
2024-12-04 17:02:30 +0100 | ByronJohnson | (~bairyn@50.250.232.19) ByronJohnson |
2024-12-04 17:04:01 +0100 | Wygulmage | (~Wygulmage@user/Wygulmage) Wygulmage |
2024-12-04 17:07:33 +0100 | <Wygulmage> | Does putting an equality constraint in a GADT constructor increase the size of the GADT's values? For example, in `data Foo a where MkFoo :: Int -> Foo Int` does a `MkFoo Int` include both an `Int` and a `Refl :: a :~: Int` ? |
2024-12-04 17:08:26 +0100 | <Wygulmage> | (Rather, `MkFoo n` include both `n` and `Refl` ) |
2024-12-04 17:09:46 +0100 | <jle`> | Wygulmage: do you mean the runtime representation? |
2024-12-04 17:09:46 +0100 | <Wygulmage> | Or is its actual representation equivalent to `data Bar = Bar Int` , with the equality constraint disappearing in compiled code? |
2024-12-04 17:09:56 +0100 | <Wygulmage> | Yeah, the runtime representation. |
2024-12-04 17:10:50 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.4.2) |
2024-12-04 17:10:56 +0100 | <jle`> | hm i know typeclass constraints definitely carry runtime baggage but i don't think equality would |
2024-12-04 17:11:42 +0100 | <geekosaur> | an equality constraint is an alias inside the typechecker |
2024-12-04 17:12:06 +0100 | <geekosaur> | inequality requires a runtime witness of some kind AIUI |
2024-12-04 17:12:41 +0100 | <Wygulmage> | I didn't know you could have inequality constraints. But you mean that it gets compiled to a coercion rather than a witness? |
2024-12-04 17:13:02 +0100 | <geekosaur> | you can't, directly. there are mechanisms available but they're not built in |
2024-12-04 17:13:24 +0100 | <Leary> | Wygulmage: IIRC implicit equality constraints are as free as they should be, but explicit ones are lifted, so end up costing another word. |
2024-12-04 17:13:25 +0100 | <jle`> | hm if you try to encode the gadt as an adt then the equality constraint would carry at least a function pointer of baggage. but as something built into the compiler i don't think it would. just speculating |
2024-12-04 17:14:33 +0100 | <Leary> | You can probably check by inspecting core ... or it might need to be stg. |
2024-12-04 17:14:39 +0100 | <geekosaur> | https://stackoverflow.com/questions/6939043/is-it-possible-to-place-inequality-constraints-on-hask… |
2024-12-04 17:14:51 +0100 | <Wygulmage> | Leary: So `Foo a where MkFoo :: Int -> Foo a` has not extra overhead, but `data Bar a where MkBar :: (a ~ Int)=> Int -> Bar a` has extra overhead? |
2024-12-04 17:15:08 +0100 | <geekosaur> | basically you can do it for free with a closed type family |
2024-12-04 17:16:35 +0100 | <Leary> | Wygulmage: Assuming you meant `MkFoo :: Int -> Foo Int`---yes. |
2024-12-04 17:16:35 +0100 | <Wygulmage> | geekosaur: That's clever. I guess it's like using type-level comparison on Natural. |
2024-12-04 17:17:11 +0100 | alexherbo2 | (~alexherbo@2a02-8440-3118-f7e7-64d7-8b7a-d066-aa25.rev.sfr.net) (Remote host closed the connection) |
2024-12-04 17:17:16 +0100 | <Wygulmage> | Leary: Oops--yes, I did. Thanks. |
2024-12-04 17:17:31 +0100 | alexherbo2 | (~alexherbo@2a02-8440-3118-f7e7-64d7-8b7a-d066-aa25.rev.sfr.net) alexherbo2 |
2024-12-04 17:17:31 +0100 | MyNetAz | (~MyNetAz@user/MyNetAz) (Remote host closed the connection) |
2024-12-04 17:17:55 +0100 | <Wygulmage> | And I'll try do get better at reading core. |
2024-12-04 17:19:22 +0100 | <Leary> | Wygulmage: N.B. https://discourse.haskell.org/t/unboxed-equality/9929 |
2024-12-04 17:24:32 +0100 | MyNetAz | (~MyNetAz@user/MyNetAz) MyNetAz |
2024-12-04 17:35:53 +0100 | alp_ | (~alp@2001:861:8ca0:4940:9c1:764:1276:4604) |
2024-12-04 17:37:23 +0100 | <Wygulmage> | Leary: Good to know that you can roll your own just in case, although for my purposes GADT pattern mating is easier. |
2024-12-04 17:37:28 +0100 | <Wygulmage> | *matching |
2024-12-04 17:38:36 +0100 | alp | (~alp@2001:861:8ca0:4940:7ce9:459b:14a1:a2de) (Ping timeout: 272 seconds) |
2024-12-04 17:42:54 +0100 | <hellwolf> | I have these utilities for workign with NP (SimpleNP, not the sop package one) and TupleN (up to 64-ary) for my project: https://paste.tomsmeding.com/5dU8Su98 . |
2024-12-04 17:42:54 +0100 | <hellwolf> | Should I make an effort some day to package it independently? Asking here to see if it is something people would ever need. Packaging is a small lift from me, but I am happy to do if there is people need it. |
2024-12-04 17:43:28 +0100 | <hellwolf> | (and, with a bit more effort, I can make a version works for sop's NP, too) |
2024-12-04 17:49:09 +0100 | ash3en | (~Thunderbi@ip1f10cbd6.dynamic.kabel-deutschland.de) ash3en |
2024-12-04 17:53:01 +0100 | ash3en | (~Thunderbi@ip1f10cbd6.dynamic.kabel-deutschland.de) (Client Quit) |
2024-12-04 17:59:28 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 265 seconds) |
2024-12-04 18:02:28 +0100 | kuribas` | (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1)) |
2024-12-04 18:05:33 +0100 | alexherbo2 | (~alexherbo@2a02-8440-3118-f7e7-64d7-8b7a-d066-aa25.rev.sfr.net) (Remote host closed the connection) |
2024-12-04 18:05:39 +0100 | acidjnk_new3 | (~acidjnk@p200300d6e7283f433921c55fec8b6dfb.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2024-12-04 18:05:50 +0100 | <kaol> | I have a new job starting and I got do decide so it's a Haskell job. Fun. |
2024-12-04 18:05:52 +0100 | alexherbo2 | (~alexherbo@2a02-8440-3118-f7e7-64d7-8b7a-d066-aa25.rev.sfr.net) alexherbo2 |
2024-12-04 18:06:15 +0100 | <kaol> | *to |
2024-12-04 18:06:35 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 255 seconds) |
2024-12-04 18:07:56 +0100 | ubert | (~Thunderbi@2a02:8109:ab8a:5a00:ac82:32e9:69de:2e6f) (Quit: ubert) |
2024-12-04 18:12:00 +0100 | Everything | (~Everythin@94.153.24.195) Everything |
2024-12-04 18:12:05 +0100 | <haskellbridge> | <Morj> Nice, congrats |
2024-12-04 18:12:16 +0100 | <haskellbridge> | <Morj> What's the area? |
2024-12-04 18:12:22 +0100 | <hellwolf> | congrats, what domain? |
2024-12-04 18:13:42 +0100 | Leary | (~Leary@user/Leary/x-0910699) (Remote host closed the connection) |
2024-12-04 18:16:15 +0100 | <kaol> | Alarm transfer systems. In laymans terms, an alarm happens on a site and it's everything needed to get it to the control room in a timely and reliable manner. |
2024-12-04 18:17:25 +0100 | trnry | (~nate@139.64.168.160) trnry |
2024-12-04 18:18:28 +0100 | <hellwolf> | Sounds like an area where model checking can make your alarm the safest: https://benjaminselfridge.github.io/posts/2022-05-10-model-checking-1.html#what-is-model-checking :D |
2024-12-04 18:20:25 +0100 | trnry | (~nate@139.64.168.160) (Client Quit) |
2024-12-04 18:25:41 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla |
2024-12-04 18:28:16 +0100 | vpan | (~vpan@212.117.1.172) (Quit: Leaving.) |
2024-12-04 18:30:18 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-12-04 18:33:44 +0100 | alexherbo2 | (~alexherbo@2a02-8440-3118-f7e7-64d7-8b7a-d066-aa25.rev.sfr.net) (Remote host closed the connection) |
2024-12-04 18:34:03 +0100 | alexherbo2 | (~alexherbo@2a02-8440-3118-f7e7-64d7-8b7a-d066-aa25.rev.sfr.net) alexherbo2 |
2024-12-04 18:47:31 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-12-04 18:48:56 +0100 | Everything | (~Everythin@94.153.24.195) (Quit: leaving) |
2024-12-04 18:50:48 +0100 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) tzh |
2024-12-04 18:57:28 +0100 | pavonia | (~user@user/siracusa) siracusa |
2024-12-04 19:07:30 +0100 | ByronJohnson | (~bairyn@50.250.232.19) (Remote host closed the connection) |
2024-12-04 19:08:40 +0100 | <hackyhacker> | \q |
2024-12-04 19:08:49 +0100 | <hackyhacker> | oops sorry |
2024-12-04 19:08:53 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 248 seconds) |
2024-12-04 19:09:19 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
2024-12-04 19:09:27 +0100 | acidjnk_new3 | (~acidjnk@p200300d6e7283f433921c55fec8b6dfb.dip0.t-ipconnect.de) acidjnk |
2024-12-04 19:09:54 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-12-04 19:10:27 +0100 | hackyhacker | (~hackyhack@ip-213-124-181-180.ip.prioritytelecom.net) (WeeChat 4.4.4) |
2024-12-04 19:11:48 +0100 | alp_ | (~alp@2001:861:8ca0:4940:9c1:764:1276:4604) (Remote host closed the connection) |
2024-12-04 19:12:36 +0100 | alp | (~alp@2001:861:8ca0:4940:aa17:2267:ede3:dd49) |
2024-12-04 19:14:16 +0100 | alp | (~alp@2001:861:8ca0:4940:aa17:2267:ede3:dd49) (Remote host closed the connection) |
2024-12-04 19:14:33 +0100 | alp | (~alp@2001:861:8ca0:4940:ce1e:7443:2bff:952b) |
2024-12-04 19:18:48 +0100 | ByronJohnson | (~bairyn@50.250.232.19) ByronJohnson |
2024-12-04 19:21:21 +0100 | alp | (~alp@2001:861:8ca0:4940:ce1e:7443:2bff:952b) (Remote host closed the connection) |
2024-12-04 19:21:39 +0100 | alp | (~alp@2001:861:8ca0:4940:8eac:f601:9281:f0e1) |
2024-12-04 19:22:33 +0100 | OftenFaded | (~OftenFade@user/tisktisk) OftenFaded |
2024-12-04 19:23:03 +0100 | alp | (~alp@2001:861:8ca0:4940:8eac:f601:9281:f0e1) (Remote host closed the connection) |
2024-12-04 19:23:20 +0100 | alp | (~alp@2001:861:8ca0:4940:2495:aa5d:f835:c4d7) |
2024-12-04 19:24:43 +0100 | alp | (~alp@2001:861:8ca0:4940:2495:aa5d:f835:c4d7) (Remote host closed the connection) |
2024-12-04 19:25:00 +0100 | alp | (~alp@2001:861:8ca0:4940:bd22:8dd:6c10:c5e0) |
2024-12-04 19:26:25 +0100 | alp | (~alp@2001:861:8ca0:4940:bd22:8dd:6c10:c5e0) (Remote host closed the connection) |
2024-12-04 19:26:42 +0100 | alp | (~alp@2001:861:8ca0:4940:1ca2:997d:5ece:75da) |
2024-12-04 19:28:06 +0100 | alp | (~alp@2001:861:8ca0:4940:1ca2:997d:5ece:75da) (Remote host closed the connection) |
2024-12-04 19:28:23 +0100 | alp | (~alp@2001:861:8ca0:4940:176d:44a4:3e5:e4a9) |
2024-12-04 19:29:40 +0100 | alexherbo2 | (~alexherbo@2a02-8440-3118-f7e7-64d7-8b7a-d066-aa25.rev.sfr.net) (Remote host closed the connection) |
2024-12-04 19:29:47 +0100 | alp | (~alp@2001:861:8ca0:4940:176d:44a4:3e5:e4a9) (Remote host closed the connection) |
2024-12-04 19:30:05 +0100 | alp | (~alp@2001:861:8ca0:4940:95ee:27bd:823f:53b4) |
2024-12-04 19:31:29 +0100 | alp | (~alp@2001:861:8ca0:4940:95ee:27bd:823f:53b4) (Remote host closed the connection) |
2024-12-04 19:31:46 +0100 | alp | (~alp@2001:861:8ca0:4940:5b10:bb7b:d799:e1a) |
2024-12-04 19:32:21 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-12-04 19:33:10 +0100 | alp | (~alp@2001:861:8ca0:4940:5b10:bb7b:d799:e1a) (Remote host closed the connection) |
2024-12-04 19:33:27 +0100 | alp | (~alp@2001:861:8ca0:4940:bffe:bef:d5fd:3228) |
2024-12-04 19:34:12 +0100 | Wygulmage | (~Wygulmage@user/Wygulmage) (Quit: Client closed) |
2024-12-04 19:35:09 +0100 | alp_ | (~alp@2001:861:8ca0:4940:b9a2:1759:6304:ffae) |
2024-12-04 19:36:53 +0100 | alp__ | (~alp@2001:861:8ca0:4940:563c:b90a:93c1:efa) |
2024-12-04 19:38:21 +0100 | alp | (~alp@2001:861:8ca0:4940:bffe:bef:d5fd:3228) (Ping timeout: 246 seconds) |
2024-12-04 19:40:06 +0100 | alp_ | (~alp@2001:861:8ca0:4940:b9a2:1759:6304:ffae) (Ping timeout: 246 seconds) |
2024-12-04 19:41:51 +0100 | alp__ | (~alp@2001:861:8ca0:4940:563c:b90a:93c1:efa) (Ping timeout: 246 seconds) |
2024-12-04 19:49:12 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) wootehfoot |
2024-12-04 19:50:24 +0100 | rvalue- | (~rvalue@user/rvalue) rvalue |
2024-12-04 19:51:18 +0100 | rvalue | (~rvalue@user/rvalue) (Ping timeout: 246 seconds) |
2024-12-04 19:53:39 +0100 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
2024-12-04 19:58:30 +0100 | rvalue- | rvalue |
2024-12-04 20:11:57 +0100 | euleritian | (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
2024-12-04 20:12:49 +0100 | euleritian | (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) |
2024-12-04 20:13:34 +0100 | <tomsmeding> | kaol: it feels kind of odd to me that there's only one person working on such a system |
2024-12-04 20:13:43 +0100 | <tomsmeding> | at least, I assume it's just one person given that you could choose the tech :p |
2024-12-04 20:14:14 +0100 | <dminuoso> | tomsmeding: Oh, because obscure security is so regularly done by teams of experts? :-) |
2024-12-04 20:14:34 +0100 | <tomsmeding> | perhaps "odd" is not quite the right word |
2024-12-04 20:14:50 +0100 | <tomsmeding> | well, I did say "feels odd" |
2024-12-04 20:14:52 +0100 | <tomsmeding> | :> |
2024-12-04 20:16:02 +0100 | euleritian | (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
2024-12-04 20:16:37 +0100 | euleritian | (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) |
2024-12-04 20:18:13 +0100 | <monochrom> | 1 is an odd number. QED. >:) |
2024-12-04 20:19:24 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Quit: Lost terminal) |
2024-12-04 20:20:21 +0100 | <monochrom> | More pun: It's alarming that they assign just one person for the whole thing so the bus factor is not good at all. >:) |
2024-12-04 20:23:02 +0100 | dolio | (~dolio@130.44.140.168) (Quit: ZNC 1.9.1 - https://znc.in) |
2024-12-04 20:23:34 +0100 | ash3en | (~Thunderbi@ip1f10cbd6.dynamic.kabel-deutschland.de) ash3en |
2024-12-04 20:24:33 +0100 | dolio | (~dolio@130.44.140.168) dolio |
2024-12-04 20:26:26 +0100 | <kaol> | tomsmeding: I'm just the first person there, I have some hires in mind to recommend (starting from the Haskell dev team my last work laid off). |
2024-12-04 20:26:47 +0100 | <tomsmeding> | kaol: good stuff! |
2024-12-04 20:26:49 +0100 | <tomsmeding> | Have fun :) |
2024-12-04 20:28:01 +0100 | <kaol> | It's all new development and it's likely going to take all year until we have anything approaching production ready and they're okay with that. |
2024-12-04 20:29:46 +0100 | euleritian | (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
2024-12-04 20:30:05 +0100 | euleritian | (~euleritia@dynamic-176-006-132-219.176.6.pool.telefonica.de) |
2024-12-04 20:30:23 +0100 | dolio | (~dolio@130.44.140.168) (Quit: ZNC 1.9.1 - https://znc.in) |
2024-12-04 20:31:23 +0100 | dolio | (~dolio@130.44.140.168) dolio |
2024-12-04 20:34:57 +0100 | Pixi__ | (~Pixi@user/pixi) (Quit: Leaving) |
2024-12-04 20:35:12 +0100 | sprotte24 | (~sprotte24@134.245.44.87) |
2024-12-04 20:35:17 +0100 | Pixi | (~Pixi@user/pixi) Pixi |
2024-12-04 20:38:31 +0100 | econo_ | (uid147250@id-147250.tinside.irccloud.com) |
2024-12-04 20:38:36 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod |
2024-12-04 20:43:29 +0100 | eL_Bart0 | (eL_Bart0@dietunichtguten.org) |
2024-12-04 20:58:02 +0100 | voom | (~voonij@163.123.195.138) |
2024-12-04 21:00:05 +0100 | caconym | (~caconym@user/caconym) (Quit: bye) |
2024-12-04 21:00:42 +0100 | caconym | (~caconym@user/caconym) caconym |
2024-12-04 21:00:52 +0100 | briandaed | (~root@user/briandaed) (Remote host closed the connection) |
2024-12-04 21:05:30 +0100 | ash3en | (~Thunderbi@ip1f10cbd6.dynamic.kabel-deutschland.de) (Quit: ash3en) |
2024-12-04 21:10:38 +0100 | ash3en | (~Thunderbi@ip1f10cbd6.dynamic.kabel-deutschland.de) ash3en |
2024-12-04 21:11:01 +0100 | <lxsameer> | hey folks, is there any better way to do this: https://dpaste.com/8PZL9Q6Q3 I'm using the asyc lib |
2024-12-04 21:12:05 +0100 | ash3en | (~Thunderbi@ip1f10cbd6.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-12-04 21:16:39 +0100 | <kaol> | Better how? wait >=> const (pure ()) would avoid the lambda, do and binding to _ if that's what makes it worse for you. |
2024-12-04 21:17:04 +0100 | <kaol> | Oops, "wait >=> const pass" that is. |
2024-12-04 21:23:09 +0100 | <lxsameer> | kaol: cheers |
2024-12-04 21:24:15 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 21:24:24 +0100 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2024-12-04 21:25:35 +0100 | <mauke> | :t void . ?wait |
2024-12-04 21:25:36 +0100 | <lambdabot> | (Functor f, ?wait::a1 -> f a2) => a1 -> f () |
2024-12-04 21:27:01 +0100 | <lxsameer> | mauke: what's that question mark? |
2024-12-04 21:27:09 +0100 | weary-traveler | (~user@user/user363627) user363627 |
2024-12-04 21:28:57 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-12-04 21:30:16 +0100 | <mauke> | implicit parameters |
2024-12-04 21:30:28 +0100 | <mauke> | used here as a hack for type checking |
2024-12-04 21:30:42 +0100 | <lxsameer> | ah got it, thank you |
2024-12-04 21:31:15 +0100 | <mauke> | https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/implicit_parameters.html |
2024-12-04 21:31:45 +0100 | <mauke> | :t \wait -> void . wait |
2024-12-04 21:31:45 +0100 | <lambdabot> | Functor f => (a1 -> f a2) -> a1 -> f () |
2024-12-04 21:31:57 +0100 | <mauke> | ^ mostly equivalent |
2024-12-04 21:32:39 +0100 | <mauke> | but when you're asking the compiler to just make up some types, the result reads nicer with implicit params |
2024-12-04 21:35:01 +0100 | lxsameer | (~lxsameer@Serene/lxsameer) (Ping timeout: 248 seconds) |
2024-12-04 21:39:01 +0100 | <sprout> | > [0..5] |
2024-12-04 21:39:03 +0100 | <lambdabot> | [0,1,2,3,4,5] |
2024-12-04 21:40:04 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 21:44:42 +0100 | Adeon | Adeonhilla |
2024-12-04 21:46:48 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-04 21:47:25 +0100 | Adeonhilla | Adeon |
2024-12-04 21:56:29 +0100 | sindu | (~sindu@176.75.224.1) |
2024-12-04 21:58:05 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 22:01:01 +0100 | voom | (~voonij@163.123.195.138) (Remote host closed the connection) |
2024-12-04 22:02:56 +0100 | philopsos | (~caecilius@user/philopsos) philopsos |
2024-12-04 22:03:25 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-12-04 22:04:04 +0100 | Guest77 | (~Guest77@64.16.19.162) |
2024-12-04 22:05:38 +0100 | OftenFaded | (~OftenFade@user/tisktisk) (Quit: Client closed) |
2024-12-04 22:06:35 +0100 | <Guest77> | Hey folks, I'm having an ambiguous occurence error in a codebase I inherited and I'm hoping someone can help out quickly |
2024-12-04 22:08:14 +0100 | <Guest77> | The relevant line of code is here: `(Just x) -> minimum [(neck c), ((amount_msat::Channel->Msat) e), x]` |
2024-12-04 22:09:20 +0100 | <Guest77> | `amount_msat` is causing an issue because Channel is imported from a library called Cln.Types, but this library also contains other records with an `amount_msat` field |
2024-12-04 22:10:17 +0100 | OftenFaded | (~OftenFade@user/tisktisk) OftenFaded |
2024-12-04 22:10:30 +0100 | <Guest77> | I would think that ::Channel makes it unambiguous but I'm also not very experienced with Haskell. The library import is unqualified, i.e. `import Cln.Types` if that changes things |
2024-12-04 22:10:53 +0100 | simendsj` | (~simendsjo@84.211.91.108) |
2024-12-04 22:11:34 +0100 | <mauke> | are you saying that Cln.Types exports multiple functions, all called amount_msat? |
2024-12-04 22:11:48 +0100 | <mauke> | actually, what is the error message? |
2024-12-04 22:11:51 +0100 | simendsjo | simendsjo_ |
2024-12-04 22:11:56 +0100 | simendsj` | simendsjo |
2024-12-04 22:12:03 +0100 | simendsjo | (~simendsjo@84.211.91.108) (Client Quit) |
2024-12-04 22:12:58 +0100 | simendsjo | (~simendsjo@84.211.91.108) |
2024-12-04 22:13:14 +0100 | <Guest77> | mauke: https://paste.tomsmeding.com/LYPd4zmE |
2024-12-04 22:13:51 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 22:14:05 +0100 | <Guest77> | It exports multiple records with an `amount_msat` field. Not sure why `amount_msat::Channel` isn't enough |
2024-12-04 22:17:39 +0100 | <mauke> | I don't think ghc uses type annotations to disambiguate identifiers |
2024-12-04 22:18:21 +0100 | <mauke> | can you restrict the import? as in `import Cln.Types (Channel(..))`? |
2024-12-04 22:18:34 +0100 | <Guest77> | I'll give it a shot! |
2024-12-04 22:18:47 +0100 | ft | (~ft@p508db9c7.dip0.t-ipconnect.de) ft |
2024-12-04 22:19:02 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
2024-12-04 22:19:43 +0100 | <mauke> | otherwise you could probably rewrite as ... case e of Channel{ amount_msat } -> amount_msat |
2024-12-04 22:19:57 +0100 | <mauke> | (assuming appropriate language extensions are enabled) |
2024-12-04 22:20:44 +0100 | <Guest77> | Hmm, there are a couple of places where I'm running into the same problem with this codebase |
2024-12-04 22:21:34 +0100 | <Guest77> | If there's a way I can resolve it without doing a big rewrite that might be more friendly but I'll see if this option works |
2024-12-04 22:21:35 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2024-12-04 22:22:39 +0100 | ash3en | (~Thunderbi@ip1f10cbd6.dynamic.kabel-deutschland.de) ash3en |
2024-12-04 22:23:28 +0100 | <Guest77> | for a bit more context, this is the case statement I'm addressing: https://paste.tomsmeding.com/ikKbq345 |
2024-12-04 22:24:06 +0100 | <Guest77> | and to make sure that I'm tracking properly, I'm going to describe what I think this statement is doing |
2024-12-04 22:24:42 +0100 | simendsjo | (~simendsjo@84.211.91.108) (Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.4)) |
2024-12-04 22:27:08 +0100 | simendsjo_ | simendsjo |
2024-12-04 22:28:13 +0100 | <Guest77> | in the function definition, e is a Channel. Within the case statement, the function `htlc_maximum_msat` is applied to this Channel and the result is going to be a Maybe. If it's `Just x` then it returns `minimum` between `neck c`, `amount_msat` of the channel, or the x value. Otherwise, it returns the `min` (same as minimum?) of those first two |
2024-12-04 22:28:14 +0100 | <Guest77> | values |
2024-12-04 22:29:39 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 22:30:05 +0100 | <Guest77> | So I think that rewriting the case statement is basically a non-starter since it has to accomodate the Maybe of `htlc_maximum_msat` |
2024-12-04 22:30:28 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-12-04 22:31:05 +0100 | <Guest77> | Is this something that could be resolved by changing the configuration I'm using in stack? |
2024-12-04 22:33:55 +0100 | <Guest77> | Also: I just checked the type signatures of the functions. Does it make sense to change the `min (neck c) ((amount_msat) e)` to `minimum [(neck c), ((amount_msat) e)]` or is there a reason to use the different functions |
2024-12-04 22:34:22 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-04 22:36:14 +0100 | <Guest77> | sorry if I'm being spammy, there's a lot of rust to shake off since I read "Learn You a Haskell" '=D |
2024-12-04 22:36:24 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2024-12-04 22:36:27 +0100 | Typedfern | (~Typedfern@192.red-83-37-43.dynamicip.rima-tde.net) (Remote host closed the connection) |
2024-12-04 22:37:38 +0100 | euleritian | (~euleritia@dynamic-176-006-132-219.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-12-04 22:37:55 +0100 | euleritian | (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) |
2024-12-04 22:38:10 +0100 | ash3en | (~Thunderbi@ip1f10cbd6.dynamic.kabel-deutschland.de) (Quit: ash3en) |
2024-12-04 22:40:55 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2024-12-04 22:43:14 +0100 | Typedfern | (~Typedfern@247.red-83-37-42.dynamicip.rima-tde.net) typedfern |
2024-12-04 22:43:17 +0100 | tv | (~tv@user/tv) (Read error: Connection reset by peer) |
2024-12-04 22:45:27 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 22:45:48 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
2024-12-04 22:46:53 +0100 | Typedfern | (~Typedfern@247.red-83-37-42.dynamicip.rima-tde.net) (Remote host closed the connection) |
2024-12-04 22:48:10 +0100 | Typedfern | (~Typedfern@247.red-83-37-42.dynamicip.rima-tde.net) typedfern |
2024-12-04 22:49:22 +0100 | typedfern_ | (~Typedfern@83.37.42.247) typedfern |
2024-12-04 22:50:29 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-12-04 22:52:51 +0100 | euleritian | (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds) |
2024-12-04 22:53:34 +0100 | <Guest77> | hey mauke do you have any input on the above? |
2024-12-04 22:53:36 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2024-12-04 22:55:05 +0100 | <Guest77> | It seems like this is on the right track towards the problem I'm facing: https://pure-hack.com/posts/overloaded-labels-in-haskell/ |
2024-12-04 23:01:13 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 23:04:44 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) Smiles |
2024-12-04 23:09:26 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
2024-12-04 23:12:16 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-12-04 23:14:04 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 23:14:30 +0100 | michalz | (~michalz@185.246.207.222) (Remote host closed the connection) |
2024-12-04 23:16:13 +0100 | <Guest77> | well. my brain hurts now.I appreciate the input, I'll sit with this one a while |
2024-12-04 23:16:17 +0100 | Guest77 | (~Guest77@64.16.19.162) (Quit: Client closed) |
2024-12-04 23:17:06 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-12-04 23:18:44 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
2024-12-04 23:24:50 +0100 | alexherbo2 | (~alexherbo@2a02-8440-3118-f7e7-7572-88f5-5565-7769.rev.sfr.net) alexherbo2 |
2024-12-04 23:27:15 +0100 | sonolin | (~michael@174-26-31-216.phnx.qwest.net) |
2024-12-04 23:29:18 +0100 | j1n37 | (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
2024-12-04 23:29:50 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 23:30:10 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) cyanteeth |
2024-12-04 23:32:30 +0100 | j1n37 | (~j1n37@user/j1n37) j1n37 |
2024-12-04 23:34:33 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-04 23:35:39 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) (Ping timeout: 252 seconds) |
2024-12-04 23:44:55 +0100 | falafel | (~falafel@2603:8000:b4f0:62a0:2d1c:7dad:d29d:19e) falafel |
2024-12-04 23:45:38 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-04 23:47:43 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) cyanteeth |
2024-12-04 23:50:45 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-12-04 23:51:23 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) (Remote host closed the connection) |
2024-12-04 23:54:28 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) cyanteeth |
2024-12-04 23:55:05 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) (Remote host closed the connection) |
2024-12-04 23:55:35 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) cyanteeth |
2024-12-04 23:57:41 +0100 | sonolin | (~michael@174-26-31-216.phnx.qwest.net) (Changing host) |
2024-12-04 23:57:41 +0100 | sonolin | (~michael@user/sonolin) sonolin |
2024-12-04 23:58:37 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) (Remote host closed the connection) |