2025-08-28 00:00:34 +0200 | segfaultfizzbuzz | (~segfaultf@142.254.125.158) (Ping timeout: 258 seconds) |
2025-08-28 00:00:37 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2025-08-28 00:01:00 +0200 | ec | (~ec@gateway/tor-sasl/ec) ec |
2025-08-28 00:15:08 +0200 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 258 seconds) |
2025-08-28 00:15:55 +0200 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2025-08-28 00:16:52 +0200 | arandombit | (~arandombi@user/arandombit) arandombit |
2025-08-28 00:19:17 +0200 | hc | (~hc@mail.hce.li) (Server closed connection) |
2025-08-28 00:19:31 +0200 | hc | (~hc@mail.hce.li) hc |
2025-08-28 00:20:50 +0200 | peutri | (~peutri@bobo.desast.re) (Server closed connection) |
2025-08-28 00:21:00 +0200 | peutri | (~peutri@bobo.desast.re) peutri |
2025-08-28 00:30:36 +0200 | notzmv | (~umar@user/notzmv) (Remote host closed the connection) |
2025-08-28 00:37:54 +0200 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2025-08-28 00:40:34 +0200 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
2025-08-28 00:44:32 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 256 seconds) |
2025-08-28 00:44:32 +0200 | ljdarj1 | ljdarj |
2025-08-28 00:44:58 +0200 | machinedgod | (~machinedg@d75-159-126-101.abhsia.telus.net) machinedgod |
2025-08-28 00:50:57 +0200 | tremon | (~tremon@83.80.159.219) (Quit: getting boxed in) |
2025-08-28 00:58:11 +0200 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
2025-08-28 00:59:36 +0200 | xff0x | (~xff0x@2405:6580:b080:900:c3c2:5734:3789:d6a1) (Ping timeout: 248 seconds) |
2025-08-28 01:00:32 +0200 | xff0x | (~xff0x@2405:6580:b080:900:19de:4997:404:5625) |
2025-08-28 01:01:21 +0200 | jreicher | (~user@user/jreicher) jreicher |
2025-08-28 01:08:02 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 258 seconds) |
2025-08-28 01:10:24 +0200 | sprotte24 | (~sprotte24@p200300d16f05d70019dbd74b079549bc.dip0.t-ipconnect.de) (Quit: Leaving) |
2025-08-28 01:11:56 +0200 | ttybitnik | (~ttybitnik@user/wolper) (Ping timeout: 244 seconds) |
2025-08-28 01:19:37 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
2025-08-28 01:20:02 +0200 | fgarcia | (~lei@user/fgarcia) (Quit: Remote host closed the connection) |
2025-08-28 01:21:43 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 01:21:48 +0200 | Axman9593 | (~Axman6@user/axman6) Axman6 |
2025-08-28 01:23:57 +0200 | fgarcia | (~lei@user/fgarcia) fgarcia |
2025-08-28 01:26:37 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 01:26:49 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 258 seconds) |
2025-08-28 01:30:22 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
2025-08-28 01:30:45 +0200 | Axman6 | (~Axman6@user/axman6) (*.net *.split) |
2025-08-28 01:32:16 +0200 | lol_ | (~lol@2603:3016:1e01:b960:14c0:7a30:3283:d6ed) |
2025-08-28 01:32:40 +0200 | trickard__ | trickard |
2025-08-28 01:34:57 +0200 | fgarcia | (~lei@user/fgarcia) (Read error: Connection reset by peer) |
2025-08-28 01:36:06 +0200 | jcarpenter2 | (~lol@2603:3016:1e01:b960:a521:2571:4042:b249) (Ping timeout: 256 seconds) |
2025-08-28 01:37:31 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 01:41:17 +0200 | fgarcia | (~lei@user/fgarcia) fgarcia |
2025-08-28 01:42:36 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
2025-08-28 01:44:53 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Remote host closed the connection) |
2025-08-28 01:45:16 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
2025-08-28 01:51:05 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 01:56:08 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-08-28 02:06:52 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 02:12:03 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds) |
2025-08-28 02:21:30 +0200 | acidjnk | (~acidjnk@p200300d6e7171900a9f37d216dcd4f2e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2025-08-28 02:22:39 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 02:27:00 +0200 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 252 seconds) |
2025-08-28 02:28:32 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds) |
2025-08-28 02:39:42 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 02:43:17 +0200 | scysta | (~tiara@152.173.218.186) Scysta |
2025-08-28 02:44:38 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds) |
2025-08-28 02:46:21 +0200 | alethkit | (23bd17ddc6@sourcehut/user/alethkit) (Server closed connection) |
2025-08-28 02:46:31 +0200 | alethkit | (23bd17ddc6@sourcehut/user/alethkit) alethkit |
2025-08-28 02:55:27 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 02:57:23 +0200 | lexi-lambda | (sid92601@id-92601.hampstead.irccloud.com) (Server closed connection) |
2025-08-28 02:57:33 +0200 | lexi-lambda | (sid92601@id-92601.hampstead.irccloud.com) lexi-lambda |
2025-08-28 02:58:23 +0200 | arandombit | (~arandombi@user/arandombit) arandombit |
2025-08-28 03:00:20 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
2025-08-28 03:09:44 +0200 | xff0x | (~xff0x@2405:6580:b080:900:19de:4997:404:5625) (Ping timeout: 248 seconds) |
2025-08-28 03:11:16 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 03:16:27 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds) |
2025-08-28 03:18:17 +0200 | Axman9593 | Axman6 |
2025-08-28 03:27:25 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 03:30:57 +0200 | robertm | (robertm@lattice.rojoma.com) (Server closed connection) |
2025-08-28 03:31:16 +0200 | robertm | (robertm@lattice.rojoma.com) robertm |
2025-08-28 03:34:01 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-08-28 03:42:10 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 256 seconds) |
2025-08-28 03:42:43 +0200 | Lycurgus | (~juan@user/Lycurgus) Lycurgus |
2025-08-28 03:45:28 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 03:52:39 +0200 | shawwwn | (sid6132@id-6132.helmsley.irccloud.com) (Server closed connection) |
2025-08-28 03:52:50 +0200 | shawwwn | (sid6132@id-6132.helmsley.irccloud.com) shawwwn |
2025-08-28 03:52:56 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-08-28 03:56:49 +0200 | trickard | (~trickard@cpe-57-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
2025-08-28 03:57:03 +0200 | trickard_ | (~trickard@cpe-57-98-47-163.wireline.com.au) |
2025-08-28 03:58:26 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Remote host closed the connection) |
2025-08-28 03:58:50 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
2025-08-28 04:02:29 +0200 | ProofTechnique_ | (sid79547@id-79547.ilkley.irccloud.com) (Server closed connection) |
2025-08-28 04:02:38 +0200 | ProofTechnique_ | (sid79547@id-79547.ilkley.irccloud.com) |
2025-08-28 04:04:20 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 04:08:17 +0200 | marinelli | (~weechat@gateway/tor-sasl/marinelli) (Remote host closed the connection) |
2025-08-28 04:08:39 +0200 | marinelli | (~weechat@gateway/tor-sasl/marinelli) marinelli |
2025-08-28 04:09:21 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds) |
2025-08-28 04:09:57 +0200 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
2025-08-28 04:14:53 +0200 | lambdabot | (~lambdabot@haskell/bot/lambdabot) (Server closed connection) |
2025-08-28 04:15:01 +0200 | lambdabot | (~lambdabot@silicon.int-e.eu) |
2025-08-28 04:15:01 +0200 | lambdabot | (~lambdabot@silicon.int-e.eu) (Changing host) |
2025-08-28 04:15:01 +0200 | lambdabot | (~lambdabot@haskell/bot/lambdabot) lambdabot |
2025-08-28 04:15:01 +0200 | ChanServ | +v lambdabot |
2025-08-28 04:20:33 +0200 | eso | (a0662dfd5e@2a03:6000:1812:100::1266) (Server closed connection) |
2025-08-28 04:20:41 +0200 | eso | (a0662dfd5e@2a03:6000:1812:100::1266) jeso |
2025-08-28 04:23:04 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 04:25:27 +0200 | machinedgod | (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 258 seconds) |
2025-08-28 04:25:33 +0200 | saolsen | (sid26430@id-26430.lymington.irccloud.com) (Server closed connection) |
2025-08-28 04:25:48 +0200 | saolsen | (sid26430@id-26430.lymington.irccloud.com) saolsen |
2025-08-28 04:27:06 +0200 | integral | (sid296274@user/integral) (Server closed connection) |
2025-08-28 04:27:19 +0200 | integral | (sid296274@user/integral) integral |
2025-08-28 04:27:25 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
2025-08-28 04:31:45 +0200 | astra | (sid289983@id-289983.hampstead.irccloud.com) (Server closed connection) |
2025-08-28 04:32:00 +0200 | astra | (sid289983@id-289983.hampstead.irccloud.com) |
2025-08-28 04:32:27 +0200 | gaze__ | (sid387101@id-387101.helmsley.irccloud.com) (Read error: Software caused connection abort) |
2025-08-28 04:32:38 +0200 | gaze__ | (sid387101@id-387101.helmsley.irccloud.com) gaze__ |
2025-08-28 04:38:27 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 04:39:09 +0200 | fn_lumi | (3d621153a5@2a03:6000:1812:100::df7) (Server closed connection) |
2025-08-28 04:39:18 +0200 | fn_lumi | (3d621153a5@2a03:6000:1812:100::df7) fn_lumi |
2025-08-28 04:41:29 +0200 | Lycurgus | (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org )) |
2025-08-28 04:43:28 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds) |
2025-08-28 04:44:48 +0200 | machinedgod | (~machinedg@d75-159-126-101.abhsia.telus.net) machinedgod |
2025-08-28 04:44:57 +0200 | weary-traveler | (~user@user/user363627) user363627 |
2025-08-28 04:54:15 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 04:59:11 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds) |
2025-08-28 05:05:25 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
2025-08-28 05:06:12 +0200 | mmaruseacph2 | (~mihai@mihai.page) (Read error: Software caused connection abort) |
2025-08-28 05:10:04 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 05:11:31 +0200 | mmaruseacph2 | (~mihai@mihai.page) mmaruseacph2 |
2025-08-28 05:17:02 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 05:23:44 +0200 | divya | (divya@140.238.251.170) (Read error: Software caused connection abort) |
2025-08-28 05:27:14 +0200 | lambdap23717 | (~lambdap@static.167.190.119.168.clients.your-server.de) (Read error: Software caused connection abort) |
2025-08-28 05:27:32 +0200 | lambdap23717 | (~lambdap@static.167.190.119.168.clients.your-server.de) |
2025-08-28 05:27:56 +0200 | noteness | (~noteness@user/noteness) (Read error: Software caused connection abort) |
2025-08-28 05:28:06 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 05:28:28 +0200 | trickard_ | trickard |
2025-08-28 05:31:22 +0200 | noteness | (~noteness@user/noteness) nessessary129 |
2025-08-28 05:32:55 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds) |
2025-08-28 05:33:00 +0200 | Guest64 | (~Guest93@2607:fb91:14df:89a5:7967:c050:d094:51a8) |
2025-08-28 05:33:21 +0200 | aforemny_ | (~aforemny@2001:9e8:6ce1:6300:21a5:3c39:3acb:d09f) aforemny |
2025-08-28 05:33:22 +0200 | aforemny | (~aforemny@2001:9e8:6cc5:2e00:296d:a9d3:b7bc:dd10) (Ping timeout: 260 seconds) |
2025-08-28 05:33:56 +0200 | divya | (divya@140.238.251.170) divya |
2025-08-28 05:34:57 +0200 | dutchie | (~dutchie@user/dutchie) (Server closed connection) |
2025-08-28 05:35:11 +0200 | dutchie | (~dutchie@user/dutchie) dutchie |
2025-08-28 05:37:02 +0200 | whereiseveryone | (206ba86c98@2a03:6000:1812:100::2e4) (Server closed connection) |
2025-08-28 05:37:10 +0200 | whereiseveryone | (206ba86c98@2a03:6000:1812:100::2e4) whereiseveryone |
2025-08-28 05:38:24 +0200 | dumptruckman | (~dumptruck@66-175-211-75.ip.linodeusercontent.com) (Server closed connection) |
2025-08-28 05:40:17 +0200 | Guest64 | (~Guest93@2607:fb91:14df:89a5:7967:c050:d094:51a8) (Quit: Client closed) |
2025-08-28 05:40:42 +0200 | dumptruckman | (~dumptruck@66-175-211-75.ip.linodeusercontent.com) |
2025-08-28 05:41:30 +0200 | Guest89 | (~Guest93@2607:fb91:14df:89a5:7967:c050:d094:51a8) |
2025-08-28 05:42:02 +0200 | Guest89 | (~Guest93@2607:fb91:14df:89a5:7967:c050:d094:51a8) (Client Quit) |
2025-08-28 05:43:32 +0200 | segfaultfizzbuzz | (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) |
2025-08-28 05:43:50 +0200 | zlqrvx | (~zlqrvx@2001:8003:8c8b:e00:374a:bdcb:457c:d1e3) |
2025-08-28 05:43:53 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 05:47:27 +0200 | zlqrvx | (~zlqrvx@2001:8003:8c8b:e00:374a:bdcb:457c:d1e3) (Client Quit) |
2025-08-28 05:47:50 +0200 | zlqrvx | (~zlqrvx@2001:8003:8c8b:e00:374a:bdcb:457c:d1e3) |
2025-08-28 05:48:54 +0200 | Raito_Bezarius | (~Raito@libera/contributor/wireguard.tunneler.raito-bezarius) (Server closed connection) |
2025-08-28 05:49:07 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 05:49:27 +0200 | dutchie | (~dutchie@user/dutchie) (Remote host closed the connection) |
2025-08-28 05:49:30 +0200 | Raito_Bezarius | (~Raito@libera/contributor/wireguard.tunneler.raito-bezarius) Raito_Bezarius |
2025-08-28 05:50:34 +0200 | pavonia | (~user@user/siracusa) siracusa |
2025-08-28 05:50:50 +0200 | praidnan | (~weatflac@106.195.39.246) |
2025-08-28 05:51:27 +0200 | emperori | (~emperori@106.195.39.246) |
2025-08-28 05:51:56 +0200 | dutchie | (~dutchie@user/dutchie) dutchie |
2025-08-28 05:57:54 +0200 | Googulator68 | (~Googulato@2a01-036d-0106-28ad-d14e-68ce-c41e-4464.pool6.digikabel.hu) (Quit: Client closed) |
2025-08-28 05:58:13 +0200 | Googulator68 | (~Googulato@2a01-036d-0106-28ad-d14e-68ce-c41e-4464.pool6.digikabel.hu) |
2025-08-28 05:59:40 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 06:00:44 +0200 | fgarcia | (~lei@user/fgarcia) (Ping timeout: 256 seconds) |
2025-08-28 06:01:26 +0200 | zlqrvx | (~zlqrvx@2001:8003:8c8b:e00:374a:bdcb:457c:d1e3) (Quit: ZNC 1.10.0 - https://znc.in) |
2025-08-28 06:03:12 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 258 seconds) |
2025-08-28 06:04:44 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds) |
2025-08-28 06:05:34 +0200 | fgarcia | (~lei@user/fgarcia) fgarcia |
2025-08-28 06:07:15 +0200 | praidnan_ | (~weatflac@106.195.34.92) |
2025-08-28 06:09:30 +0200 | emperori | (~emperori@106.195.39.246) (Ping timeout: 245 seconds) |
2025-08-28 06:10:29 +0200 | praidnan | (~weatflac@106.195.39.246) (Ping timeout: 258 seconds) |
2025-08-28 06:15:27 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 06:16:48 +0200 | haveo | (~weechat@pacamara.iuwt.fr) (Server closed connection) |
2025-08-28 06:17:12 +0200 | haveo | (~weechat@pacamara.iuwt.fr) haveo |
2025-08-28 06:20:27 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds) |
2025-08-28 06:20:45 +0200 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 245 seconds) |
2025-08-28 06:24:04 +0200 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2025-08-28 06:28:00 +0200 | ackthet | (~ackthet@user/ackthet) (Server closed connection) |
2025-08-28 06:28:19 +0200 | ackthet | (~ackthet@user/ackthet) ackthet |
2025-08-28 06:31:15 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 06:36:08 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-08-28 06:36:25 +0200 | arandombit | (~arandombi@user/arandombit) arandombit |
2025-08-28 06:40:56 +0200 | _d0t | (~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 248 seconds) |
2025-08-28 06:43:26 +0200 | mange | (~mange@user/mange) mange |
2025-08-28 06:43:31 +0200 | machinedgod | (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 256 seconds) |
2025-08-28 06:45:01 +0200 | _d0t | (~{-d0t-}@user/-d0t-/x-7915216) {-d0t-} |
2025-08-28 06:47:02 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 06:51:38 +0200 | trickard | (~trickard@cpe-57-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
2025-08-28 06:51:52 +0200 | trickard_ | (~trickard@cpe-57-98-47-163.wireline.com.au) |
2025-08-28 06:53:52 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 06:54:11 +0200 | segfaultfizzbuzz | (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 258 seconds) |
2025-08-28 07:00:37 +0200 | trickard_ | (~trickard@cpe-57-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
2025-08-28 07:02:50 +0200 | trickard_ | (~trickard@cpe-57-98-47-163.wireline.com.au) |
2025-08-28 07:05:04 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 07:07:16 +0200 | hakutaku | (~textual@chen.yukari.eu.org) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2025-08-28 07:08:08 +0200 | hakutaku | (~textual@chen.yukari.eu.org) |
2025-08-28 07:09:51 +0200 | Yumemi | (~Yumemi@chamoin.net) (Server closed connection) |
2025-08-28 07:09:55 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
2025-08-28 07:10:10 +0200 | Yumemi | (~Yumemi@chamoin.net) Yumemi |
2025-08-28 07:11:21 +0200 | hakutaku | (~textual@chen.yukari.eu.org) (Client Quit) |
2025-08-28 07:11:50 +0200 | hakutaku | (~textual@chen.yukari.eu.org) |
2025-08-28 07:12:20 +0200 | scysta | (~tiara@152.173.218.186) (Quit: leaving) |
2025-08-28 07:12:48 +0200 | michalz | (~michalz@185.246.207.221) |
2025-08-28 07:17:41 +0200 | emperori | (~emperori@2401:4900:4dda:4015:95c:a6c1:f7d0:215) |
2025-08-28 07:18:20 +0200 | trickard_ | trickard |
2025-08-28 07:18:48 +0200 | aniketd | (32aa4844cd@2a03:6000:1812:100::dcb) (Server closed connection) |
2025-08-28 07:18:57 +0200 | aniketd | (32aa4844cd@2a03:6000:1812:100::dcb) aniketd |
2025-08-28 07:20:52 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 07:20:52 +0200 | biberu | (~biberu@user/biberu) biberu |
2025-08-28 07:21:39 +0200 | monochrom | (trebla@216.138.220.146) (Quit: ZNC 1.9.1+deb2build2 - https://znc.in) |
2025-08-28 07:26:00 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
2025-08-28 07:28:09 +0200 | amadaluzia | (~amadaluzi@user/amadaluzia) (Quit: ZNC 1.9.1 - https://znc.in) |
2025-08-28 07:28:59 +0200 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 248 seconds) |
2025-08-28 07:34:52 +0200 | amadaluzia | (~amadaluzi@user/amadaluzia) amadaluzia |
2025-08-28 07:36:39 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 07:37:08 +0200 | takuan | (~takuan@d8D86B9E9.access.telenet.be) |
2025-08-28 07:39:24 +0200 | monochrom | (trebla@216.138.220.146) |
2025-08-28 07:39:24 +0200 | takuan | (~takuan@d8D86B9E9.access.telenet.be) (Read error: Connection reset by peer) |
2025-08-28 07:39:59 +0200 | takuan | (~takuan@d8D86B9E9.access.telenet.be) |
2025-08-28 07:40:07 +0200 | arandombit | (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) |
2025-08-28 07:40:07 +0200 | arandombit | (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) (Changing host) |
2025-08-28 07:40:07 +0200 | arandombit | (~arandombi@user/arandombit) arandombit |
2025-08-28 07:40:37 +0200 | amadaluzia | (~amadaluzi@user/amadaluzia) (Quit: ZNC 1.9.1 - https://znc.in) |
2025-08-28 07:41:02 +0200 | Aleksejs | (~Aleksejs@107.170.21.106) (Server closed connection) |
2025-08-28 07:41:43 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds) |
2025-08-28 07:43:13 +0200 | Aleksejs | (~Aleksejs@107.170.21.106) aleksejs |
2025-08-28 07:46:20 +0200 | praidnan_ | (~weatflac@106.195.34.92) (Quit: Lost terminal) |
2025-08-28 07:48:13 +0200 | ringo_ | (~ringo@157.230.117.128) (Ping timeout: 244 seconds) |
2025-08-28 07:48:56 +0200 | haritzondo | (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in) |
2025-08-28 07:52:25 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 07:57:28 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
2025-08-28 08:00:50 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-08-28 08:02:42 +0200 | ringo_ | (~ringo@157.230.117.128) ringo_ |
2025-08-28 08:06:46 +0200 | JamesMowery17736 | (~JamesMowe@ip68-228-212-232.ph.ph.cox.net) JamesMowery |
2025-08-28 08:08:14 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 08:09:07 +0200 | emperori | (~emperori@2401:4900:4dda:4015:95c:a6c1:f7d0:215) (Ping timeout: 260 seconds) |
2025-08-28 08:11:13 +0200 | JamesMowery17736 | (~JamesMowe@ip68-228-212-232.ph.ph.cox.net) (Client Quit) |
2025-08-28 08:13:12 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 08:16:33 +0200 | tromp | (~textual@2001:1c00:3487:1b00:6941:8da5:79d5:ac1b) |
2025-08-28 08:23:58 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 08:24:26 +0200 | rembo10 | (~rembo10@main.remulis.com) (Server closed connection) |
2025-08-28 08:24:30 +0200 | ringo_ | (~ringo@157.230.117.128) (Ping timeout: 252 seconds) |
2025-08-28 08:24:40 +0200 | rembo10 | (~rembo10@main.remulis.com) rembo10 |
2025-08-28 08:25:23 +0200 | Googulator68 | (~Googulato@2a01-036d-0106-28ad-d14e-68ce-c41e-4464.pool6.digikabel.hu) (Quit: Client closed) |
2025-08-28 08:25:37 +0200 | Googulator68 | (~Googulato@2a01-036d-0106-28ad-d14e-68ce-c41e-4464.pool6.digikabel.hu) |
2025-08-28 08:25:44 +0200 | ringo_ | (~ringo@157.230.117.128) ringo_ |
2025-08-28 08:26:22 +0200 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 256 seconds) |
2025-08-28 08:26:23 +0200 | trickard | (~trickard@cpe-57-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
2025-08-28 08:26:36 +0200 | trickard_ | (~trickard@cpe-57-98-47-163.wireline.com.au) |
2025-08-28 08:30:47 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds) |
2025-08-28 08:31:38 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2025-08-28 08:42:01 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 08:44:55 +0200 | jmcantrell | (~weechat@user/jmcantrell) (Ping timeout: 245 seconds) |
2025-08-28 08:46:06 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac |
2025-08-28 08:47:19 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
2025-08-28 08:48:29 +0200 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) |
2025-08-28 08:51:48 +0200 | dyniec | (~dyniec@dybiec.info) (Server closed connection) |
2025-08-28 08:52:01 +0200 | dyniec | (~dyniec@dybiec.info) |
2025-08-28 08:54:18 +0200 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...) |
2025-08-28 08:54:27 +0200 | ft | (~ft@p4fc2a25a.dip0.t-ipconnect.de) (Quit: leaving) |
2025-08-28 08:54:36 +0200 | <haskellbridge> | <sm> tomsmeding: No mention of them in the docs; #haskell-stack:matrix.org (https://matrix.to/#/#haskell-stack:matrix.org) will know |
2025-08-28 08:54:54 +0200 | thatonelutenist | (8216c46202@2a03:6000:1812:100::fb3) (Server closed connection) |
2025-08-28 08:55:02 +0200 | thatonelutenist | (8216c46202@2a03:6000:1812:100::fb3) thatonelutenist |
2025-08-28 08:55:15 +0200 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) |
2025-08-28 08:55:19 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 258 seconds) |
2025-08-28 08:55:38 +0200 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Client Quit) |
2025-08-28 08:55:53 +0200 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
2025-08-28 09:00:01 +0200 | caconym747 | (~caconym@user/caconym) (Quit: bye) |
2025-08-28 09:00:42 +0200 | caconym747 | (~caconym@user/caconym) caconym |
2025-08-28 09:02:48 +0200 | arandombit | (~arandombi@user/arandombit) arandombit |
2025-08-28 09:03:37 +0200 | <c_wraith> | as far as I know, stack uses cabal to actually install packages. (separate from determining which ones to install and downloading them) |
2025-08-28 09:03:48 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 09:04:12 +0200 | <c_wraith> | So it will support mix-ins used by packages that your project depends on |
2025-08-28 09:06:41 +0200 | tromp | (~textual@2001:1c00:3487:1b00:6941:8da5:79d5:ac1b) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-08-28 09:09:07 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds) |
2025-08-28 09:09:24 +0200 | jreicher | (~user@user/jreicher) (Quit: In transit) |
2025-08-28 09:09:27 +0200 | <Franciman> | stack is one of the worst software i have ever seen in terms of ecosystem coexistence |
2025-08-28 09:14:01 +0200 | hsw | (~hsw@112-104-9-97.adsl.dynamic.seed.net.tw) hsw |
2025-08-28 09:15:49 +0200 | <Axman6> | There've been a few features added to Cabal that haven't been supported by syack for a very long time (or at all? I seem to remember multiple libraries per project, or something like that, not being supported?) |
2025-08-28 09:17:43 +0200 | <haskellbridge> | <Morj> At least stack has good documentation for all the features it supports ;-) |
2025-08-28 09:22:02 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 09:26:14 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
2025-08-28 09:26:45 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds) |
2025-08-28 09:27:12 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
2025-08-28 09:30:24 +0200 | jess | (meow@libera/staff/cat/jess) (Read error: Software caused connection abort) |
2025-08-28 09:31:52 +0200 | jreicher | (~user@user/jreicher) jreicher |
2025-08-28 09:32:58 +0200 | jess | (meow@libera/staff/cat/jess) jess |
2025-08-28 09:34:58 +0200 | <haskellbridge> | <sm> Axman6: From https://docs.haskellstack.org/en/stable/ChangeLog I get the impression that stack started support for multi-library packages (AKA sub libraries AKA internal libraries ...) around 2018, and has been steadily improving that support ever since |
2025-08-28 09:37:30 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 09:41:46 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-08-28 09:41:53 +0200 | <haskellbridge> | <sm> backpack support is another one people usually ask about; AFAIK it's not in stack and consensus is that the feature has failed as an practical feature in cabal/ghc (it should be in the language not the tools) |
2025-08-28 09:42:34 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
2025-08-28 09:48:57 +0200 | mange | (~mange@user/mange) (Quit: Quittin' time!) |
2025-08-28 09:49:02 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 09:49:38 +0200 | <Franciman> | where is maerwald? |
2025-08-28 09:50:17 +0200 | <haskellbridge> | <maerwald> what? |
2025-08-28 09:51:45 +0200 | <Franciman> | what's up? |
2025-08-28 09:51:52 +0200 | <Franciman> | how are you? |
2025-08-28 09:52:02 +0200 | <haskellbridge> | <maerwald> fixing ghc and cabal |
2025-08-28 09:53:03 +0200 | <Franciman> | cool |
2025-08-28 09:54:07 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 09:54:09 +0200 | <haskellbridge> | <maerwald> What else is there to do |
2025-08-28 09:56:58 +0200 | <haskellbridge> | <sm> Hmm. are mixins and backpack different names for the same thing ? |
2025-08-28 09:58:09 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2025-08-28 09:58:46 +0200 | Googulator68 | Googulator |
2025-08-28 10:03:33 +0200 | <Franciman> | backpack is a way to emulate certain of the properties of standard ml module system, iiuc |
2025-08-28 10:03:44 +0200 | <Franciman> | aren't mixins a way to solve the expression problem? |
2025-08-28 10:03:44 +0200 | paul | (~paul@p200300d0c724c95b1313013fcbfec0be.dip0.t-ipconnect.de) |
2025-08-28 10:03:48 +0200 | paul | Guest8610 |
2025-08-28 10:04:07 +0200 | marinelli | (~weechat@gateway/tor-sasl/marinelli) (Remote host closed the connection) |
2025-08-28 10:04:50 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 10:04:53 +0200 | marinelli | (~weechat@gateway/tor-sasl/marinelli) marinelli |
2025-08-28 10:05:12 +0200 | FANTOM | (~fantom@87.74.59.94) (Ping timeout: 248 seconds) |
2025-08-28 10:05:49 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 256 seconds) |
2025-08-28 10:06:22 +0200 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 255 seconds) |
2025-08-28 10:07:38 +0200 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
2025-08-28 10:09:09 +0200 | <sm> | https://cabal.readthedocs.io/en/stable/cabal-package-description-file.html#pkg-field-mixins says "Mixin packages are part of the How to use Backpack modules extension to the Haskell module system." |
2025-08-28 10:10:32 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-08-28 10:10:53 +0200 | <sm> | https://cabal.readthedocs.io/en/stable/how-to-use-backpack.html mentions "mix-in linking" a few times. But it's not clear if these things are essentially the same feature, or two features that overlap |
2025-08-28 10:12:14 +0200 | <Franciman> | ah ok |
2025-08-28 10:13:05 +0200 | <sm> | Also for anyone curious, this seems to be the main history of stack backpack support so far (2016..2024-08): |
2025-08-28 10:13:11 +0200 | <sm> | https://github.com/commercialhaskell/stack/issues/2540 |
2025-08-28 10:13:14 +0200 | <sm> | https://github.com/commercialhaskell/stack/issues/4745 |
2025-08-28 10:13:17 +0200 | <sm> | https://github.com/commercialhaskell/stack/issues/6356 |
2025-08-28 10:14:36 +0200 | chiselfuse | (~chiselfus@user/chiselfuse) (Remote host closed the connection) |
2025-08-28 10:15:13 +0200 | chiselfuse | (~chiselfus@user/chiselfuse) chiselfuse |
2025-08-28 10:15:17 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 10:19:01 +0200 | acidjnk | (~acidjnk@p200300d6e7171930a0d4799db13e1f65.dip0.t-ipconnect.de) acidjnk |
2025-08-28 10:19:59 +0200 | arandombit | (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) |
2025-08-28 10:19:59 +0200 | arandombit | (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) (Changing host) |
2025-08-28 10:19:59 +0200 | arandombit | (~arandombi@user/arandombit) arandombit |
2025-08-28 10:20:16 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
2025-08-28 10:22:16 +0200 | <haskellbridge> | <sm> ezyang's initial comment suggests that use of backpack in private/internal/sub libraries may just work; exposing backpack signatures in the public library is the problem |
2025-08-28 10:22:56 +0200 | <yushyin> | I sometimes use mixins in my cabal files |
2025-08-28 10:23:50 +0200 | tromp | (~textual@2001:1c00:3487:1b00:6941:8da5:79d5:ac1b) |
2025-08-28 10:24:14 +0200 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 256 seconds) |
2025-08-28 10:27:42 +0200 | <sm> | yushyin, can stack build those packages ? |
2025-08-28 10:29:03 +0200 | <yushyin> | Dunno, but stack repl doesn't work with mixins. One reason why I stopped using stack |
2025-08-28 10:29:58 +0200 | <haskellbridge> | <sm> are any of them public ? I'm curious |
2025-08-28 10:31:04 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 10:31:35 +0200 | <Franciman> | yushyin: i personally avoid cabal too |
2025-08-28 10:31:46 +0200 | <Franciman> | boot packages + ghc is WAYYY GOOD |
2025-08-28 10:32:16 +0200 | <Franciman> | fortunately for programming in the large, cabal is quite good nowadays |
2025-08-28 10:32:51 +0200 | <yushyin> | sm: No, I don't use mixins in public repos as I know about stack not working with them |
2025-08-28 10:33:17 +0200 | <haskellbridge> | <sm> fair enough |
2025-08-28 10:33:23 +0200 | <Franciman> | is there any use case, nowadays, to use stack rather than cabal' |
2025-08-28 10:33:25 +0200 | <Franciman> | ? |
2025-08-28 10:33:49 +0200 | <Franciman> | iiuc stackage is purposefully obfuscated to avoid being compatible with cabal, but is ultimately a cabal freeze output |
2025-08-28 10:34:52 +0200 | <haskellbridge> | <sm> Franciman, I don't think yuc :) |
2025-08-28 10:36:01 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-08-28 10:36:04 +0200 | <Franciman> | what does yuc mean? |
2025-08-28 10:36:09 +0200 | <Franciman> | sorry |
2025-08-28 10:37:32 +0200 | <haskellbridge> | <sm> "you understand correctly" |
2025-08-28 10:37:42 +0200 | arandombit | (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) |
2025-08-28 10:37:42 +0200 | arandombit | (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) (Changing host) |
2025-08-28 10:37:42 +0200 | arandombit | (~arandombi@user/arandombit) arandombit |
2025-08-28 10:37:55 +0200 | <Franciman> | ty |
2025-08-28 10:39:07 +0200 | darkling | (~darkling@2001-ba8-1f1-f0e6-0-0-0-2.autov6rev.bitfolk.space) (Server closed connection) |
2025-08-28 10:39:17 +0200 | darkling | (~darkling@2001-ba8-1f1-f0e6-0-0-0-2.autov6rev.bitfolk.space) |
2025-08-28 10:40:30 +0200 | PaulMartensen | (15a119e437@2001:bc8:1210:2cd8::3bc) |
2025-08-28 10:41:36 +0200 | FANTOM | (~fantom@87.74.59.94) |
2025-08-28 10:41:37 +0200 | Guest8610 | (~paul@p200300d0c724c95b1313013fcbfec0be.dip0.t-ipconnect.de) (Quit: Guest8610) |
2025-08-28 10:42:20 +0200 | <haskellbridge> | <sm> the plot thickens once again: it seems there are private sublibraries, and public sublibraries, which should be considered separately |
2025-08-28 10:42:54 +0200 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 260 seconds) |
2025-08-28 10:45:46 +0200 | <haskellbridge> | <sm> Franciman if you're asking seriously: many people, including myself, like stack for its greater focus on reproducibility, its generally better UX, and its relative lack of cruft and legacy baggage. |
2025-08-28 10:46:45 +0200 | trickard_ | trickard |
2025-08-28 10:46:51 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 10:47:05 +0200 | <Franciman> | i see sm thanks |
2025-08-28 10:50:57 +0200 | chele | (~chele@user/chele) chele |
2025-08-28 10:53:37 +0200 | FANTOM | (~fantom@87.74.59.94) (Ping timeout: 248 seconds) |
2025-08-28 10:54:03 +0200 | arandombit | (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) |
2025-08-28 10:54:03 +0200 | arandombit | (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) (Changing host) |
2025-08-28 10:54:03 +0200 | arandombit | (~arandombi@user/arandombit) arandombit |
2025-08-28 10:55:09 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 10:55:42 +0200 | literon | (~literon@2E8B6C41.catv.pool.telekom.hu) |
2025-08-28 10:58:25 +0200 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 248 seconds) |
2025-08-28 11:02:22 +0200 | ubert1 | (~Thunderbi@178.165.186.86.wireless.dyn.drei.com) ubert |
2025-08-28 11:05:49 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 11:08:47 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) kuribas |
2025-08-28 11:09:06 +0200 | FANTOM | (~fantom@87.74.59.94) |
2025-08-28 11:09:31 +0200 | Square3 | (~Square4@user/square) Square |
2025-08-28 11:10:41 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-08-28 11:12:07 +0200 | tomboy64 | (~tomboy64@user/tomboy64) (Ping timeout: 256 seconds) |
2025-08-28 11:13:23 +0200 | tomboy64 | (~tomboy64@user/tomboy64) tomboy64 |
2025-08-28 11:17:59 +0200 | gmg | (~user@user/gehmehgeh) gehmehgeh |
2025-08-28 11:20:40 +0200 | arandombit | (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) |
2025-08-28 11:20:40 +0200 | arandombit | (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) (Changing host) |
2025-08-28 11:20:40 +0200 | arandombit | (~arandombi@user/arandombit) arandombit |
2025-08-28 11:21:28 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 248 seconds) |
2025-08-28 11:21:36 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 11:25:29 +0200 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 260 seconds) |
2025-08-28 11:28:23 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 11:35:22 +0200 | fp | (~Thunderbi@wireless-86-50-141-108.open.aalto.fi) fp |
2025-08-28 11:37:20 +0200 | lol_ | (~lol@2603:3016:1e01:b960:14c0:7a30:3283:d6ed) (Ping timeout: 256 seconds) |
2025-08-28 11:38:30 +0200 | jcarpenter2 | (~lol@96.78.87.197) |
2025-08-28 11:39:39 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 11:44:44 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 11:51:01 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 11:55:35 +0200 | arandombit | (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) |
2025-08-28 11:55:35 +0200 | arandombit | (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) (Changing host) |
2025-08-28 11:55:35 +0200 | arandombit | (~arandombi@user/arandombit) arandombit |
2025-08-28 11:56:01 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-08-28 11:59:37 +0200 | confusedalex | (~alex@user/confusedalex) confusedalex |
2025-08-28 11:59:45 +0200 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 248 seconds) |
2025-08-28 12:00:31 +0200 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
2025-08-28 12:02:04 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 12:02:06 +0200 | <kuribas> | I find OOP is just a more restricted version of using HOFs. |
2025-08-28 12:02:48 +0200 | <kuribas> | I can make a superclass, and call virtual functions inside a method, but it's just the same as having a HOF function taking helper functions. |
2025-08-28 12:06:17 +0200 | <ski> | a large part of it is programming with product types, with message-dispatching (as dual to sum types, with pattern-matching) |
2025-08-28 12:06:26 +0200 | Lycurgus | (~juan@user/Lycurgus) Lycurgus |
2025-08-28 12:06:54 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 12:07:51 +0200 | <ski> | (also the product types would typically be non-strict, leading to a closure-type implementation strategy (passing instance state / environment, to operations in vtable)) |
2025-08-28 12:10:00 +0200 | <kuribas> | The instance being the product type? |
2025-08-28 12:10:30 +0200 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2025-08-28 12:11:39 +0200 | <kuribas> | It's true, I don't often see sum types in OOP, usualy they are implicit Unions. |
2025-08-28 12:11:52 +0200 | <kuribas> | Using isinstance checks to distinguish between them. |
2025-08-28 12:12:11 +0200 | <kuribas> | In Python I often use "Class1 | Class2" instead of a sum type. |
2025-08-28 12:12:24 +0200 | h2t | (~h2t@user/h2t) (Server closed connection) |
2025-08-28 12:12:25 +0200 | <kuribas> | But for parsing it's sometimes useful to have discriminated unios. |
2025-08-28 12:12:36 +0200 | <kuribas> | Then you get into the mess that is "pydantic". |
2025-08-28 12:12:39 +0200 | h2t | (~h2t@user/h2t) h2t |
2025-08-28 12:13:42 +0200 | <probie> | Java these days has pattern matching and you can pretend you have sum types via sealed interfaces, if you want that :p |
2025-08-28 12:14:10 +0200 | <kuribas> | like scala? |
2025-08-28 12:14:23 +0200 | <ski> | consider `data Queue a = forall q. MkQ {stateQ :: q,enQ :: a -> q -> q,deQ :: q -> Maybe (q,a)}' |
2025-08-28 12:14:41 +0200 | <ski> | you can then define wrappers, for invoking the methods |
2025-08-28 12:15:37 +0200 | davean | (~davean@davean.sciesnet.net) (Server closed connection) |
2025-08-28 12:15:55 +0200 | davean | (~davean@davean.sciesnet.net) davean |
2025-08-28 12:16:56 +0200 | <ski> | enqueue :: a -> Queue a -> Queue a |
2025-08-28 12:17:03 +0200 | <ski> | enqueue x (MkQ q enQ deQ) = MkQ (enQ x q) enQ deQ |
2025-08-28 12:17:05 +0200 | <ski> | and |
2025-08-28 12:17:12 +0200 | <ski> | dequeue :: Queue a -> Maybe (Queue a,a) |
2025-08-28 12:17:16 +0200 | <ski> | dequeue (MkQ q enQ deQ) = fmap (\(q,x) -> (MkQ q enQ deQ)) (deQ q) |
2025-08-28 12:17:24 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 12:17:33 +0200 | <ski> | and then you can define a class, like |
2025-08-28 12:18:28 +0200 | <kuribas> | I have sort of the opposite problem, I am writing python, but I don't see a good reason to use a class (other than being more "pythonic"). It just seems less flexible. |
2025-08-28 12:18:51 +0200 | <ski> | newListQueue :: Queue a |
2025-08-28 12:19:04 +0200 | <ski> | newListQueue = MkQ [] enQ deQ |
2025-08-28 12:19:08 +0200 | <ski> | where |
2025-08-28 12:19:18 +0200 | <ski> | enQ x xs = xs ++ [x] |
2025-08-28 12:19:28 +0200 | <ski> | deQ [ ] = Nothing |
2025-08-28 12:19:41 +0200 | <ski> | deQ (x:xs) = Just (xs,x) |
2025-08-28 12:19:58 +0200 | <ski> | and you can imagine more efficient implementations |
2025-08-28 12:21:39 +0200 | <ski> | but also note that another way to define this type `Queue a' (where the above type is basically `exists q. (q,a -> q -> q,q -> Maybe (q,a))'), recursively, as `data Queue a = MkQ {enQ :: a -> Queue a,deQ :: Maybe (Queue a,a)}' |
2025-08-28 12:22:25 +0200 | <ski> | (and then you're redefine the wrappers `enqueue' and `dequeue', for this representation) |
2025-08-28 12:22:39 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 12:23:20 +0200 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 248 seconds) |
2025-08-28 12:23:39 +0200 | <ski> | "Using isinstance checks to distinguish between them." -- which is kinda a kludge. using VisitorPattern (which is basically CPS, Church representation) is in some sense more principled |
2025-08-28 12:24:37 +0200 | <Franciman> | what does principled mean? |
2025-08-28 12:24:48 +0200 | <probie> | less ad-hoc |
2025-08-28 12:25:59 +0200 | <ski> | if you don't have sealed, or something similar, there's no guarantee there won't be alternatives which are not covered |
2025-08-28 12:28:43 +0200 | <ski> | btw, if you imagine `codata Queue a where Enqueue :: a -> Queue a -> Queue a; Dequeue :: Queue a', then one could define `newListQueue' as |
2025-08-28 12:28:55 +0200 | <ski> | newListQueue :: Queue a |
2025-08-28 12:29:03 +0200 | <jreicher> | The correspondence (if any) between OO and FP is further confused by the OO concept of a class conflating type and implementation. |
2025-08-28 12:29:14 +0200 | <ski> | newListQueue = listQueue [] |
2025-08-28 12:29:21 +0200 | <ski> | where |
2025-08-28 12:29:21 +0200 | <jreicher> | IMO you really gotta be careful with that in OO |
2025-08-28 12:29:48 +0200 | <ski> | Enqueue x (listQueue xs) = listQueue (xs ++ [x]) |
2025-08-28 12:29:59 +0200 | <ski> | Dequeue (listQueue [ ]) = Nothing |
2025-08-28 12:30:12 +0200 | <ski> | Dequeue (listQueue (x:xs)) = Just (listQueue xs,x) |
2025-08-28 12:30:19 +0200 | <ski> | yes, jreicher |
2025-08-28 12:31:33 +0200 | <ski> | (`Enqueue' and `Dequeue' here are methods, and `listQueue' is basically the class / class constructor. `listQueue xs' is being defined, in terms of how it responds to "messages", being the methods) |
2025-08-28 12:31:58 +0200 | <Franciman> | i see OO as more of a ontological programme |
2025-08-28 12:32:25 +0200 | <Franciman> | than an actual way of implementing stuff. So while i agree that all OO languages bottle the implementation side |
2025-08-28 12:32:31 +0200 | <Franciman> | i wouldn't say FP is opposed to OO |
2025-08-28 12:32:45 +0200 | takuan | (~takuan@d8D86B9E9.access.telenet.be) (Remote host closed the connection) |
2025-08-28 12:32:54 +0200 | <ski> | "OO" can mean many different things (as can "FP") |
2025-08-28 12:33:08 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 12:33:15 +0200 | <Franciman> | the issue with OO is probably how they put mutable state inside things |
2025-08-28 12:33:19 +0200 | <Franciman> | in a non-controlled wy |
2025-08-28 12:33:27 +0200 | <ski> | one useful way to contrast and compare, is to focus on the product vs. sum type distinction |
2025-08-28 12:33:31 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 248 seconds) |
2025-08-28 12:33:31 +0200 | <jreicher> | My take is that FP is a high-level OO. It creates an manages the objects for you. |
2025-08-28 12:33:45 +0200 | <ski> | you can do immutable OO |
2025-08-28 12:33:57 +0200 | <ski> | (O'Haskell, later Timber, did this) |
2025-08-28 12:34:10 +0200 | <ski> | oh, and OCaml supports it, as well |
2025-08-28 12:34:16 +0200 | <jreicher> | I believe it's fairly well accepted that a closure is a prototypical immutable object, and a thunk is a prototypical mutable one. |
2025-08-28 12:34:49 +0200 | jreicher | (~user@user/jreicher) (Quit: In transit) |
2025-08-28 12:35:18 +0200 | <Lycurgus> | my take is the model of computation, math in the case of FP, a variety of things for OOP, i once said pure phenomenollogy |
2025-08-28 12:35:26 +0200 | <ski> | to me, "closure" is a particular implementation technique, used for delayed computation values (like first-class function values, "objects", continuations, promises, ..) |
2025-08-28 12:35:53 +0200 | <Lycurgus> | communicating objects is downtown OOP |
2025-08-28 12:35:56 +0200 | <ski> | "thunk" doesn't particularly convey any connotation of mutation, to me |
2025-08-28 12:36:00 +0200 | segfaultfizzbuzz | (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) |
2025-08-28 12:36:22 +0200 | <ski> | (it might imply mutation. but might also not imply it. depending on the particular case) |
2025-08-28 12:36:37 +0200 | __monty__ | (~toonn@user/toonn) toonn |
2025-08-28 12:36:44 +0200 | <Lycurgus> | there's a legalistic 3 or 4 part qualifying list, encapsulation, inheritance, etc |
2025-08-28 12:36:47 +0200 | <ski> | in Scheme, "thunk" often refers to any procedure taking no parameters |
2025-08-28 12:36:56 +0200 | <Lycurgus> | polymorphism, i forget the other |
2025-08-28 12:38:01 +0200 | Lycurgus | remembers when OOP was new |
2025-08-28 12:38:23 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 12:38:27 +0200 | <Lycurgus> | and FP had already been araound a while |
2025-08-28 12:39:37 +0200 | arandombit | (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) |
2025-08-28 12:39:37 +0200 | arandombit | (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) (Changing host) |
2025-08-28 12:39:37 +0200 | arandombit | (~arandombi@user/arandombit) arandombit |
2025-08-28 12:39:55 +0200 | <Lycurgus> | biz likes OOP and it is foundational and presumed in modern data processing |
2025-08-28 12:41:22 +0200 | <Lycurgus> | but doers of this time were mostly born after OOP began and even after its universal adoption |
2025-08-28 12:41:40 +0200 | <Lycurgus> | in the 90s |
2025-08-28 12:42:43 +0200 | <Lycurgus> | the once exciting and magical is for them the old crusty and banal |
2025-08-28 12:43:04 +0200 | segfaultfizzbuzz | (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds) |
2025-08-28 12:44:23 +0200 | <ski> | <https://web.archive.org/web/20061014103835/http://community.schemewiki.org/?p=object-oriented-prog…> lists nine different aspects |
2025-08-28 12:45:49 +0200 | <ski> | encapsulation,protection,ad-hoc polymorphism,parametric polymorphism,everything is an object,all you can do is send a message,specification inheritance,implementation inheritance,sum-of-product-of-function pattern |
2025-08-28 12:46:39 +0200 | <Lycurgus> | yeah that list is bloated and repetitive |
2025-08-28 12:46:54 +0200 | takuan | (~takuan@d8D86B9E9.access.telenet.be) |
2025-08-28 12:47:10 +0200 | <Lycurgus> | you could say st was the species specimen, model type whatever |
2025-08-28 12:47:25 +0200 | <ski> | SmallTalk ? |
2025-08-28 12:47:31 +0200 | <Lycurgus> | y |
2025-08-28 12:47:43 +0200 | <probie> | All I know is that Common Lisp's Object System often doesn't meet definitions of "object-oriented", which is a shame, because it's definitely one of my favourite object systems to work with |
2025-08-28 12:48:00 +0200 | <Lycurgus> | it also came about a decade later |
2025-08-28 12:48:49 +0200 | fp | (~Thunderbi@wireless-86-50-141-108.open.aalto.fi) (Ping timeout: 248 seconds) |
2025-08-28 12:48:52 +0200 | <Lycurgus> | and in a sense didn really gel in stable stuff ppl actually use till much later |
2025-08-28 12:48:54 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 12:49:21 +0200 | <Lycurgus> | CLOS was shaky in my perception till after the turn of the century |
2025-08-28 12:49:54 +0200 | fp | (~Thunderbi@wireless-86-50-141-108.open.aalto.fi) fp |
2025-08-28 12:50:13 +0200 | <ski> | OO largely improved on design, by encouraging accessing state through a defined interface (making it easier to uphold representation invariants, and do possible validation), rather than arbitrarily reaching into state of one subsystem, from another sub-system |
2025-08-28 12:50:18 +0200 | <Lycurgus> | in terms of you could expect it would just work in an implementation |
2025-08-28 12:50:55 +0200 | <Lycurgus> | well you can see how transformative it is compared to the flat code scene b4 it |
2025-08-28 12:51:03 +0200 | <ski> | (as compared to plain structured (but not necessarily modular) programming, that is) |
2025-08-28 12:51:28 +0200 | <Lycurgus> | 'structured programming' which produced pascal was the preceeding big thiing |
2025-08-28 12:51:39 +0200 | <ski> | right |
2025-08-28 12:52:32 +0200 | <Lycurgus> | which basically meant no uglu bowsl of spagheeti |
2025-08-28 12:52:32 +0200 | <ski> | insisting on single-entry and single-exit control structures (to avoid spaghetti programming) |
2025-08-28 12:52:50 +0200 | <Lycurgus> | *ugly |
2025-08-28 12:53:15 +0200 | <Lycurgus> | *bowls |
2025-08-28 12:53:31 +0200 | <ski> | (and short-circuit facilities, like `&&' and `||', as well as `return',`break',`continue', are all deviations from this) |
2025-08-28 12:54:17 +0200 | <Lycurgus> | *spaghetti |
2025-08-28 12:54:54 +0200 | <probie> | Lycurgus: It was the early 2000s before I ever touched LISP, so I never experienced the implementation pains. I also learnt it _before_ "regular" object orientation, so I remember being constantly disappointed at not having multiple dispatch in anything else |
2025-08-28 12:55:16 +0200 | <sajenim> | haskell was my first language, now at school they are teaching java |
2025-08-28 12:55:25 +0200 | <sajenim> | and it's fr frustrating |
2025-08-28 12:55:31 +0200 | <ski> | (.. in Prolog, the cut, `!', is also an example here. this, together with `return',`break',`continue', all have the aspect that they refer to an implicit surrounding "current context" (predicate clause, function definition, loop command), which makes it harder to refactor code) |
2025-08-28 12:55:44 +0200 | <ski> | i feel your pain, sajenim |
2025-08-28 12:55:55 +0200 | <Lycurgus> | well CLOS is just the aptheosis of OOP as u'd expect for the lang |
2025-08-28 12:56:00 +0200 | <sajenim> | idk how my prof has a phd his code stinks |
2025-08-28 12:56:07 +0200 | <Lycurgus> | *apotheosis |
2025-08-28 12:56:38 +0200 | tromp | (~textual@2001:1c00:3487:1b00:6941:8da5:79d5:ac1b) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-08-28 12:56:44 +0200 | <sajenim> | he turns everything into a 160 column 1 liner |
2025-08-28 12:56:49 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-08-28 12:56:57 +0200 | <Lycurgus> | so it's not surprising it took a while for the defacto thing outta PCL to become what ppl call CLOS now |
2025-08-28 12:57:52 +0200 | <ski> | i guess he has a high resolution screen, sajenim |
2025-08-28 12:58:14 +0200 | <Lycurgus> | concision freak maybe |
2025-08-28 12:58:16 +0200 | <sajenim> | i have 1440p aswell, but like what about multiple files open |
2025-08-28 12:58:53 +0200 | <ski> | too long lines tend to be hard to read (hard to quickly see where the next line starts), also in prose text |
2025-08-28 12:58:58 +0200 | jreicher | (~user@user/jreicher) jreicher |
2025-08-28 12:58:59 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2025-08-28 12:59:00 +0200 | takuan | (~takuan@d8D86B9E9.access.telenet.be) (Remote host closed the connection) |
2025-08-28 12:59:46 +0200 | marinelli | (~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli) |
2025-08-28 12:59:58 +0200 | <sajenim> | my peers called me a bad coder because i mentioned it's frustrating reading his wall of text |
2025-08-28 13:00:04 +0200 | caconym747 | (~caconym@user/caconym) (Quit: bye) |
2025-08-28 13:01:15 +0200 | <probie> | sajenim: You don't need to write good code for a PhD; the quality of code written doesn't directly map to quality of the research, and there's often less incentive to have things maintainable |
2025-08-28 13:01:38 +0200 | <sajenim> | i did read something along the lines of what you are saying |
2025-08-28 13:01:44 +0200 | fp | (~Thunderbi@wireless-86-50-141-108.open.aalto.fi) (Ping timeout: 260 seconds) |
2025-08-28 13:01:50 +0200 | <sajenim> | in relation to academia |
2025-08-28 13:02:12 +0200 | caconym747 | (~caconym@user/caconym) caconym |
2025-08-28 13:03:42 +0200 | <jreicher> | ski: A closure is not a delayed computation. It's a solution to the upward funarg problem if you optimise the substitution rule for beta reduction by using an environment. |
2025-08-28 13:04:51 +0200 | <Franciman> | how much fun did i have when i implemented fully lazy sharing and obtained a 20x increase in speed from ghc's compiled output |
2025-08-28 13:04:51 +0200 | <ski> | yes. aka an implementation strategy for a delayed computation |
2025-08-28 13:04:56 +0200 | fp | (~Thunderbi@2001:708:150:10::72df) fp |
2025-08-28 13:05:14 +0200 | <Franciman> | 30 years of research and implementation bottled by a interpreter done in 2 hours |
2025-08-28 13:06:00 +0200 | <Franciman> | if P = NP, life would be brutal |
2025-08-28 13:06:09 +0200 | <ski> | (delaying substitutions for variables, in the body of the delayed computation, by bundling that body with the mapping, the substitution/environment. in the case of object-orientation, that environment is known as "instance state") |
2025-08-28 13:07:49 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 13:13:45 +0200 | <Lycurgus> | i guess i'm feeling that P is prolly = NP, intuitively, verification being semantically close to computation of a value, and i sense a vested job security interest in the opposite position |
2025-08-28 13:14:33 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 13:15:26 +0200 | <jreicher> | You might want to check the difference between constructive and non-constructive proofs before you get comfortable with that |
2025-08-28 13:15:50 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2025-08-28 13:16:47 +0200 | <Lycurgus> | well it's a matter of abstract principle, i have no interest in setting off on a proof of stuff like that or say church's thesis |
2025-08-28 13:17:04 +0200 | califax | (~califax@user/califx) califx |
2025-08-28 13:17:09 +0200 | <Lycurgus> | having a considered opition is enough for a humble doer like myself |
2025-08-28 13:18:49 +0200 | <Lycurgus> | *opinion |
2025-08-28 13:19:26 +0200 | <jreicher> | Church's thesis can't be proven. That's why it's a thesis. :) |
2025-08-28 13:19:57 +0200 | <Lycurgus> | so what to you call P = NP, a conjecture? |
2025-08-28 13:20:04 +0200 | <Lycurgus> | *do you |
2025-08-28 13:20:10 +0200 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) |
2025-08-28 13:22:38 +0200 | <jreicher> | Yes, it's a conjecture. It's liable to formal proof, disproof, or independence. |
2025-08-28 13:22:55 +0200 | <Leary> | 'Conjecture' suggests that it's considered likely to hold. I would just call it an open question. |
2025-08-28 13:25:46 +0200 | <kuribas> | OO or actor model are good for large scale parts, where each part is self contained, and communicates with messaging. |
2025-08-28 13:26:01 +0200 | <Lycurgus> | my feels are that proving church's thesis is like proving there's no god |
2025-08-28 13:26:04 +0200 | <kuribas> | Using OO for numbers is ridiculous IMO, why send a message to add two numbers. |
2025-08-28 13:26:10 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds) |
2025-08-28 13:27:19 +0200 | <kuribas> | The cell analogy for OOP shows this clearly, a cell is a super complicated things, maybe even more than your whole computer. |
2025-08-28 13:27:49 +0200 | <kuribas> | It's not a thing that magically heals and solves problems. |
2025-08-28 13:28:13 +0200 | <Lycurgus> | being life itself atomically dont count? |
2025-08-28 13:29:11 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2025-08-28 13:29:53 +0200 | <Lycurgus> | and yeah good analogy if you just look at cells as bags with some properties or structure, i.e an abstraction |
2025-08-28 13:29:56 +0200 | <kuribas> | "Organically" is often used as a good adjective, but in reality what we consider "organic", is carefully managed by us, like growing plants, or maintaining a garden. |
2025-08-28 13:30:35 +0200 | <kuribas> | Lycurgus: the cell analogy was used by Alan Kay. |
2025-08-28 13:30:48 +0200 | <ski> | there are "internalized versions" of Church's thesis, basically claiming that every (computable) function is algorithmic (in some particular system). these could be provable, like in versions of constructive math, given appropriate axioms |
2025-08-28 13:32:37 +0200 | xff0x | (~xff0x@2405:6580:b080:900:b44c:4dd6:a7f0:d125) |
2025-08-28 13:32:40 +0200 | <Lycurgus> | kuribas, ack |
2025-08-28 13:33:57 +0200 | califax | (~califax@user/califx) califx |
2025-08-28 13:34:24 +0200 | haritz | (~hrtz@209.35.65.79) |
2025-08-28 13:34:24 +0200 | haritz | (~hrtz@209.35.65.79) (Changing host) |
2025-08-28 13:34:24 +0200 | haritz | (~hrtz@user/haritz) haritz |
2025-08-28 13:38:17 +0200 | tromp | (~textual@2001:1c00:3487:1b00:6941:8da5:79d5:ac1b) |
2025-08-28 13:39:34 +0200 | <kuribas> | I think organic is taken synonym with self organising, effortless, ... |
2025-08-28 13:41:00 +0200 | <jreicher> | ski: Church's thesis is an idea in the absence of axioms. That's the whole point. If anything it suggests the axioms and not the other way round. |
2025-08-28 13:43:09 +0200 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 260 seconds) |
2025-08-28 13:43:47 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
2025-08-28 13:48:43 +0200 | <Franciman> | jreicher: i also like to see it as an empirical law |
2025-08-28 13:48:50 +0200 | <Franciman> | like newton's gravity laws |
2025-08-28 13:49:03 +0200 | <Franciman> | you keep it while it holds, then when somebody comes up with realtivity |
2025-08-28 13:49:05 +0200 | <Franciman> | you drop it |
2025-08-28 13:49:27 +0200 | takuan | (~takuan@d8D86B9E9.access.telenet.be) |
2025-08-28 13:51:47 +0200 | tromp | (~textual@2001:1c00:3487:1b00:6941:8da5:79d5:ac1b) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-08-28 13:53:01 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 13:58:09 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-08-28 14:01:48 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 272 seconds) |
2025-08-28 14:03:03 +0200 | ec | (~ec@gateway/tor-sasl/ec) ec |
2025-08-28 14:04:33 +0200 | literon | (~literon@2E8B6C41.catv.pool.telekom.hu) (Quit: Client closed) |
2025-08-28 14:08:49 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 14:10:50 +0200 | trickard | (~trickard@cpe-57-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
2025-08-28 14:10:54 +0200 | fp | (~Thunderbi@2001:708:150:10::72df) (Quit: fp) |
2025-08-28 14:11:00 +0200 | fp1 | (~Thunderbi@wireless-86-50-141-108.open.aalto.fi) fp |
2025-08-28 14:11:04 +0200 | trickard_ | (~trickard@cpe-57-98-47-163.wireline.com.au) |
2025-08-28 14:12:56 +0200 | arandombit | (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) |
2025-08-28 14:12:56 +0200 | arandombit | (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) (Changing host) |
2025-08-28 14:12:56 +0200 | arandombit | (~arandombi@user/arandombit) arandombit |
2025-08-28 14:13:18 +0200 | fp1 | fp |
2025-08-28 14:13:37 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-08-28 14:15:38 +0200 | aku | (aku@65.108.245.241) (Quit: Lost terminal) |
2025-08-28 14:16:57 +0200 | aku | (aku@65.108.245.241) eagleflo |
2025-08-28 14:18:25 +0200 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 248 seconds) |
2025-08-28 14:24:36 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 14:29:49 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 14:32:02 +0200 | Lycurgus | (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org )) |
2025-08-28 14:33:26 +0200 | tbahne | (~tbahne@user/tbahne) tbahne |
2025-08-28 14:40:27 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 14:43:35 +0200 | meejah | (~meejah@rutas.meejah.ca) (Server closed connection) |
2025-08-28 14:43:44 +0200 | meejah | (~meejah@rutas.meejah.ca) meejah |
2025-08-28 14:45:05 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-08-28 14:45:32 +0200 | trickard_ | trickard |
2025-08-28 14:45:56 +0200 | tromp | (~textual@2001:1c00:3487:1b00:6941:8da5:79d5:ac1b) |
2025-08-28 14:46:12 +0200 | AlexNoo | (~AlexNoo@5.139.233.33) (Quit: Leaving) |
2025-08-28 14:47:04 +0200 | arandombit | (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) |
2025-08-28 14:47:04 +0200 | arandombit | (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) (Changing host) |
2025-08-28 14:47:04 +0200 | arandombit | (~arandombi@user/arandombit) arandombit |
2025-08-28 14:52:34 +0200 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 260 seconds) |
2025-08-28 14:54:02 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 14:57:07 +0200 | ttybitnik | (~ttybitnik@user/wolper) ttybitnik |
2025-08-28 15:00:33 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-08-28 15:03:59 +0200 | arandombit | (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) |
2025-08-28 15:03:59 +0200 | arandombit | (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) (Changing host) |
2025-08-28 15:03:59 +0200 | arandombit | (~arandombi@user/arandombit) arandombit |
2025-08-28 15:06:12 +0200 | <Athas> | Is the OverloadedLists extension known to be very annoying to use? Just enabling it leads to lots of errors about ambiguity. |
2025-08-28 15:06:52 +0200 | <Athas> | I suppose my coding style may simply be inappropriate, but it looks like most of my list literals become ambiguous. |
2025-08-28 15:08:54 +0200 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 260 seconds) |
2025-08-28 15:12:05 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 15:16:49 +0200 | <probie> | It was less bad before `foldable` |
2025-08-28 15:17:03 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 15:21:57 +0200 | arandombit | (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) |
2025-08-28 15:21:57 +0200 | arandombit | (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) (Changing host) |
2025-08-28 15:21:57 +0200 | arandombit | (~arandombi@user/arandombit) arandombit |
2025-08-28 15:22:41 +0200 | <Athas> | Right, it's definitely Foldable that creates the ambiguities. |
2025-08-28 15:22:54 +0200 | <Athas> | It would perhaps be useful if it defaulted to lists in ambiguous cases, but currently it seems completely useless. |
2025-08-28 15:23:28 +0200 | <haskellbridge> | <Morj> Yeah I had a similar problem. That's why nowadays I leave explicit fromList calls |
2025-08-28 15:25:37 +0200 | <Leary> | Athas: Tried `default ([])`? |
2025-08-28 15:27:09 +0200 | <Athas> | Leary: does that work? |
2025-08-28 15:27:16 +0200 | <Leary> | I don't know. :) |
2025-08-28 15:27:34 +0200 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 260 seconds) |
2025-08-28 15:27:51 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 15:28:19 +0200 | <Athas> | It does not. But the error message complains that [] is not an instance of IsString, so I'm guessing OverloadedStrings got to that bit of notation first. |
2025-08-28 15:28:34 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
2025-08-28 15:31:31 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Read error: Connection reset by peer) |
2025-08-28 15:31:47 +0200 | takuan | (~takuan@d8D86B9E9.access.telenet.be) (Remote host closed the connection) |
2025-08-28 15:32:49 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 15:33:01 +0200 | takuan | (~takuan@d8D86B9E9.access.telenet.be) |
2025-08-28 15:36:13 +0200 | takuan | (~takuan@d8D86B9E9.access.telenet.be) (Remote host closed the connection) |
2025-08-28 15:39:47 +0200 | takuan | (~takuan@d8D86B9E9.access.telenet.be) |
2025-08-28 15:42:50 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
2025-08-28 15:43:28 +0200 | marinelli | (~weechat@gateway/tor-sasl/marinelli) marinelli |
2025-08-28 15:43:40 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 15:45:27 +0200 | segfaultfizzbuzz | (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) segfaultfizzbuzz |
2025-08-28 15:47:25 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Read error: Connection reset by peer) |
2025-08-28 15:48:33 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 15:49:58 +0200 | AlexZenon | (~alzenon@5.139.233.33) |
2025-08-28 15:53:14 +0200 | segfaultfizzbuzz | (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds) |
2025-08-28 15:55:01 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 15:55:08 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
2025-08-28 15:58:59 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Read error: Connection reset by peer) |
2025-08-28 16:00:13 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 16:00:13 +0200 | fp | (~Thunderbi@wireless-86-50-141-108.open.aalto.fi) (Ping timeout: 260 seconds) |
2025-08-28 16:03:09 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
2025-08-28 16:04:18 +0200 | ubert1 | (~Thunderbi@178.165.186.86.wireless.dyn.drei.com) (Ping timeout: 260 seconds) |
2025-08-28 16:09:37 +0200 | trickard | (~trickard@cpe-57-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
2025-08-28 16:09:51 +0200 | trickard_ | (~trickard@cpe-57-98-47-163.wireline.com.au) |
2025-08-28 16:10:48 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 16:13:01 +0200 | arandombit | (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) |
2025-08-28 16:13:01 +0200 | arandombit | (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) (Changing host) |
2025-08-28 16:13:01 +0200 | arandombit | (~arandombi@user/arandombit) arandombit |
2025-08-28 16:15:48 +0200 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
2025-08-28 16:15:59 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 16:20:05 +0200 | jocke-l | (jocke-l@a.x0.is) (Server closed connection) |
2025-08-28 16:20:30 +0200 | jocke-l | (jocke-l@a.x0.is) jocke-l |
2025-08-28 16:20:48 +0200 | <absence> | I'm playing with the singletons library, and trying to reify a Bool by pattern matching on "toSing boolValue". To my understanding, it returns "SomeSing (s :: Sing (b :: Bool))", but when I try to use pass @b to a function, I get "Could not deduce SomeConstraint b", even though both SomeConstraint 'True and SomeConstraint 'False are in scope. Clearly I'm missing a step, could someone point me in the |
2025-08-28 16:20:54 +0200 | <absence> | right direction? |
2025-08-28 16:26:35 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 16:30:40 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Remote host closed the connection) |
2025-08-28 16:31:02 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
2025-08-28 16:31:25 +0200 | <Leary> | absence: I don't know the details of the singletons library (since I tend to roll my own), but I imagine you want to case on `s`, refining `b` to `False` when `s` is `SFalse`, etc. |
2025-08-28 16:31:44 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 16:34:07 +0200 | davidlbowman | (~dlb@user/davidlbowman) davidlbowman |
2025-08-28 16:36:41 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) Unicorn_Princess |
2025-08-28 16:36:46 +0200 | trickard_ | trickard |
2025-08-28 16:37:08 +0200 | tromp | (~textual@2001:1c00:3487:1b00:6941:8da5:79d5:ac1b) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-08-28 16:39:17 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2025-08-28 16:41:36 +0200 | Square2 | (~Square@user/square) Square |
2025-08-28 16:42:22 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 16:45:44 +0200 | Square3 | (~Square4@user/square) (Ping timeout: 260 seconds) |
2025-08-28 16:46:37 +0200 | tbahne | (~tbahne@user/tbahne) (Quit: tbahne) |
2025-08-28 16:46:53 +0200 | tbahne | (~tbahne@user/tbahne) tbahne |
2025-08-28 16:49:13 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 16:50:24 +0200 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 260 seconds) |
2025-08-28 16:51:29 +0200 | tbahne | (~tbahne@user/tbahne) (Ping timeout: 248 seconds) |
2025-08-28 16:52:29 +0200 | hakutaku | (~textual@chen.yukari.eu.org) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2025-08-28 16:52:51 +0200 | machinedgod | (~machinedg@d75-159-126-101.abhsia.telus.net) machinedgod |
2025-08-28 16:53:19 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 260 seconds) |
2025-08-28 16:56:01 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 16:57:17 +0200 | vanishingideal | (~vanishing@user/vanishingideal) (Remote host closed the connection) |
2025-08-28 16:58:54 +0200 | <absence> | Leary: Do you mean pattern matching on STrue and SFalse, and manually passing @True and @False in each case? |
2025-08-28 16:59:43 +0200 | tomboy64 | (~tomboy64@user/tomboy64) (Ping timeout: 260 seconds) |
2025-08-28 17:01:05 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-08-28 17:01:26 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
2025-08-28 17:04:15 +0200 | <Leary> | That sounds like it should work, at least. You might want to factor things differently though, e.g. `instance SingI b => SomeConstraint b where ...` |
2025-08-28 17:07:34 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Remote host closed the connection) |
2025-08-28 17:07:52 +0200 | mxs9 | (~mxs@user/mxs) mxs |
2025-08-28 17:07:57 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
2025-08-28 17:10:46 +0200 | <absence> | Leary: In that case I don't need singletons at all, and can just pattern match on the Bool value directly, and match on True and False. I thought the idea was that singletons would let you avoid that kind of pattern match. |
2025-08-28 17:11:43 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla |
2025-08-28 17:11:49 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 17:13:10 +0200 | tomboy64 | (~tomboy64@user/tomboy64) tomboy64 |
2025-08-28 17:16:39 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 17:18:28 +0200 | arandombit | (~arandombi@user/arandombit) arandombit |
2025-08-28 17:20:20 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.5.2) |
2025-08-28 17:21:13 +0200 | ttybitnik | (~ttybitnik@user/wolper) (Quit: Fading out...) |
2025-08-28 17:21:19 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 260 seconds) |
2025-08-28 17:24:33 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
2025-08-28 17:24:56 +0200 | <kuribas> | absence: The right direction is to use idris2 once you start medling with singletons. |
2025-08-28 17:25:08 +0200 | <kuribas> | absence: or write boring haskell :) |
2025-08-28 17:25:11 +0200 | <kuribas> | absence: IMHO |
2025-08-28 17:25:37 +0200 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 248 seconds) |
2025-08-28 17:27:36 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 17:29:50 +0200 | tromp | (~textual@2001:1c00:3487:1b00:6941:8da5:79d5:ac1b) |
2025-08-28 17:29:57 +0200 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...) |
2025-08-28 17:30:19 +0200 | gmg | (~user@user/gehmehgeh) gehmehgeh |
2025-08-28 17:31:36 +0200 | <geekosaur> | absence, kuribas: strong agreement |
2025-08-28 17:31:49 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 260 seconds) |
2025-08-28 17:32:59 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 17:33:52 +0200 | Googulator | (~Googulato@2a01-036d-0106-28ad-d14e-68ce-c41e-4464.pool6.digikabel.hu) (Quit: Client closed) |
2025-08-28 17:34:09 +0200 | Googulator | (~Googulato@2a01-036d-0106-28ad-d14e-68ce-c41e-4464.pool6.digikabel.hu) |
2025-08-28 17:34:33 +0200 | lightspell | (~lightspel@dhcp-143-103-27-110.gobrightspeed.net) |
2025-08-28 17:38:08 +0200 | poscat | (~poscat@user/poscat) poscat |
2025-08-28 17:39:30 +0200 | poscat0x04 | (~poscat@user/poscat) (Ping timeout: 245 seconds) |
2025-08-28 17:42:00 +0200 | <absence> | The ergonomics decrease quickly when using type-level stuff for sure... |
2025-08-28 17:42:29 +0200 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
2025-08-28 17:43:24 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 17:45:19 +0200 | hakutaku | (~textual@chen.yukari.eu.org) |
2025-08-28 17:45:20 +0200 | arandombit | (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) |
2025-08-28 17:45:20 +0200 | arandombit | (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) (Changing host) |
2025-08-28 17:45:20 +0200 | arandombit | (~arandombi@user/arandombit) arandombit |
2025-08-28 17:47:45 +0200 | hakutaku | (~textual@chen.yukari.eu.org) (Client Quit) |
2025-08-28 17:48:43 +0200 | Googulator | (~Googulato@2a01-036d-0106-28ad-d14e-68ce-c41e-4464.pool6.digikabel.hu) (Quit: Client closed) |
2025-08-28 17:48:44 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 17:48:57 +0200 | Googulator | (~Googulato@2a01-036d-0106-28ad-d14e-68ce-c41e-4464.pool6.digikabel.hu) |
2025-08-28 17:53:16 +0200 | hakutaku | (~textual@chen.yukari.eu.org) |
2025-08-28 17:56:41 +0200 | <geekosaur> | haskell still doesn't have dependent types and (compared to languages that do) barely has a type level. singletons is IMO a horrible hack to try to get around this |
2025-08-28 17:57:02 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 17:57:03 +0200 | <geekosaur> | pretty much everything that uses Haskell with singletons should really be in Idris |
2025-08-28 17:57:20 +0200 | <geekosaur> | except, of course, that Idris barely has an ecosystem |
2025-08-28 17:57:37 +0200 | hakutaku | (~textual@chen.yukari.eu.org) (Ping timeout: 248 seconds) |
2025-08-28 18:02:08 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 18:08:34 +0200 | Googulator | (~Googulato@2a01-036d-0106-28ad-d14e-68ce-c41e-4464.pool6.digikabel.hu) (Quit: Client closed) |
2025-08-28 18:08:49 +0200 | Googulator | (~Googulato@2a01-036d-0106-28ad-d14e-68ce-c41e-4464.pool6.digikabel.hu) |
2025-08-28 18:09:13 +0200 | hakutaku | (~textual@chen.yukari.eu.org) |
2025-08-28 18:11:21 +0200 | <lightspell> | Hi, I'm learning Haskell by writing a simple card game. I'm using StateT to maintain the game state, and I'm using StatefulGen for randomly shuffling the deck when necessary. However, I can't figure out how to use both at the same time. Any chance someone could let me know what I'm doing wrong? I've made a simple version of the game to show the |
2025-08-28 18:11:22 +0200 | <lightspell> | issue, with only the shuffle and draw logic: https://play.haskell.org/saved/SKCK9WHL |
2025-08-28 18:12:48 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 18:18:29 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 18:19:45 +0200 | <absence> | lightspell: You've hard coded the base monad to [] in GameState. Instead, you probably want something like "StatefulGen g m => StateT Game m a", i.e. StateT should sit on top of the StatefulGen. You could also use mtl, e.g. "(MonadState Game m, StatefulGen g m) => m a" |
2025-08-28 18:19:53 +0200 | lightspell10 | (~lightspel@dhcp-143-103-27-110.gobrightspeed.net) |
2025-08-28 18:20:08 +0200 | lightspell10 | (~lightspel@dhcp-143-103-27-110.gobrightspeed.net) (Client Quit) |
2025-08-28 18:20:24 +0200 | lightspell1 | (~lightspel@dhcp-143-103-27-110.gobrightspeed.net) |
2025-08-28 18:21:19 +0200 | <lightspell1> | I included the rest of the code so it could run, but the main question is really just how to write a function like `shuffleDiscards`, which uses StatefulGen and StateT. The way I tried to write the type signature is `shuffleDiscards :: (StatefulGen g m) => PlayerId -> g -> m ()`, hoping that `m ()` would be equivalent to `StateT Game [] ()`, but |
2025-08-28 18:21:19 +0200 | <lightspell1> | clearly I have no idea what I'm doing. |
2025-08-28 18:22:56 +0200 | <absence> | lightspell1: Maybe you missed my message in the reconnect: You've hard coded the base monad to [] in GameState. Instead, you probably want something like "StatefulGen g m => StateT Game m a", i.e. StateT should sit on top of the StatefulGen. You could also use mtl, e.g. "(MonadState Game m, StatefulGen g m) => m a" |
2025-08-28 18:23:11 +0200 | <lightspell1> | whoops, sorry got disconnected and somehow got assigned a new handle. Thanks for the hint! |
2025-08-28 18:23:35 +0200 | lightspell | (~lightspel@dhcp-143-103-27-110.gobrightspeed.net) (Ping timeout: 250 seconds) |
2025-08-28 18:24:36 +0200 | <lightspell1> | That makes sense, thank you. I thought that somehow the StateT should already be wrapping the random generator, but I wasn't sure how. |
2025-08-28 18:25:37 +0200 | Googulator | (~Googulato@2a01-036d-0106-28ad-d14e-68ce-c41e-4464.pool6.digikabel.hu) (Quit: Client closed) |
2025-08-28 18:25:44 +0200 | Googulator33 | (~Googulato@2a01-036d-0106-28ad-d14e-68ce-c41e-4464.pool6.digikabel.hu) |
2025-08-28 18:26:07 +0200 | <EvanR> | StateT basically does nothing but add 1 mutable variable |
2025-08-28 18:26:43 +0200 | <EvanR> | whatever manipulations on it you write yourself on top of that |
2025-08-28 18:26:59 +0200 | <EvanR> | there are other monads that specialize in randomness |
2025-08-28 18:27:28 +0200 | <EvanR> | while IO gives you randomness, as many mutable variables as you want, and more |
2025-08-28 18:31:44 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 18:33:39 +0200 | divlamir | (~divlamir@user/divlamir) (Read error: Connection reset by peer) |
2025-08-28 18:33:58 +0200 | <haskellbridge> | <sm> indeed! |
2025-08-28 18:34:07 +0200 | divlamir | (~divlamir@user/divlamir) divlamir |
2025-08-28 18:34:41 +0200 | <lightspell1> | EvanR: I'm trying to figure out how to limit the code to one mutable state, rather than running everything in IO |
2025-08-28 18:36:01 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-08-28 18:39:15 +0200 | <geekosaur> | but the random seed is itself a mutable state, so you necessarily have two unless you design your own state that combines them |
2025-08-28 18:43:55 +0200 | lightspell | (~lightspel@dhcp-143-103-27-110.gobrightspeed.net) |
2025-08-28 18:45:38 +0200 | <lightspell> | I get that, but I thought the random generator is mutating itself every time I use it, and I'm passing it around as an argument to each function, so the way it's written now the StateT monad only needs to maintain the game state. I would like to also encapsulate the random generator as its own state, like you suggest, so it doesn't need to get |
2025-08-28 18:45:38 +0200 | <lightspell> | passed around all the time. I figured that would need some kind of nested transformers with mtl. |
2025-08-28 18:46:08 +0200 | <EvanR> | you could use two StateTs in a row for 2 variables but it gets interesting |
2025-08-28 18:46:21 +0200 | <EvanR> | or one StateT and one random monad transformer |
2025-08-28 18:46:48 +0200 | <EvanR> | without getting into MonadState generalizations |
2025-08-28 18:46:51 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2025-08-28 18:47:05 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-08-28 18:47:25 +0200 | lightspell1 | (~lightspel@dhcp-143-103-27-110.gobrightspeed.net) (Ping timeout: 250 seconds) |
2025-08-28 18:48:10 +0200 | <EvanR> | e.g. RandomT (sold separately) would add the ability the pick uniformly from a list and shuffle a list |
2025-08-28 18:48:12 +0200 | <lightspell> | That's what I'm trying to figure out how to do, yes. I barely understand what I'm doing now, so I don't want to get into further generalizations yet. |
2025-08-28 18:49:22 +0200 | tromp | (~textual@2001:1c00:3487:1b00:6941:8da5:79d5:ac1b) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-08-28 18:49:36 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2025-08-28 18:51:07 +0200 | lightspell45 | (~lightspel@dhcp-143-103-27-110.gobrightspeed.net) |
2025-08-28 18:51:13 +0200 | <lightspell45> | geez, I don't know what's up with these disconnections. Sorry. |
2025-08-28 18:52:09 +0200 | lightspell52 | (~lightspel@dhcp-143-103-27-110.gobrightspeed.net) |
2025-08-28 18:52:19 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-08-28 18:52:20 +0200 | <lightspell52> | okay I give up for now. I'll try again later with a more stable service. Thanks for the help! |
2025-08-28 18:52:30 +0200 | <EvanR> | light spell, that's a blast from the past |
2025-08-28 18:52:34 +0200 | <EvanR> | dungeon master |
2025-08-28 18:53:55 +0200 | lightspell | (~lightspel@dhcp-143-103-27-110.gobrightspeed.net) (Ping timeout: 250 seconds) |
2025-08-28 18:54:11 +0200 | <lightspell52> | I've tried nesting State inside the StateT to hold the random number generator. However, I have no idea how to actually do that |
2025-08-28 18:55:42 +0200 | tromp | (~textual@2001:1c00:3487:1b00:6941:8da5:79d5:ac1b) |
2025-08-28 18:55:47 +0200 | <lightspell52> | Something like this. Defining `MyRandomState` clearly doesn't work because I don't think you can have parameterized types in a type definition like this. But I don't know how to tell it that I want the `m` to be `State` and the `g` to be the generator in the state. |
2025-08-28 18:55:48 +0200 | <lightspell52> | type MyRandomState = (StatefulGen g m) => State g |
2025-08-28 18:55:48 +0200 | <lightspell52> | type GameState a = StateT Game MyRandom a |
2025-08-28 18:56:05 +0200 | lightspell45 | (~lightspel@dhcp-143-103-27-110.gobrightspeed.net) (Ping timeout: 250 seconds) |
2025-08-28 18:56:29 +0200 | <lightspell52> | That's complete nonsense code. Just trying to communicate the concept, something here just hasn't clicked yet for me. |
2025-08-28 18:57:54 +0200 | <EvanR> | it would be like StateT Game (StateT RNG IO a) |
2025-08-28 18:58:08 +0200 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
2025-08-28 18:58:24 +0200 | <EvanR> | where RNG is the type for the generator state, whatever that is |
2025-08-28 18:58:27 +0200 | <EvanR> | not a monad |
2025-08-28 18:59:14 +0200 | <EvanR> | but because they're both StateT the disambiguation for the StateT methods gets fun |
2025-08-28 18:59:38 +0200 | <EvanR> | which is why a dedicated RandomT would be more ergonomic |
2025-08-28 19:00:26 +0200 | krei-se- | (~krei-se@p3ee0fd0d.dip0.t-ipconnect.de) (Quit: ZNC 1.9.1 - https://znc.in) |
2025-08-28 19:00:30 +0200 | <EvanR> | I typoed that: StateT Game (StateT RNG IO) a |
2025-08-28 19:00:42 +0200 | qqe | (~qqq@185.54.20.59) |
2025-08-28 19:01:25 +0200 | <EvanR> | the third argument is a monad, which has to have kind * -> * |
2025-08-28 19:01:54 +0200 | <EvanR> | 2nd argument ? 3rd position |
2025-08-28 19:03:58 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-08-28 19:04:08 +0200 | ggVGc | (~ggVGc@a.lowtech.earth) (Server closed connection) |
2025-08-28 19:04:12 +0200 | <lightspell52> | That makes so more sense, than you. I will give that a try. |
2025-08-28 19:04:31 +0200 | ggVGc | (~ggVGc@a.lowtech.earth) |
2025-08-28 19:08:14 +0200 | sprotte24 | (~sprotte24@p200300d16f0bc80029e95c83e39d93ca.dip0.t-ipconnect.de) |
2025-08-28 19:09:49 +0200 | jreicher | (~user@user/jreicher) (Ping timeout: 260 seconds) |
2025-08-28 19:12:35 +0200 | trickard | (~trickard@cpe-57-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |