2024-09-26 00:02:15 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 00:07:45 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
2024-09-26 00:10:28 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 00:11:44 +0200 | pavonia | (~user@user/siracusa) siracusa |
2024-09-26 00:18:03 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 00:22:52 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-09-26 00:27:46 +0200 | troydm | (~troydm@user/troydm) troydm |
2024-09-26 00:33:33 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 246 seconds) |
2024-09-26 00:33:49 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 00:34:36 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 246 seconds) |
2024-09-26 00:34:38 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
2024-09-26 00:37:08 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 00:39:04 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-09-26 00:41:23 +0200 | rdcdr_ | (~rdcdr@75-172-9-7.tukw.qwest.net) (Changing host) |
2024-09-26 00:41:23 +0200 | rdcdr_ | (~rdcdr@user/rdcdr) rdcdr |
2024-09-26 00:42:25 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 248 seconds) |
2024-09-26 00:48:49 +0200 | lucy | (~lucy@user/lucy) lucy |
2024-09-26 00:49:33 +0200 | paddymahoney | (~paddymaho@pool-99-250-10-137.cpe.net.cable.rogers.com) (Ping timeout: 245 seconds) |
2024-09-26 00:49:38 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 00:53:41 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds) |
2024-09-26 00:54:23 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-09-26 00:54:44 +0200 | paddymahoney | (~paddymaho@pool-99-250-10-137.cpe.net.cable.rogers.com) |
2024-09-26 00:55:56 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 00:56:25 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 00:59:07 +0200 | rdcdr_ | rdcdr |
2024-09-26 01:01:11 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
2024-09-26 01:01:12 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 246 seconds) |
2024-09-26 01:04:15 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2024-09-26 01:06:57 +0200 | acidjnk | (~acidjnk@p200300d6e72cfb01cd8bad668f11f045.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
2024-09-26 01:10:34 +0200 | athan | (~athan@2600:382:2d19:73c:a48e:d16f:56f:3204) (Ping timeout: 260 seconds) |
2024-09-26 01:12:09 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 01:13:51 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 01:17:16 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-09-26 01:18:17 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 255 seconds) |
2024-09-26 01:27:56 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 01:31:30 +0200 | sawilagar | (~sawilagar@user/sawilagar) (Ping timeout: 244 seconds) |
2024-09-26 01:32:42 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-09-26 01:34:51 +0200 | comonad | (~comonad@p200300d02705e800d14b563ba919432f.dip0.t-ipconnect.de) (Ping timeout: 276 seconds) |
2024-09-26 01:36:13 +0200 | comonad | (~comonad@p200300d02711e6001d93b8c5b2241d7f.dip0.t-ipconnect.de) |
2024-09-26 01:43:43 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 01:46:57 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) raehik |
2024-09-26 01:47:09 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
2024-09-26 01:48:31 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 01:48:37 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-09-26 01:49:26 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-09-26 01:57:50 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
2024-09-26 01:59:30 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 01:59:31 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
2024-09-26 02:07:03 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
2024-09-26 02:09:46 +0200 | athan | (~athan@syn-098-153-145-140.biz.spectrum.com) athan |
2024-09-26 02:12:30 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 02:12:52 +0200 | pavonia | (~user@user/siracusa) (Ping timeout: 252 seconds) |
2024-09-26 02:18:05 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 02:23:19 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-09-26 02:23:54 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 260 seconds) |
2024-09-26 02:26:30 +0200 | Smiles | (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2024-09-26 02:29:06 +0200 | pavonia | (~user@user/siracusa) siracusa |
2024-09-26 02:35:34 +0200 | xff0x | (~xff0x@2405:6580:b080:900:bae7:541b:79b5:8d8e) (Ping timeout: 260 seconds) |
2024-09-26 02:38:01 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 02:38:11 +0200 | identity | (~identity@user/ZharMeny) (Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.4)) |
2024-09-26 02:39:49 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds) |
2024-09-26 02:41:05 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 252 seconds) |
2024-09-26 02:43:03 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 246 seconds) |
2024-09-26 02:49:39 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 02:54:40 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-09-26 02:58:43 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 03:00:44 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) L29Ah |
2024-09-26 03:02:57 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 244 seconds) |
2024-09-26 03:05:27 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 03:10:26 +0200 | ystael | (~ystael@user/ystael) (Read error: Connection reset by peer) |
2024-09-26 03:10:34 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-09-26 03:13:51 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 03:19:29 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 260 seconds) |
2024-09-26 03:21:14 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 03:23:14 +0200 | synchromesh | (~john@2406:5a00:241a:5600:ac18:5792:28a:df5a) (Read error: Connection reset by peer) |
2024-09-26 03:24:16 +0200 | synchromesh | (~john@2406:5a00:241a:5600:2de5:ba26:2eef:9155) synchromesh |
2024-09-26 03:25:49 +0200 | sourcetarius | (~sourcetar@user/sourcetarius) sourcetarius |
2024-09-26 03:26:06 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-09-26 03:26:07 +0200 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
2024-09-26 03:33:26 +0200 | juri_ | (~juri@implicitcad.org) (Ping timeout: 244 seconds) |
2024-09-26 03:33:57 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 03:35:59 +0200 | dontdieych2 | (~quassel@user/dontdieych2) dontdieych2 |
2024-09-26 03:37:01 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 03:38:14 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 255 seconds) |
2024-09-26 03:42:15 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-09-26 03:47:11 +0200 | troojg | (~troojg@user/troojg) troojg |
2024-09-26 03:51:45 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 03:52:47 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 03:56:01 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 248 seconds) |
2024-09-26 03:57:37 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-09-26 03:58:04 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 04:03:03 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-09-26 04:08:58 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 04:10:59 +0200 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2024-09-26 04:13:43 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 04:16:19 +0200 | td_ | (~td@i5387090E.versanet.de) (Ping timeout: 264 seconds) |
2024-09-26 04:17:36 +0200 | td_ | (~td@i53870912.versanet.de) td_ |
2024-09-26 04:18:43 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
2024-09-26 04:19:28 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 04:24:04 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-09-26 04:34:57 +0200 | troojg | (~troojg@user/troojg) (Ping timeout: 248 seconds) |
2024-09-26 04:35:10 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 04:36:13 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 245 seconds) |
2024-09-26 04:40:16 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-09-26 04:43:01 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
2024-09-26 04:50:57 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 04:52:07 +0200 | glguy | (glguy@libera/staff/glguy) (Ping timeout: 624 seconds) |
2024-09-26 04:52:18 +0200 | tv | (~tv@user/tv) (Quit: derp) |
2024-09-26 04:54:08 +0200 | tv | (~tv@user/tv) tv |
2024-09-26 04:56:05 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
2024-09-26 04:56:13 +0200 | athan | (~athan@syn-098-153-145-140.biz.spectrum.com) (Quit: Konversation terminated!) |
2024-09-26 05:04:21 +0200 | rosco | (~rosco@175.136.158.234) rosco |
2024-09-26 05:04:43 +0200 | swamp_ | (~zmt00@user/zmt00) (Read error: Connection reset by peer) |
2024-09-26 05:06:45 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 05:11:47 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-09-26 05:16:47 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 05:20:54 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 246 seconds) |
2024-09-26 05:21:20 +0200 | paddymahoney | (~paddymaho@pool-99-250-10-137.cpe.net.cable.rogers.com) (Ping timeout: 252 seconds) |
2024-09-26 05:22:32 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 05:23:46 +0200 | zmt00 | (~zmt00@user/zmt00) zmt00 |
2024-09-26 05:27:03 +0200 | paddymahoney | (~paddymaho@pool-99-250-10-137.cpe.net.cable.rogers.com) |
2024-09-26 05:27:28 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
2024-09-26 05:27:51 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) () |
2024-09-26 05:29:46 +0200 | <dmj`> | there needs to be a paper on how typeclass entailment was implemented using outsidein(x) |
2024-09-26 05:34:57 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 05:38:19 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 05:39:40 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
2024-09-26 05:39:43 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds) |
2024-09-26 05:40:10 +0200 | athan | (~athan@syn-098-153-145-140.biz.spectrum.com) athan |
2024-09-26 05:40:24 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
2024-09-26 05:41:03 +0200 | Lord_of_Life_ | Lord_of_Life |
2024-09-26 05:43:20 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-09-26 05:47:50 +0200 | glguy | (glguy@libera/staff/glguy) glguy |
2024-09-26 05:53:47 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 05:58:21 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
2024-09-26 05:59:09 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 06:03:36 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-09-26 06:07:07 +0200 | lol_ | jcarpenter2 |
2024-09-26 06:12:20 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 06:14:45 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 06:19:48 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-09-26 06:30:19 +0200 | meritamen | (~user@user/meritamen) meritamen |
2024-09-26 06:30:32 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 06:30:43 +0200 | spew | (~spew@201.141.99.170) spew |
2024-09-26 06:31:57 +0200 | fun-safe-math | (~fun-safe-@24.21.106.247) (Ping timeout: 246 seconds) |
2024-09-26 06:33:35 +0200 | meritamen | (~user@user/meritamen) (Client Quit) |
2024-09-26 06:33:35 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) L29Ah |
2024-09-26 06:35:27 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-09-26 06:38:17 +0200 | michalz | (~michalz@185.246.207.200) |
2024-09-26 06:38:47 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2024-09-26 06:46:18 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 06:46:20 +0200 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2024-09-26 06:51:01 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-09-26 06:52:53 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-09-26 06:57:29 +0200 | rosco | (~rosco@175.136.158.234) (Quit: Lost terminal) |
2024-09-26 06:59:57 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 07:03:02 +0200 | spew | (~spew@201.141.99.170) (Quit: spew) |
2024-09-26 07:04:51 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-09-26 07:05:20 +0200 | marinelli | (~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli) |
2024-09-26 07:10:38 +0200 | misterfish | (~misterfis@84.53.85.146) misterfish |
2024-09-26 07:11:28 +0200 | rosco | (~rosco@175.136.158.234) rosco |
2024-09-26 07:14:34 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 244 seconds) |
2024-09-26 07:15:44 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 07:20:29 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-09-26 07:30:07 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2024-09-26 07:30:17 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) () |
2024-09-26 07:31:31 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 07:31:44 +0200 | dontdieych2 | (~quassel@user/dontdieych2) (Read error: Connection reset by peer) |
2024-09-26 07:32:26 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 07:34:19 +0200 | Guest6 | (~Guest6@190.17.179.95) |
2024-09-26 07:35:21 +0200 | Guest6 | (~Guest6@190.17.179.95) (Client Quit) |
2024-09-26 07:36:12 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-09-26 07:38:45 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
2024-09-26 07:46:56 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 07:48:21 +0200 | ubert | (~Thunderbi@178.165.177.214.wireless.dyn.drei.com) ubert |
2024-09-26 07:48:46 +0200 | Square3 | (~Square4@user/square) (Ping timeout: 265 seconds) |
2024-09-26 07:51:46 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-09-26 07:54:01 +0200 | acidjnk | (~acidjnk@p200300d6e72cfb33a563052759f358da.dip0.t-ipconnect.de) acidjnk |
2024-09-26 08:00:57 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 08:01:48 +0200 | alp_ | (~alp@2001:861:e3d6:8f80:7a01:1d08:ba91:82c0) |
2024-09-26 08:03:30 +0200 | alp_ | (~alp@2001:861:e3d6:8f80:7a01:1d08:ba91:82c0) (Client Quit) |
2024-09-26 08:03:49 +0200 | alp_ | (~alp@2001:861:e3d6:8f80:7a01:1d08:ba91:82c0) |
2024-09-26 08:04:30 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Quit: peterbecich) |
2024-09-26 08:04:46 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-09-26 08:05:41 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-09-26 08:09:08 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 08:10:00 +0200 | misterfish | (~misterfis@84.53.85.146) (Ping timeout: 252 seconds) |
2024-09-26 08:13:18 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
2024-09-26 08:16:44 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 08:18:25 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 248 seconds) |
2024-09-26 08:20:55 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-09-26 08:21:44 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
2024-09-26 08:23:34 +0200 | lucy | (~lucy@user/lucy) (Ping timeout: 252 seconds) |
2024-09-26 08:25:27 +0200 | lucy | (~lucy@user/lucy) lucy |
2024-09-26 08:32:32 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 08:37:35 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-09-26 08:39:16 +0200 | oneeyedalien | (~oneeyedal@user/oneeyedalien) oneeyedalien |
2024-09-26 08:48:18 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 08:49:04 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 08:51:37 +0200 | jinsun | (~jinsun@user/jinsun) jinsun |
2024-09-26 08:52:50 +0200 | ft | (~ft@p4fc2acce.dip0.t-ipconnect.de) (Quit: leaving) |
2024-09-26 08:53:44 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-09-26 08:55:29 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 260 seconds) |
2024-09-26 08:59:25 +0200 | misterfish | (~misterfis@87.215.131.102) misterfish |
2024-09-26 08:59:37 +0200 | hsw | (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Quit: Leaving) |
2024-09-26 09:00:04 +0200 | caconym | (~caconym@user/caconym) (Quit: bye) |
2024-09-26 09:00:41 +0200 | caconym | (~caconym@user/caconym) caconym |
2024-09-26 09:01:57 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 09:07:19 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds) |
2024-09-26 09:09:06 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2024-09-26 09:09:28 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 09:14:10 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-09-26 09:19:14 +0200 | alicia-it | (~alicia-it@91.254.20.157) |
2024-09-26 09:20:00 +0200 | alicia-it | (~alicia-it@91.254.20.157) () |
2024-09-26 09:23:53 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Quit: ljdarj) |
2024-09-26 09:26:27 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 09:27:49 +0200 | yoneda | (~mike@193.206.102.122) |
2024-09-26 09:32:04 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 260 seconds) |
2024-09-26 09:45:00 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2024-09-26 09:46:11 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 09:48:08 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac |
2024-09-26 09:52:36 +0200 | CiaoSen | (~Jura@2a05:5800:2ec:ac00:ca4b:d6ff:fec1:99da) CiaoSen |
2024-09-26 09:54:10 +0200 | gmg | (~user@user/gehmehgeh) gehmehgeh |
2024-09-26 09:57:28 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 245 seconds) |
2024-09-26 10:00:45 +0200 | alp_ | (~alp@2001:861:e3d6:8f80:7a01:1d08:ba91:82c0) (Remote host closed the connection) |
2024-09-26 10:01:31 +0200 | merijn | (~merijn@77.242.116.146) merijn |
2024-09-26 10:02:08 +0200 | oneeyedalien | (~oneeyedal@user/oneeyedalien) (Quit: Leaving) |
2024-09-26 10:02:46 +0200 | alp_ | (~alp@2001:861:e3d6:8f80:7a01:1d08:ba91:82c0) |
2024-09-26 10:03:26 +0200 | lxsameer | (~lxsameer@Serene/lxsameer) lxsameer |
2024-09-26 10:11:32 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 10:16:40 +0200 | rosco | (~rosco@175.136.158.234) (Quit: Lost terminal) |
2024-09-26 10:17:09 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 260 seconds) |
2024-09-26 10:24:06 +0200 | econo_ | (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
2024-09-26 10:26:48 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 246 seconds) |
2024-09-26 10:27:43 +0200 | Smiles | (uid551636@id-551636.lymington.irccloud.com) Smiles |
2024-09-26 10:32:02 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 10:35:00 +0200 | euandreh | (~Thunderbi@189.6.105.228) (Ping timeout: 276 seconds) |
2024-09-26 10:36:30 +0200 | euandreh | (~Thunderbi@189.6.105.228) euandreh |
2024-09-26 10:37:38 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 248 seconds) |
2024-09-26 10:39:51 +0200 | mrmonday | (~robert@2a01:7e00:e000:1b2:95ca:100:49e0:3f15) (Quit: .) |
2024-09-26 10:41:10 +0200 | mrmonday | (~robert@what.i.hope.is.not.a.tabernaevagant.es) mrmonday |
2024-09-26 10:41:42 +0200 | murgeljm | (~murgeljm@APN-122-12-44-gprs.simobil.net) murgeljm |
2024-09-26 10:49:12 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) raehik |
2024-09-26 10:49:33 +0200 | cfricke | (~cfricke@user/cfricke) cfricke |
2024-09-26 10:51:34 +0200 | Franciman | (~Franciman@mx1.fracta.dev) (Ping timeout: 244 seconds) |
2024-09-26 10:55:32 +0200 | murgeljm | (~murgeljm@APN-122-12-44-gprs.simobil.net) (Read error: Connection reset by peer) |
2024-09-26 10:58:21 +0200 | Franciman | (~Franciman@mx1.fracta.dev) Franciman |
2024-09-26 10:59:57 +0200 | sawilagar | (~sawilagar@user/sawilagar) sawilagar |
2024-09-26 11:06:51 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 11:07:53 +0200 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
2024-09-26 11:11:33 +0200 | lucy | (~lucy@user/lucy) (Read error: Connection reset by peer) |
2024-09-26 11:12:21 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 248 seconds) |
2024-09-26 11:14:48 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 252 seconds) |
2024-09-26 11:16:00 +0200 | __monty__ | (~toonn@user/toonn) toonn |
2024-09-26 11:17:06 +0200 | misterfish | (~misterfis@87.215.131.102) (Ping timeout: 252 seconds) |
2024-09-26 11:17:21 +0200 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) szkl |
2024-09-26 11:18:56 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-09-26 11:20:08 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) Raito_Bezarius |
2024-09-26 11:23:57 +0200 | misterfish | (~misterfis@87.215.131.102) misterfish |
2024-09-26 11:24:07 +0200 | merijn | (~merijn@77.242.116.146) (Ping timeout: 244 seconds) |
2024-09-26 11:24:41 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded) |
2024-09-26 11:26:49 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 11:26:56 +0200 | Digitteknohippie | (~user@user/digit) Digit |
2024-09-26 11:27:43 +0200 | Digit | (~user@user/digit) (Ping timeout: 264 seconds) |
2024-09-26 11:30:57 +0200 | merijn | (~merijn@77.242.116.146) merijn |
2024-09-26 11:31:19 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 264 seconds) |
2024-09-26 11:31:57 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2024-09-26 11:36:10 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) L29Ah |
2024-09-26 11:37:57 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-09-26 11:40:50 +0200 | merijn | (~merijn@77.242.116.146) (Ping timeout: 252 seconds) |
2024-09-26 11:41:34 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) Raito_Bezarius |
2024-09-26 11:43:42 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2) |
2024-09-26 11:43:42 +0200 | merijn | (~merijn@77.242.116.146) merijn |
2024-09-26 11:45:50 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 11:46:05 +0200 | Digitteknohippie | Digit |
2024-09-26 11:49:36 +0200 | CiaoSen | (~Jura@2a05:5800:2ec:ac00:ca4b:d6ff:fec1:99da) (Ping timeout: 272 seconds) |
2024-09-26 11:49:59 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
2024-09-26 11:50:12 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2024-09-26 11:50:19 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 260 seconds) |
2024-09-26 12:02:09 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 12:07:15 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 246 seconds) |
2024-09-26 12:09:44 +0200 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 260 seconds) |
2024-09-26 12:09:47 +0200 | merijn | (~merijn@77.242.116.146) (Ping timeout: 252 seconds) |
2024-09-26 12:11:42 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 265 seconds) |
2024-09-26 12:14:25 +0200 | ouroboros | (~ouroboros@user/ouroboros) (Quit: Bye.) |
2024-09-26 12:14:25 +0200 | acro | (~acro@user/acro) (Quit: Bye.) |
2024-09-26 12:15:45 +0200 | acro | (~acro@user/acro) acro |
2024-09-26 12:17:17 +0200 | ouroboros | (~ouroboros@user/ouroboros) ouroboros |
2024-09-26 12:17:27 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) raehik |
2024-09-26 12:19:25 +0200 | merijn | (~merijn@77.242.116.146) merijn |
2024-09-26 12:20:42 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 12:25:20 +0200 | picnoir | (~picnoir@about/aquilenet/vodoo/NinjaTrappeur) (Quit: WeeChat 4.4.2) |
2024-09-26 12:26:57 +0200 | picnoir | (~picnoir@about/aquilenet/vodoo/NinjaTrappeur) NinjaTrappeur |
2024-09-26 12:39:47 +0200 | Guest76 | (~Guest76@e175029.upc-e.chello.nl) |
2024-09-26 12:41:53 +0200 | Guest76 | (~Guest76@e175029.upc-e.chello.nl) (Client Quit) |
2024-09-26 12:43:33 +0200 | merijn | (~merijn@77.242.116.146) (Ping timeout: 248 seconds) |
2024-09-26 12:43:43 +0200 | misterfish | (~misterfis@87.215.131.102) (Ping timeout: 245 seconds) |
2024-09-26 12:44:19 +0200 | misterfish | (~misterfis@87.215.131.102) misterfish |
2024-09-26 12:50:43 +0200 | merijn | (~merijn@77.242.116.146) merijn |
2024-09-26 12:56:17 +0200 | merijn | (~merijn@77.242.116.146) (Ping timeout: 248 seconds) |
2024-09-26 12:57:16 +0200 | merijn | (~merijn@77.242.116.146) merijn |
2024-09-26 12:58:30 +0200 | identity | (~identity@user/ZharMeny) identity |
2024-09-26 12:59:38 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac |
2024-09-26 13:00:04 +0200 | caconym | (~caconym@user/caconym) (Quit: bye) |
2024-09-26 13:01:09 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 248 seconds) |
2024-09-26 13:02:34 +0200 | caconym | (~caconym@user/caconym) caconym |
2024-09-26 13:05:44 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 260 seconds) |
2024-09-26 13:14:52 +0200 | xff0x | (~xff0x@2405:6580:b080:900:edb3:3e3f:7e00:b65b) |
2024-09-26 13:16:42 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-09-26 13:19:37 +0200 | hgolden_ | (~hgolden@204.152.216.106) hgolden |
2024-09-26 13:22:02 +0200 | hgolden | (~hgolden@23.162.40.28) (Ping timeout: 252 seconds) |
2024-09-26 13:35:33 +0200 | CiaoSen | (~Jura@2a05:5800:2ec:ac00:ca4b:d6ff:fec1:99da) CiaoSen |
2024-09-26 13:36:47 +0200 | Smiles | (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2024-09-26 13:42:23 +0200 | cfricke | (~cfricke@user/cfricke) cfricke |
2024-09-26 13:44:39 +0200 | synchromesh | (~john@2406:5a00:241a:5600:2de5:ba26:2eef:9155) (Read error: Connection reset by peer) |
2024-09-26 13:44:46 +0200 | misterfish | (~misterfis@87.215.131.102) (Ping timeout: 252 seconds) |
2024-09-26 13:45:52 +0200 | synchromesh | (~john@2406:5a00:241a:5600:2de5:ba26:2eef:9155) synchromesh |
2024-09-26 13:46:41 +0200 | misterfish | (~misterfis@178.229.81.197) misterfish |
2024-09-26 13:48:20 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2024-09-26 13:53:41 +0200 | fgaz_ | (1ff9197ed6@2a03:6000:1812:100::11ea) (Remote host closed the connection) |
2024-09-26 13:53:47 +0200 | fgaz_ | (1ff9197ed6@2a03:6000:1812:100::11ea) fgaz |
2024-09-26 14:10:09 +0200 | misterfish | (~misterfis@178.229.81.197) (Ping timeout: 276 seconds) |
2024-09-26 14:10:29 +0200 | alioguzhan | (~Thunderbi@78.173.89.238) (Quit: alioguzhan) |
2024-09-26 14:10:47 +0200 | alioguzhan | (~Thunderbi@78.173.89.238) |
2024-09-26 14:11:32 +0200 | misterfish | (~misterfis@87.215.131.102) misterfish |
2024-09-26 14:13:09 +0200 | sawilagar | (~sawilagar@user/sawilagar) (Remote host closed the connection) |
2024-09-26 14:13:33 +0200 | sawilagar | (~sawilagar@user/sawilagar) sawilagar |
2024-09-26 14:14:44 +0200 | michalz | (~michalz@185.246.207.200) (Read error: Connection reset by peer) |
2024-09-26 14:15:17 +0200 | michalz | (~michalz@185.246.207.193) |
2024-09-26 14:16:40 +0200 | Smiles | (uid551636@id-551636.lymington.irccloud.com) Smiles |
2024-09-26 14:19:35 +0200 | ljdarj | (~holoirc@37.165.175.135) |
2024-09-26 14:19:35 +0200 | ljdarj | (~holoirc@37.165.175.135) (Changing host) |
2024-09-26 14:19:35 +0200 | ljdarj | (~holoirc@user/ljdarj) ljdarj |
2024-09-26 14:19:55 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
2024-09-26 14:30:20 +0200 | misterfish | (~misterfis@87.215.131.102) (Read error: Connection reset by peer) |
2024-09-26 14:32:39 +0200 | misterfish | (~misterfis@87.215.131.102) misterfish |
2024-09-26 14:36:38 +0200 | akegalj | (~akegalj@231-112.dsl.iskon.hr) akegalj |
2024-09-26 14:38:12 +0200 | ljdarj | (~holoirc@user/ljdarj) (Read error: Connection reset by peer) |
2024-09-26 14:38:13 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 14:39:38 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-09-26 14:42:00 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 276 seconds) |
2024-09-26 14:43:21 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 246 seconds) |
2024-09-26 14:44:21 +0200 | <akegalj> | what is recomended way to create haskell tags? I see ghc-tags and hasktags as options |
2024-09-26 14:46:21 +0200 | ljdarj | (~holoirc@user/ljdarj) ljdarj |
2024-09-26 14:46:23 +0200 | machinedgod | (~machinedg@d50-99-47-73.abhsia.telus.net) machinedgod |
2024-09-26 14:49:46 +0200 | <__monty__> | You mean ctags but Haskell? I still use fast-tags. |
2024-09-26 14:55:30 +0200 | ljdarj | (~holoirc@user/ljdarj) (Read error: Connection reset by peer) |
2024-09-26 14:56:08 +0200 | <akegalj> | __monty__: yes. Will have a look at fast-tags. ty |
2024-09-26 14:57:09 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
2024-09-26 14:57:37 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 14:59:10 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) raehik |
2024-09-26 15:00:20 +0200 | weary-traveler | (~user@user/user363627) user363627 |
2024-09-26 15:00:29 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
2024-09-26 15:01:39 +0200 | <zzz> | since when is `(a,b) :: (Float,Float)` an invalid type signature? |
2024-09-26 15:02:04 +0200 | ljdarj | (~holoirc@37.165.175.135) |
2024-09-26 15:02:05 +0200 | ljdarj | (~holoirc@37.165.175.135) (Changing host) |
2024-09-26 15:02:05 +0200 | ljdarj | (~holoirc@user/ljdarj) ljdarj |
2024-09-26 15:02:40 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 244 seconds) |
2024-09-26 15:03:23 +0200 | lucy_ | (~lucy@user/lucy) lucy |
2024-09-26 15:04:55 +0200 | <ncf> | ç„¡ |
2024-09-26 15:05:25 +0200 | <__monty__> | zzz: In what context? |
2024-09-26 15:05:31 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 15:05:56 +0200 | <__monty__> | :t (1.0,1.0) :: (Float,Float) -- is perfectly valid |
2024-09-26 15:05:57 +0200 | <lambdabot> | (Float, Float) |
2024-09-26 15:06:12 +0200 | spew | (~spew@201.141.99.170) spew |
2024-09-26 15:07:16 +0200 | merijn | (~merijn@77.242.116.146) (Ping timeout: 252 seconds) |
2024-09-26 15:08:13 +0200 | <ski> | it's a valid type ascription, not a valid type signature |
2024-09-26 15:08:37 +0200 | <zzz> | __monty__: at the top level. u usually write stuff like `(a,b,c) :: (Int,Word,Whatever) ; (a,b,c) = (1,2,3)` and i never got this error |
2024-09-26 15:09:02 +0200 | <zzz> | s/u/I |
2024-09-26 15:09:03 +0200 | <ski> | > let (a,b) :: (Float,Float); a = 0; b = 1 in b - a |
2024-09-26 15:09:05 +0200 | <lambdabot> | <hint>:1:5: error: |
2024-09-26 15:09:05 +0200 | <lambdabot> | Invalid type signature: (a, b) :: ... |
2024-09-26 15:09:05 +0200 | <lambdabot> | Should be of form <variable> :: <type> |
2024-09-26 15:09:06 +0200 | <ski> | > let (a,b) :: (Float,Float); (a,b) = (0,1) in b - a |
2024-09-26 15:09:08 +0200 | <lambdabot> | <hint>:1:5: error: |
2024-09-26 15:09:08 +0200 | <lambdabot> | Invalid type signature: (a, b) :: ... |
2024-09-26 15:09:08 +0200 | <lambdabot> | Should be of form <variable> :: <type> |
2024-09-26 15:09:50 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
2024-09-26 15:10:03 +0200 | <ski> | > let a,b :: Float; (a,b) = (0,1) in snd ((a,b) :: (Float,Float)) - fst ((a,b) :: (Float,Float)) |
2024-09-26 15:10:05 +0200 | <lambdabot> | 1.0 |
2024-09-26 15:11:11 +0200 | ljdarj | (~holoirc@user/ljdarj) (Read error: Connection reset by peer) |
2024-09-26 15:11:29 +0200 | merijn | (~merijn@77.242.116.146) merijn |
2024-09-26 15:13:52 +0200 | <ski> | a type signature has a sequence of *identifiers* separated by commas, to the left of PAAMAYIM_NEKUDOTAYIM |
2024-09-26 15:13:56 +0200 | <ski> | (aka `::') |
2024-09-26 15:15:43 +0200 | ljdarj | (~holoirc@37.165.175.135) |
2024-09-26 15:15:43 +0200 | ljdarj | (~holoirc@37.165.175.135) (Changing host) |
2024-09-26 15:15:43 +0200 | ljdarj | (~holoirc@user/ljdarj) ljdarj |
2024-09-26 15:16:00 +0200 | <ski> | (using `.. :: ..' as a declaration, this is a type signature. using `.. :: ..' as an expression (or pattern), this is a type ascription) |
2024-09-26 15:17:20 +0200 | michalz | (~michalz@185.246.207.193) (Ping timeout: 272 seconds) |
2024-09-26 15:17:42 +0200 | ystael | (~ystael@user/ystael) ystael |
2024-09-26 15:17:56 +0200 | michalz | (~michalz@185.246.207.221) |
2024-09-26 15:18:41 +0200 | Digitteknohippie | (~user@user/digit) Digit |
2024-09-26 15:19:19 +0200 | Digit | (~user@user/digit) (Ping timeout: 260 seconds) |
2024-09-26 15:21:19 +0200 | <zzz> | i understand. even so, i'm almost sure i've done it before |
2024-09-26 15:21:29 +0200 | <zzz> | maybe i'm mistaken |
2024-09-26 15:24:04 +0200 | lucy_ | (~lucy@user/lucy) (Ping timeout: 265 seconds) |
2024-09-26 15:24:43 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 15:25:14 +0200 | <zzz> | is there a reason something like `(a,b) :: (Float,Float) = (0,1)` shouldn't suppress a "missing signature" warning? |
2024-09-26 15:25:43 +0200 | lucy | (~lucy@user/lucy) lucy |
2024-09-26 15:25:45 +0200 | <zzz> | a _good_ reason... ? |
2024-09-26 15:28:51 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 246 seconds) |
2024-09-26 15:32:48 +0200 | <ski> | hm, i suppose one could imagine allowing a sequence of patterns, to the left of the `::' in a type signature |
2024-09-26 15:34:36 +0200 | athan | (~athan@syn-098-153-145-140.biz.spectrum.com) (Quit: Konversation terminated!) |
2024-09-26 15:34:39 +0200 | <ski> | .. although, i guess that would be awkward with existential data constructors, in that you'd not necessarily specify the whole types of the involved variables. but that's already the case with wildcards in signatures |
2024-09-26 15:35:56 +0200 | <ski> | one reason could be that allowing just identifiers is the conservative choice. allowing a sequence of identifiers can be useful to avoid repeating the type for a series of operations of the same type |
2024-09-26 15:39:56 +0200 | ljdarj | (~holoirc@user/ljdarj) (Read error: Connection reset by peer) |
2024-09-26 15:40:46 +0200 | ljdarj | (~holoirc@user/ljdarj) ljdarj |
2024-09-26 15:42:57 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 15:45:24 +0200 | Digitteknohippie | Digit |
2024-09-26 15:46:37 +0200 | ljdarj | (~holoirc@user/ljdarj) (Quit: ljdarj) |
2024-09-26 15:48:43 +0200 | ljdarj | (~ljdarj@user/ljdarj) ljdarj |
2024-09-26 15:50:27 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
2024-09-26 15:50:45 +0200 | ljdarj | (~ljdarj@user/ljdarj) (Remote host closed the connection) |
2024-09-26 15:51:13 +0200 | <tomsmeding> | zzz: that depends on the types involved. Knowing the result type of a constructor does not necessarily mean that you know the types of the fields also |
2024-09-26 15:51:19 +0200 | <tomsmeding> | data Exists f where Exists :: f a -> Exists f |
2024-09-26 15:51:37 +0200 | <tomsmeding> | then `Exists x :: Exists Maybe = Just 42` does not pin down what the type of x is |
2024-09-26 15:52:20 +0200 | <tomsmeding> | sure, in your example it does. But Haskell's type system tends to prefer reasoning about the general case rather than optimising for specific cases |
2024-09-26 15:53:12 +0200 | ski | gesticulates wildly |
2024-09-26 15:53:32 +0200 | <tomsmeding> | ski: am I spouting nonsense again? |
2024-09-26 15:53:36 +0200 | <ski> | nah :) |
2024-09-26 15:53:51 +0200 | <ski> | just spelling it out more thoroughly |
2024-09-26 15:54:29 +0200 | <tomsmeding> | oh I didn't even properly read your second message lol, sorry |
2024-09-26 15:54:32 +0200 | <tomsmeding> | this is precisely what you were saying |
2024-09-26 15:58:24 +0200 | <zzz> | tomsmeding: good point |
2024-09-26 15:59:27 +0200 | <zzz> | ski: good point ;) |
2024-09-26 15:59:57 +0200 | <ski> | map (\(_ :: a) -> _ :: b) (_ :: [a]) :: [b] -- C-style prototypes, for Haskell ! |
2024-09-26 16:00:38 +0200 | <ski> | (replace the `_'s to identifiers indicating the respective rôles, if you prefer) |
2024-09-26 16:01:28 +0200 | <zzz> | my proposal would also allow for nonesense like `Nothing :: Maybe Int` to be silently accepted |
2024-09-26 16:01:43 +0200 | <tomsmeding> | ski: that notation would also extend nicely to Pi types :) |
2024-09-26 16:02:00 +0200 | <tomsmeding> | > let Nothing :: Maybe Int = Nothing in 42 |
2024-09-26 16:02:02 +0200 | <lambdabot> | 42 |
2024-09-26 16:02:08 +0200 | <tomsmeding> | ghc doesn't think it's nonsense |
2024-09-26 16:02:17 +0200 | <tomsmeding> | but it gets better: |
2024-09-26 16:02:18 +0200 | <ski> | that's a pattern signature, though |
2024-09-26 16:02:21 +0200 | <tomsmeding> | > let Nothing :: Maybe Int = Just 12 in 42 |
2024-09-26 16:02:23 +0200 | <lambdabot> | 42 |
2024-09-26 16:02:29 +0200 | <zzz> | that's not a type signature |
2024-09-26 16:03:04 +0200 | <zzz> | wait what? |
2024-09-26 16:03:18 +0200 | <tomsmeding> | (haskell is a lazy language) |
2024-09-26 16:03:24 +0200 | <zzz> | ah, let bindings are irrefutable, is that it? |
2024-09-26 16:03:42 +0200 | <tomsmeding> | indeed |
2024-09-26 16:03:44 +0200 | <ski> | > let f ~Nothing = () in f (Just 2) |
2024-09-26 16:03:44 +0200 | <tomsmeding> | i.e. lazy |
2024-09-26 16:03:45 +0200 | <lambdabot> | () |
2024-09-26 16:03:47 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 16:03:56 +0200 | <tomsmeding> | > let x@Nothing :: Maybe Int = Just 12 in x |
2024-09-26 16:03:57 +0200 | <lambdabot> | *Exception: <interactive>:3:5-36: Non-exhaustive patterns in x@Nothing :: Ma... |
2024-09-26 16:04:05 +0200 | <ski> | > let !Nothing = Just 2 in () |
2024-09-26 16:04:07 +0200 | <lambdabot> | *Exception: <interactive>:3:5-21: Non-exhaustive patterns in Nothing |
2024-09-26 16:04:22 +0200 | gensyst | (~gensyst@user/gensyst) gensyst |
2024-09-26 16:06:14 +0200 | gensyst | (~gensyst@user/gensyst) (Client Quit) |
2024-09-26 16:06:46 +0200 | <zzz> | i used to think Haskell is confusing. i still do, but i used to too. |
2024-09-26 16:07:53 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 245 seconds) |
2024-09-26 16:08:18 +0200 | <zzz> | luckily, correctness makes up for it |
2024-09-26 16:15:43 +0200 | <EvanR> | if something is logical and follows its own rules, then confusing is my own fault xD |
2024-09-26 16:15:51 +0200 | <EvanR> | unlike many programming languages |
2024-09-26 16:16:37 +0200 | <ski> | @type confusing |
2024-09-26 16:16:38 +0200 | <lambdabot> | Applicative f => LensLike (Data.Functor.Day.Curried.Curried (Data.Functor.Yoneda.Yoneda f) (Data.Functor.Yoneda.Yoneda f)) s t a b -> LensLike f s t a b |
2024-09-26 16:20:07 +0200 | alp__ | (~alp@2001:861:e3d6:8f80:538:d7bb:b13e:aad) |
2024-09-26 16:21:34 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 16:21:41 +0200 | alp_ | (~alp@2001:861:e3d6:8f80:7a01:1d08:ba91:82c0) (Ping timeout: 248 seconds) |
2024-09-26 16:26:47 +0200 | akegalj | (~akegalj@231-112.dsl.iskon.hr) (Quit: leaving) |
2024-09-26 16:31:55 +0200 | CiaoSen | (~Jura@2a05:5800:2ec:ac00:ca4b:d6ff:fec1:99da) (Ping timeout: 264 seconds) |
2024-09-26 16:32:48 +0200 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
2024-09-26 16:34:56 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 255 seconds) |
2024-09-26 16:37:16 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-09-26 16:41:07 +0200 | alp__ | (~alp@2001:861:e3d6:8f80:538:d7bb:b13e:aad) (Quit: Leaving) |
2024-09-26 16:41:38 +0200 | <Inst> | iirc unsafeIOtoST is unsafe for more reasons than just effectively being unsafePerformIO |
2024-09-26 16:41:50 +0200 | <Inst> | but is unsafeIOtoST an idiomatic way to do unsafePerformIO? |
2024-09-26 16:49:21 +0200 | flounders | (~flounders@173.246.214.210) (Ping timeout: 246 seconds) |
2024-09-26 16:50:59 +0200 | <EvanR> | is it an idiomatic way to safely do unsafePerformIO, no but it would be safe. E.g. if the IO action you're doing has no side effects and is "reentrant" etc |
2024-09-26 16:51:21 +0200 | <EvanR> | otherwise it's just as unsafe |
2024-09-26 16:51:33 +0200 | flounders | (~flounders@2607:fb91:f40:c71f:8dda:e662:7d36:da1f) flounders |
2024-09-26 16:54:03 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2) |
2024-09-26 16:54:15 +0200 | alp_ | (~alp@2001:861:e3d6:8f80:538:d7bb:b13e:aad) |
2024-09-26 17:00:17 +0200 | sourcetarius | (~sourcetar@user/sourcetarius) (Quit: sourcetarius) |
2024-09-26 17:01:32 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 17:01:41 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 248 seconds) |
2024-09-26 17:03:35 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-09-26 17:05:23 +0200 | <Inst> | reentrant? |
2024-09-26 17:05:37 +0200 | <Inst> | tbh probably unsafePerformIO is better off just not being disguised |
2024-09-26 17:08:17 +0200 | <EvanR> | yes wrapping it in a runST doesn't change anything |
2024-09-26 17:08:57 +0200 | <EvanR> | Inst, if you want to safely use unsafePerformIO, the IO action you are unsafePerforming needs to be able to begin multiple times without completing, technically |
2024-09-26 17:09:29 +0200 | <EvanR> | as well as be technically pure |
2024-09-26 17:09:33 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 276 seconds) |
2024-09-26 17:10:09 +0200 | <EvanR> | like the C function sqrt |
2024-09-26 17:11:06 +0200 | <EvanR> | unlike a C function which mutates a static array of numbers |
2024-09-26 17:11:12 +0200 | <Inst> | yeah, i know, just wondering if there's idiomatic rules for using unsafePerformIO |
2024-09-26 17:11:20 +0200 | <Inst> | like, there's no documentation on how to idiomatically use trace (in debug code) |
2024-09-26 17:11:38 +0200 | <EvanR> | idiomatically, remove the traces before you ship your code |
2024-09-26 17:11:54 +0200 | <EvanR> | and those are the rules for unsafePerformIO |
2024-09-26 17:12:10 +0200 | <EvanR> | to be ignored probably |
2024-09-26 17:12:32 +0200 | <dolio> | The rule is: do not use unsafePerformIO. |
2024-09-26 17:12:39 +0200 | <Inst> | i rarely use unsafePerformIO, so i'm not using unsafePerformIO |
2024-09-26 17:12:54 +0200 | <EvanR> | interesting logic |
2024-09-26 17:12:59 +0200 | <Inst> | dolio: unless you're writing bytestring, then again, that's accursedUnutterablePerformIO |
2024-09-26 17:13:19 +0200 | <EvanR> | creating a new bytestring maybe |
2024-09-26 17:13:22 +0200 | <EvanR> | modifying an existing one? |
2024-09-26 17:13:30 +0200 | <EvanR> | there be dragons |
2024-09-26 17:13:53 +0200 | <Inst> | honestly the idea of abusing unsafePerformIO for side effects everywhere hurts my brain |
2024-09-26 17:14:01 +0200 | <EvanR> | and if you're creating a new one, you can use ST |
2024-09-26 17:14:15 +0200 | <Inst> | as i've said before, I used it to route a variable |
2024-09-26 17:14:33 +0200 | <Inst> | and as geekosaur pointed out, it was only more efficient because i probably had thunk pileups somewhere |
2024-09-26 17:14:35 +0200 | <dolio> | No. The authors of bytestring use it. |
2024-09-26 17:15:02 +0200 | <dolio> | Oh, I see. Yes. If you're an absolute expert, the general rule doesn't apply. |
2024-09-26 17:16:06 +0200 | <Inst> | but it's sort of hard to find out what's idiomatic for black magic functions / techniques |
2024-09-26 17:16:07 +0200 | <dolio> | Or, it doesn't always apply. |
2024-09-26 17:16:20 +0200 | misterfish | (~misterfis@87.215.131.102) (Ping timeout: 255 seconds) |
2024-09-26 17:16:27 +0200 | <EvanR> | yeah it's idiomatic to just not use those |
2024-09-26 17:16:37 +0200 | <EvanR> | don't use black magic |
2024-09-26 17:16:47 +0200 | <Inst> | like, since we almost always remove Debug.Trace from shipping production code, it's hard to see examples of best practices with Debug.Trace |
2024-09-26 17:16:56 +0200 | <EvanR> | haskell gets away with this idiom more than other languages |
2024-09-26 17:17:31 +0200 | <EvanR> | Debug.Trace is just like printf debugging |
2024-09-26 17:17:43 +0200 | <dolio> | Wrap your Debug.Trace in a function that checks a top-level 'debug' boolean. Then you don't need to remove it. |
2024-09-26 17:17:43 +0200 | <EvanR> | not a best practice |
2024-09-26 17:17:49 +0200 | <Inst> | except it's hooked into laziness, i.e, should you use let !_ = trace idiom |
2024-09-26 17:18:10 +0200 | <Inst> | You saw my attempt to create an annotated sum, right? |
2024-09-26 17:18:12 +0200 | <EvanR> | if you do that, you aren't testing the same code |
2024-09-26 17:18:29 +0200 | Square3 | (~Square4@user/square) Square |
2024-09-26 17:18:31 +0200 | <EvanR> | you're collapsing the wavefunction an attempt to see if lights a particle or a wave |
2024-09-26 17:18:34 +0200 | <EvanR> | in an |
2024-09-26 17:18:44 +0200 | lucy | (~lucy@user/lucy) (Ping timeout: 260 seconds) |
2024-09-26 17:18:46 +0200 | <Inst> | https://paste.tomsmeding.com/cyYgn3MX |
2024-09-26 17:18:51 +0200 | ski | . o O ( "Don't use $X, unless you know why not to use $X." ) |
2024-09-26 17:19:57 +0200 | <weary-traveler> | applies unconditionally to X, previously known as Twitter. |
2024-09-26 17:20:07 +0200 | <Inst> | heh |
2024-09-26 17:20:36 +0200 | lucy | (~lucy@user/lucy) lucy |
2024-09-26 17:21:01 +0200 | <Inst> | is demonstrativeSum a good exercise (of course it'll never be used in production)? |
2024-09-26 17:21:56 +0200 | <EvanR> | for visual debugging printing out things has issues, like if it's in a loop you see zillions of outputs |
2024-09-26 17:22:02 +0200 | <EvanR> | there have to be better ways |
2024-09-26 17:22:12 +0200 | <EvanR> | ghcvis |
2024-09-26 17:22:56 +0200 | <Inst> | bbut the code is broken, insofar as i'm hacking the evaluation order |
2024-09-26 17:23:15 +0200 | <Inst> | by forcing the externals to be printed before the internals |
2024-09-26 17:30:00 +0200 | lucy | (~lucy@user/lucy) (Ping timeout: 252 seconds) |
2024-09-26 17:30:22 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) raehik |
2024-09-26 17:31:57 +0200 | lucy | (~lucy@user/lucy) lucy |
2024-09-26 17:32:02 +0200 | <Inst> | and no, trace isn't "true" printf debugging since printf debugging is effectively strict, whereas trace has to coexist with laziness |
2024-09-26 17:32:53 +0200 | <EvanR> | when trace is evaluated, it prints something. When printf is evaluated, it prints something |
2024-09-26 17:33:12 +0200 | <EvanR> | so your context matters more than anything in both cases, not the thing itself or the subject |
2024-09-26 17:33:33 +0200 | <EvanR> | you've put printf and nothing happens before |
2024-09-26 17:33:36 +0200 | <EvanR> | because it never ran |
2024-09-26 17:36:48 +0200 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2024-09-26 17:38:03 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 17:40:30 +0200 | polyphem | (~rod@p4fc2c857.dip0.t-ipconnect.de) polyphem |
2024-09-26 17:40:41 +0200 | <Inst> | by the way, when it comes to IO actions, do we say they're executed or evaluated? can the concept be separated? |
2024-09-26 17:40:52 +0200 | <Inst> | since IO is a wrapper over a side-effecting function |
2024-09-26 17:41:18 +0200 | <Inst> | evaluation to WHNF leaves you the function, and correct me if i'm wrong, the NF of the function is still the function |
2024-09-26 17:41:50 +0200 | <ski> | if `m' is a monad, then an `m'-action (a value of type `m a', for some type `a') is executed/run/performed/invoked, to (possibly) produce result of type `a' |
2024-09-26 17:42:12 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 246 seconds) |
2024-09-26 17:42:21 +0200 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en |
2024-09-26 17:42:22 +0200 | <ski> | e.g. when executing `Just 3', you get `3' as monadic result |
2024-09-26 17:43:14 +0200 | <Inst> | ski: how would m = [] be performed, then? |
2024-09-26 17:47:57 +0200 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) szkl |
2024-09-26 17:49:48 +0200 | <Inst> | or for that matter, Proxy |
2024-09-26 17:52:17 +0200 | <ski> | executing `[2,3,5,7]' gets you results `2',`3',`5',`7', respectively |
2024-09-26 17:53:00 +0200 | <ski> | for `Proxy', there's never a result |
2024-09-26 17:53:28 +0200 | synchromesh | (~john@2406:5a00:241a:5600:2de5:ba26:2eef:9155) (Read error: Connection reset by peer) |
2024-09-26 17:54:28 +0200 | synchromesh | (~john@2406:5a00:241a:5600:2de5:ba26:2eef:9155) synchromesh |
2024-09-26 17:57:37 +0200 | lucy | (~lucy@user/lucy) (Ping timeout: 248 seconds) |
2024-09-26 17:58:03 +0200 | <EvanR> | when you evaluate an IO action, it doesn't execute. Concept separated |
2024-09-26 17:58:41 +0200 | <EvanR> | > print undefined |
2024-09-26 17:58:42 +0200 | <lambdabot> | <IO ()> |
2024-09-26 17:59:53 +0200 | Square3 | (~Square4@user/square) (Ping timeout: 244 seconds) |
2024-09-26 18:00:38 +0200 | <Inst> | the results '2', '3', '5', '7', respectively, I don't understand that |
2024-09-26 18:00:45 +0200 | <Inst> | lists are supposed to model nondeterminism as an effect |
2024-09-26 18:01:02 +0200 | ft | (~ft@p4fc2acce.dip0.t-ipconnect.de) ft |
2024-09-26 18:01:03 +0200 | Squared | (~Square@user/square) Square |
2024-09-26 18:01:21 +0200 | <Inst> | in a sense, executing a monadic action is sort of like a comonad with either injected |
2024-09-26 18:01:27 +0200 | <Inst> | or rather Maybe |
2024-09-26 18:01:35 +0200 | <EvanR> | nondeterminism, i.e. not necessarily 1 result |
2024-09-26 18:01:44 +0200 | <EvanR> | 0 or 1 or more results |
2024-09-26 18:02:24 +0200 | <Inst> | i mean in that sense you can always have a comonad of any monad by injecting Maybe [a] |
2024-09-26 18:02:29 +0200 | <Inst> | or just going to [] |
2024-09-26 18:02:42 +0200 | <EvanR> | that doesn't make sense |
2024-09-26 18:03:07 +0200 | <EvanR> | returning multiple results is list specific, maybe you're confusing the list of results with the list type constructor |
2024-09-26 18:03:17 +0200 | <Inst> | monad guarantees that you can inject a value into a monadic context (as well have monadic join be associative) |
2024-09-26 18:03:27 +0200 | yoneda | (~mike@193.206.102.122) (Quit: Lost terminal) |
2024-09-26 18:03:32 +0200 | <Inst> | comonad guarantees that you can extract a single value from a comonadic context |
2024-09-26 18:03:42 +0200 | <EvanR> | monad doesn't guarantee you get anything whatsoever, so no, comonad doesn't apply |
2024-09-26 18:03:58 +0200 | <Inst> | i mean not all monads are comonads |
2024-09-26 18:04:07 +0200 | <EvanR> | "you can always have a comonad of any monad" |
2024-09-26 18:04:15 +0200 | <Inst> | but the implication is that you can generate comonads from any monad via [] |
2024-09-26 18:04:25 +0200 | ski | . o O ( not all primes are even ) |
2024-09-26 18:04:47 +0200 | <ski> | how so ? |
2024-09-26 18:04:53 +0200 | <EvanR> | you're veering hard into "anything can be anythinged" territory |
2024-09-26 18:04:56 +0200 | sprout | (~sprout@84-80-106-227.fixed.kpn.net) (Ping timeout: 255 seconds) |
2024-09-26 18:05:21 +0200 | <Inst> | i am, i just found it amusing to think that way because I'm holidng the effect interpretation of monads as somewhat unnatural |
2024-09-26 18:05:21 +0200 | <EvanR> | any float is an int... if I just map all floats to zero |
2024-09-26 18:05:27 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 18:05:43 +0200 | <Inst> | and saying that any monadic action can be executed |
2024-09-26 18:05:47 +0200 | <EvanR> | they can't |
2024-09-26 18:05:57 +0200 | <EvanR> | they don't all have a run function |
2024-09-26 18:05:58 +0200 | <Inst> | well, that's ski's assertation |
2024-09-26 18:06:10 +0200 | <Inst> | it's why I asserted that IO actions can be executed |
2024-09-26 18:06:14 +0200 | <EvanR> | e.g. runIO |
2024-09-26 18:06:33 +0200 | <Inst> | case runRW# foo nameOfRealworldTokenIForgot |
2024-09-26 18:06:34 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 252 seconds) |
2024-09-26 18:06:43 +0200 | <EvanR> | there you go again |
2024-09-26 18:06:52 +0200 | <Inst> | why :( |
2024-09-26 18:07:01 +0200 | <EvanR> | anything can be anythinged |
2024-09-26 18:07:11 +0200 | <Inst> | is that a bad thing? |
2024-09-26 18:07:15 +0200 | <EvanR> | yes |
2024-09-26 18:07:22 +0200 | <EvanR> | that's javascript |
2024-09-26 18:07:28 +0200 | <mauke> | runRW# doesn't exist |
2024-09-26 18:07:30 +0200 | <ski> | you can say "When `act >>= cont' is executed, `act' is executed, and for result `x' of executing it, then `cont x' is executed. Result thereof is result of the whole `act >>= cont'." |
2024-09-26 18:07:40 +0200 | <Inst> | i mean that not all monadic actions can be executed |
2024-09-26 18:07:43 +0200 | <Inst> | as per your interpretation |
2024-09-26 18:08:06 +0200 | <ski> | (this doesn't guarantee that there is a way to start off execution, to begin with) |
2024-09-26 18:08:07 +0200 | <Inst> | from ski's interpretation, it does provide the interesting suggestion that you can use [] (0 or more elements] to render any monad a comonad |
2024-09-26 18:08:14 +0200 | <ski> | no |
2024-09-26 18:08:24 +0200 | merijn | (~merijn@77.242.116.146) (Ping timeout: 252 seconds) |
2024-09-26 18:08:30 +0200 | <ski> | you can't always extract an `a' from a `[a]' |
2024-09-26 18:08:54 +0200 | <Inst> | you can always extract an [a] from [a] |
2024-09-26 18:09:00 +0200 | <EvanR> | for any monad, or any value you want, you can map it to [] |
2024-09-26 18:09:14 +0200 | <Inst> | by extension, you can also extract a [a] from Proxy a |
2024-09-26 18:09:16 +0200 | <mauke> | I can always extract an [a] from b |
2024-09-26 18:09:23 +0200 | <ski> | how would that help, Inst ? |
2024-09-26 18:09:33 +0200 | <Inst> | ski: not at all! |
2024-09-26 18:09:40 +0200 | <Inst> | it's just an interesting observation |
2024-09-26 18:09:47 +0200 | <EvanR> | I disagree |
2024-09-26 18:09:50 +0200 | <ski> | i still have no idea where you see a comonad here |
2024-09-26 18:10:04 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 260 seconds) |
2024-09-26 18:10:07 +0200 | <Inst> | i mean i guess it's not a true comonad since comonad has its own associativity rules |
2024-09-26 18:10:17 +0200 | <EvanR> | you failed to get an a |
2024-09-26 18:10:21 +0200 | <ski> | unless, i guess, you're talking about the `Identity' comonad ? (are you ?) |
2024-09-26 18:10:28 +0200 | <mauke> | what's the other comonad operation? separate :: w a -> w (w a)? |
2024-09-26 18:10:33 +0200 | <EvanR> | duplicate |
2024-09-26 18:10:43 +0200 | <Inst> | <ski> if `m' is a monad, then an `m'-action (a value of type `m a', for some type `a') is executed/run/performed/invoked, to (possibly) produce result of type `a' |
2024-09-26 18:10:51 +0200 | <Inst> | possibly |
2024-09-26 18:11:06 +0200 | <Inst> | implies that any monadic action can produce a result of type [a] |
2024-09-26 18:11:10 +0200 | <Inst> | whereas [] represents no result |
2024-09-26 18:11:17 +0200 | <mauke> | that sounds more like trying to describe >>= than an actual run operation |
2024-09-26 18:11:23 +0200 | <ski> | (but how does that allow you to "have a comonad of any monad by injecting Maybe [a]" ?) |
2024-09-26 18:11:33 +0200 | <Inst> | Maybe [a] isn't necessary |
2024-09-26 18:11:35 +0200 | <Inst> | you just need [] |
2024-09-26 18:11:38 +0200 | <Inst> | 0 or more results |
2024-09-26 18:11:47 +0200 | <mauke> | Inst: why not just Maybe if all you're going for is Nothing? |
2024-09-26 18:11:52 +0200 | <ski> | "implies that any monadic action can produce a result of type [a]" -- no |
2024-09-26 18:11:56 +0200 | <EvanR> | that fails to satisfy the definition of a comonad |
2024-09-26 18:12:02 +0200 | <Inst> | ski: why not? |
2024-09-26 18:12:14 +0200 | <Inst> | i mean the hole i'm thinking is more runReader producing a r -> a function |
2024-09-26 18:12:37 +0200 | <EvanR> | runAnything ma = [] doesn't have that type |
2024-09-26 18:13:03 +0200 | <EvanR> | round beg square hole |
2024-09-26 18:13:06 +0200 | <EvanR> | peg |
2024-09-26 18:13:15 +0200 | <Inst> | division by zero is the fruit of all creativity :3 |
2024-09-26 18:13:20 +0200 | <Inst> | (source) |
2024-09-26 18:13:24 +0200 | Vajb | (~Vajb@n7m8bu6eaitlx0eukg2-1.v6.elisa-mobile.fi) (Ping timeout: 272 seconds) |
2024-09-26 18:13:28 +0200 | <EvanR> | o_O |
2024-09-26 18:13:50 +0200 | <EvanR> | it's the source of several erroneous proofs I can think of |
2024-09-26 18:14:06 +0200 | <EvanR> | proving 1 = 2 and such |
2024-09-26 18:14:20 +0200 | <ski> | Inst : you can't extract an `a' from `IO a'. similarly neither from `ContT () IO a' (which can be used e.g. to express non-deterministic Input/Output computations) |
2024-09-26 18:14:21 +0200 | <Inst> | if you define division by zero as the set of all real numbers, division by zero always contains your answer, just almost certainly not in a useful manner |
2024-09-26 18:14:23 +0200 | lucy | (~lucy@user/lucy) lucy |
2024-09-26 18:14:36 +0200 | <EvanR> | like that falso logic system |
2024-09-26 18:14:47 +0200 | <EvanR> | all propositions are true, and false |
2024-09-26 18:14:48 +0200 | <Inst> | ski: yeah, that was my point, the problem with the [a] extraction converting any monad into a comonad would be function types |
2024-09-26 18:15:02 +0200 | <mauke> | if you think of monads as containers/boxes, then >>= lets you open a box, but only by magically trapping you inside a bigger box |
2024-09-26 18:15:22 +0200 | <ski> | besides, being able to extract `[a]' would still not help with your comonad notion here |
2024-09-26 18:15:33 +0200 | <EvanR> | it wouldn't be a comonad |
2024-09-26 18:15:34 +0200 | <Inst> | i just think of monads as (Type -> Type) -> Constraint and Type -> Type |
2024-09-26 18:16:07 +0200 | <Inst> | eta, map, and mu |
2024-09-26 18:16:15 +0200 | <EvanR> | getting comonads right is what makes comonads so useless, lets keep it that way xD |
2024-09-26 18:16:41 +0200 | <ski> | a monad, in this context, is an `m :: Type -> Type', such that we have an instance `Monad m' (satisfying the laws, say). that's `Monad', not `(Type -> Type) -> Constraint' |
2024-09-26 18:16:43 +0200 | <EvanR> | otherwise you end up with stuff like "isomorphic javascript" (an actual "thing" at one time) |
2024-09-26 18:16:52 +0200 | <Inst> | https://www.haskellforall.com/2013/02/you-could-have-invented-comonads.html |
2024-09-26 18:16:52 +0200 | hc | (~hc@mail.hce.li) hc |
2024-09-26 18:16:56 +0200 | <Inst> | iirc this isn't exactly correct |
2024-09-26 18:17:08 +0200 | <mauke> | the type of Monad is (Type -> Type) -> Constraint, I think |
2024-09-26 18:17:11 +0200 | <mauke> | like all constructor classes |
2024-09-26 18:17:30 +0200 | <Inst> | with regards to EvanR calling Comonads useless |
2024-09-26 18:17:32 +0200 | <ski> | yes. but we're not considering all type classes having that kind here |
2024-09-26 18:17:38 +0200 | <ski> | we're considering `Monad' in particular |
2024-09-26 18:18:07 +0200 | <ski> | (and perhaps also `Comonad', in particular) |
2024-09-26 18:18:09 +0200 | <EvanR> | they're fairly unuseful, but of course, you can anything it into anythingfulness |
2024-09-26 18:18:09 +0200 | <Inst> | (I'd find it funny to consider comonadic programming the dominant programming paradigm ;)) |
2024-09-26 18:18:23 +0200 | <EvanR> | by simply saying so |
2024-09-26 18:18:50 +0200 | <ski> | (otoh, we are considering all types of kind `Type -> Type', when we're considering the monad concept) |
2024-09-26 18:18:56 +0200 | <monochrom> | I will just have fun poking holes into "inject into the context". With "data Proxy a = Proxy", "pure _ = Proxy", you clearly don't have an injection. |
2024-09-26 18:19:02 +0200 | <Inst> | a -> b is not a useless function, it's simply a question of having the computing capability to search through all a -> b for something useful |
2024-09-26 18:19:21 +0200 | <Inst> | monochrom: you can claim it's a destructive injection |
2024-09-26 18:19:29 +0200 | <EvanR> | a -> b isn't useless, isn't an empty type |
2024-09-26 18:19:36 +0200 | <EvanR> | so is as useful as Void |
2024-09-26 18:19:41 +0200 | <ski> | if `a' has more than two inhabitants, it's not an injection |
2024-09-26 18:19:45 +0200 | <monochrom> | Maybe you can. But I can't. I have integrity. |
2024-09-26 18:20:06 +0200 | <EvanR> | it's an* |
2024-09-26 18:20:15 +0200 | <monochrom> | By definition, injection cannot be destructive. |
2024-09-26 18:20:19 +0200 | <ski> | er, s/more than two/two or more/ |
2024-09-26 18:20:30 +0200 | <Inst> | monochrom: tbh, after 3 years, all I can really say about monads is that it's best to think of them in terms of the definitions and laws, then start looking for uses instead of going through dumb analogies |
2024-09-26 18:20:43 +0200 | <EvanR> | have you written a monad tutorial yet |
2024-09-26 18:20:49 +0200 | <ski> | (please don't) |
2024-09-26 18:20:51 +0200 | <EvanR> | lol |
2024-09-26 18:20:55 +0200 | <monochrom> | Right. So what is this hour-long conversation about again? |
2024-09-26 18:21:01 +0200 | <Inst> | I'd love to write a monad tutorial writer |
2024-09-26 18:21:19 +0200 | <Inst> | ski asserting that you can execute monadic actions after I asked about whether it's terminologically appropriate to say you can execute an IO action |
2024-09-26 18:21:19 +0200 | <ski> | monochrom : dispelling misconceptions, possibly. maybe |
2024-09-26 18:21:23 +0200 | <EvanR> | I wonder if chat-gpt can generate satirical monad tutorials |
2024-09-26 18:21:44 +0200 | <EvanR> | which hopefully people don't take seriously when I post them on reddit |
2024-09-26 18:21:54 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) () |
2024-09-26 18:21:58 +0200 | <ski> | a la Sokal, EvanR ? |
2024-09-26 18:22:07 +0200 | <EvanR> | hmm... no |
2024-09-26 18:22:19 +0200 | <EvanR> | it would be more coherent |
2024-09-26 18:22:30 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) raehik |
2024-09-26 18:22:31 +0200 | <EvanR> | unless you mean taking seriously |
2024-09-26 18:22:35 +0200 | <monochrom> | I can only understand the conversation as mansplaining the laws in one's own words to show that one is making it all up. |
2024-09-26 18:22:44 +0200 | <Inst> | monochrom: then, based on his assertation, i tried to see if i could argue that you can use [a] to generate a comonad from any monad |
2024-09-26 18:23:02 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
2024-09-26 18:23:03 +0200 | <EvanR> | and you still haven't admitted that that's wrong |
2024-09-26 18:23:13 +0200 | <monochrom> | Why argue? Write a proof, write actual code. |
2024-09-26 18:23:14 +0200 | <ski> | afaiui, you haven't told us whoc comonad would be generated from any given monad `m' |
2024-09-26 18:23:18 +0200 | <ski> | s/whoc/which/ |
2024-09-26 18:23:40 +0200 | <monochrom> | Write the proof in Agda or Lean for good measure. |
2024-09-26 18:24:05 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 18:24:17 +0200 | <Inst> | hmmm, okay Professor Monochrom. |
2024-09-26 18:24:34 +0200 | <Inst> | I just need to figure out how to deal with the damned r -> a instances |
2024-09-26 18:25:23 +0200 | <mauke> | if r -> a causes problems, then so do state, writer, cont, parser, etc. |
2024-09-26 18:25:29 +0200 | <mauke> | or really any monad that isn't [] or Maybe |
2024-09-26 18:25:51 +0200 | <EvanR> | even [] isn't a comonad |
2024-09-26 18:25:57 +0200 | <EvanR> | Stream though |
2024-09-26 18:26:56 +0200 | <dolio> | Proofs are code. |
2024-09-26 18:27:23 +0200 | <ski> | Inst : talking about executing monadic actions is a useful figure of speech. you could (if you wanted to think about it rather abstractly) think of it as reasoning on the level of an internal language in the Kleisli category of the monad in question. (although, i suspect that latter part may not make much sense to you, unless you know what the Kleisli category is, and have an idea of the internal language in |
2024-09-26 18:27:29 +0200 | <ski> | a topos). or, if you prefer, it's reasoning at the level of an imperative language (for a particular monad `m'), which could be compiled to Haskell |
2024-09-26 18:28:20 +0200 | <ski> | @quote world's.best |
2024-09-26 18:28:21 +0200 | <lambdabot> | SPJ says: Haskell is the world's best imperative language. |
2024-09-26 18:28:33 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
2024-09-26 18:29:59 +0200 | <Inst> | re free comonads, i guess we have cofree comonads right now |
2024-09-26 18:30:02 +0200 | <Inst> | https://reasonablypolymorphic.com/blog/cofree-comonads/ |
2024-09-26 18:34:11 +0200 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 4.2.2) |
2024-09-26 18:39:19 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) L29Ah |
2024-09-26 18:41:52 +0200 | alp_ | (~alp@2001:861:e3d6:8f80:538:d7bb:b13e:aad) (Quit: Leaving) |
2024-09-26 18:42:37 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 18:47:04 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 265 seconds) |
2024-09-26 18:48:25 +0200 | misterfish | (~misterfis@84.53.85.146) misterfish |
2024-09-26 18:48:46 +0200 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en) |
2024-09-26 18:49:02 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 18:50:30 +0200 | sprout | (~sprout@84-80-106-227.fixed.kpn.net) |
2024-09-26 18:56:09 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 276 seconds) |
2024-09-26 18:59:52 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-09-26 19:03:28 +0200 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2024-09-26 19:04:32 +0200 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2024-09-26 19:07:15 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-09-26 19:11:27 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 19:15:37 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-09-26 19:16:21 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-09-26 19:24:21 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 19:27:15 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 19:29:01 +0200 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en |
2024-09-26 19:29:21 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds) |
2024-09-26 19:30:32 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
2024-09-26 19:32:06 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-09-26 19:33:23 +0200 | <Inst> | i guess it comes out to, you can conceive of a typeclassed function sExtends with the typing |
2024-09-26 19:33:35 +0200 | <Inst> | Monad m => m a -> [a] |
2024-09-26 19:33:51 +0200 | <Inst> | withn functions you can present the (mathematical) range of the function |
2024-09-26 19:33:56 +0200 | econo_ | (uid147250@id-147250.tinside.irccloud.com) |
2024-09-26 19:34:54 +0200 | infinity0 | (~infinity0@pwned.gg) (Ping timeout: 246 seconds) |
2024-09-26 19:38:49 +0200 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) tzh |
2024-09-26 19:39:35 +0200 | <ski> | "typeclassed function" ? |
2024-09-26 19:42:27 +0200 | weary-traveler | (~user@user/user363627) user363627 |
2024-09-26 19:42:33 +0200 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Ping timeout: 252 seconds) |
2024-09-26 19:42:38 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 252 seconds) |
2024-09-26 19:43:02 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 19:45:24 +0200 | mulk | (~mulk@p5b112a06.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
2024-09-26 19:45:33 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) wootehfoot |
2024-09-26 19:48:05 +0200 | <Inst> | well, a method, I guess |
2024-09-26 19:49:42 +0200 | <EvanR> | Monad m => m a -> [a] seems to have exactly 1 implementation |
2024-09-26 19:50:01 +0200 | <EvanR> | unless you get into creative combinations of undefined |
2024-09-26 19:50:03 +0200 | <ski> | a method, of which type class. with which tyvars as parameters ? |
2024-09-26 19:50:10 +0200 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en |
2024-09-26 19:50:52 +0200 | <ski> | (specifically, any of `m' and `a' ?) |
2024-09-26 19:51:41 +0200 | <Inst> | yeah |
2024-09-26 19:52:50 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 19:52:56 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
2024-09-26 19:53:11 +0200 | <Inst> | for (a -> k) -> k cont, simply output the entire set of a, for (r -> a), output the domain by testing the input of a, etc, but w/e, this isn't a good strategy to try to derive something like a free comonad, as opposed to cofree comonad |
2024-09-26 19:53:30 +0200 | <Inst> | also, incidental and annoying discovery |
2024-09-26 19:53:36 +0200 | mulk | (~mulk@p5b112a06.dip0.t-ipconnect.de) mulk |
2024-09-26 19:53:48 +0200 | <ski> | `a' could be uncountably infinite |
2024-09-26 19:53:51 +0200 | <Inst> | type a $ b = a b works, type (a . b) c = a (b c) doesn't compose |
2024-09-26 19:53:53 +0200 | xal | (~xal@mx1.xal.systems) (Quit: bye) |
2024-09-26 19:53:55 +0200 | <Inst> | and yeah, I thought about that too |
2024-09-26 19:54:21 +0200 | xal | (~xal@mx1.xal.systems) xal |
2024-09-26 19:54:50 +0200 | <Inst> | which is actually interesting, how could you depict a type with uncountably infinite values? |
2024-09-26 19:55:24 +0200 | <tomsmeding> | [Integer] |
2024-09-26 19:55:27 +0200 | <tomsmeding> | oh |
2024-09-26 19:55:31 +0200 | <tomsmeding> | never mind |
2024-09-26 19:55:39 +0200 | <EvanR> | if the values are defined by finite programs, you can't |
2024-09-26 19:55:47 +0200 | <EvanR> | for some value of depict |
2024-09-26 19:55:49 +0200 | <tomsmeding> | okay sure, yes [Bool] will do |
2024-09-26 19:56:01 +0200 | <tomsmeding> | just as a binary expansion of values in R |
2024-09-26 19:56:05 +0200 | <Inst> | ummm, cantor diagonalization? |
2024-09-26 19:56:10 +0200 | infinity0 | (~infinity0@pwned.gg) infinity0 |
2024-09-26 19:56:15 +0200 | <tomsmeding> | remember that lists can be infinite |
2024-09-26 19:56:27 +0200 | <Inst> | yeah but there's no complaint about infinite, that's the advantage of [a] |
2024-09-26 19:56:32 +0200 | <Inst> | it's uncountably infinite that's the real problem |
2024-09-26 19:57:01 +0200 | <tomsmeding> | hm I guess [Bool] is only the computable reals |
2024-09-26 19:57:05 +0200 | <tomsmeding> | are those countable? |
2024-09-26 19:57:05 +0200 | <EvanR> | there's a countable number of such programs so you don't have uncountably infinite values |
2024-09-26 19:57:13 +0200 | <tomsmeding> | right, probably |
2024-09-26 19:57:21 +0200 | <ski> | no, tomsmeding |
2024-09-26 19:57:29 +0200 | <EvanR> | but someone could feed you a [Bool] from who knows where |
2024-09-26 19:57:50 +0200 | <ski> | (difference between algorithmic and computable) |
2024-09-26 19:58:34 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 260 seconds) |
2024-09-26 19:58:37 +0200 | <ski> | yep. "lawless sequences", in Brouwer terminology |
2024-09-26 19:59:00 +0200 | <ski> | (ones that are not described by any algorithm, but are still computable) |
2024-09-26 19:59:10 +0200 | <monochrom> | [Integer] is countable or uncountable depending on which exact semantics you use. |
2024-09-26 19:59:15 +0200 | <monochrom> | Likewise for [Bool]. |
2024-09-26 19:59:41 +0200 | <tomsmeding> | I guess |
2024-09-26 19:59:57 +0200 | <EvanR> | side step the whole shindig by saying [Integer] is a type, not a set |
2024-09-26 20:00:07 +0200 | <EvanR> | don't try to assign cardinality |
2024-09-26 20:00:18 +0200 | <EvanR> | polymorphism is not set theoretic |
2024-09-26 20:00:33 +0200 | <monochrom> | OK, countable or uncountable or you-don't-even-know :) |
2024-09-26 20:00:54 +0200 | tomboy64 | (~tomboy64@user/tomboy64) (Ping timeout: 260 seconds) |
2024-09-26 20:00:56 +0200 | <EvanR> | or ultrafinite |
2024-09-26 20:01:23 +0200 | EvanR | hides |
2024-09-26 20:03:35 +0200 | tomboy64 | (~tomboy64@user/tomboy64) tomboy64 |
2024-09-26 20:03:56 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 20:04:05 +0200 | ft | (~ft@p4fc2acce.dip0.t-ipconnect.de) (Quit: leaving) |
2024-09-26 20:08:31 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 20:10:23 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
2024-09-26 20:11:31 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) raehik |
2024-09-26 20:13:05 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 248 seconds) |
2024-09-26 20:18:25 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2024-09-26 20:21:32 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 20:25:57 +0200 | lxsameer | (~lxsameer@Serene/lxsameer) (Ping timeout: 248 seconds) |
2024-09-26 20:26:38 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-09-26 20:27:34 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-09-26 20:29:21 +0200 | shapr | (~user@4.30.215.226) shapr |
2024-09-26 20:29:32 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 20:29:45 +0200 | <shapr> | hi |
2024-09-26 20:29:48 +0200 | <shapr> | How's code? |
2024-09-26 20:31:12 +0200 | <[exa]> | I just killed ghc (panic! (the 'impossible' happened)) |
2024-09-26 20:31:34 +0200 | <[exa]> | somehow it's 9.4.4, will try upgrade and see. :D |
2024-09-26 20:32:19 +0200 | <shapr> | yay! |
2024-09-26 20:32:34 +0200 | <shapr> | I'm writing fun code, as always |
2024-09-26 20:32:50 +0200 | <shapr> | Where do you put your Arbitrary instances? In the library with the type, or in the test module? |
2024-09-26 20:33:51 +0200 | <[exa]> | if the type is exported, into the library |
2024-09-26 20:34:00 +0200 | <[exa]> | so that others don't have to implement their own arbitrary if trying to do tests |
2024-09-26 20:34:51 +0200 | <shapr> | hm, I like that reasoning! |
2024-09-26 20:36:15 +0200 | <[exa]> | \o/ |
2024-09-26 20:36:30 +0200 | <[exa]> | also kinda depends on how opinionated the Arbitrary gets |
2024-09-26 20:36:36 +0200 | <[exa]> | if there's a natural one, go for it |
2024-09-26 20:36:59 +0200 | <shapr> | yeah, true |
2024-09-26 20:37:04 +0200 | <[exa]> | if not, maybe stash it in an ugly instance-only module module |
2024-09-26 20:37:10 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 272 seconds) |
2024-09-26 20:37:12 +0200 | <[exa]> | "ugly" |
2024-09-26 20:37:22 +0200 | <shapr> | Yeah, I hit an especially ugly Arbitrary a few months ago |
2024-09-26 20:37:29 +0200 | <shapr> | my own fault, as always |
2024-09-26 20:41:03 +0200 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
2024-09-26 20:44:25 +0200 | <Rembane> | I'm putting the Arbitrary in the same module as the type, or make a Generator-module if it becomes truly gnarly. |
2024-09-26 20:46:50 +0200 | euphores | (~SASL_euph@user/euphores) euphores |
2024-09-26 20:48:26 +0200 | rvalue- | (~rvalue@user/rvalue) rvalue |
2024-09-26 20:48:43 +0200 | rvalue | (~rvalue@user/rvalue) (Ping timeout: 245 seconds) |
2024-09-26 20:53:00 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla |
2024-09-26 20:53:01 +0200 | <tomsmeding> | [exa]: and poof, QuickCheck dependency in a library that doesn't need it :p |
2024-09-26 20:53:06 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 20:53:20 +0200 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2024-09-26 20:53:46 +0200 | <shapr> | tomsmeding: any thoughts on how to do it better? |
2024-09-26 20:54:06 +0200 | <tomsmeding> | no |
2024-09-26 20:54:14 +0200 | shapr | thinks |
2024-09-26 20:54:21 +0200 | <tomsmeding> | this is the problem I have with haskell's way of doing instances |
2024-09-26 20:54:26 +0200 | <tomsmeding> | the thing is, I have no solution |
2024-09-26 20:54:28 +0200 | <tomsmeding> | and that annoys me :) |
2024-09-26 20:54:41 +0200 | troydm | (~troydm@user/troydm) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) |
2024-09-26 20:54:47 +0200 | <shapr> | Arbitrary and Shrink could be separated from QuickCheck |
2024-09-26 20:55:01 +0200 | flounders | (~flounders@2607:fb91:f40:c71f:8dda:e662:7d36:da1f) (Quit: WeeChat 4.3.3) |
2024-09-26 20:55:09 +0200 | <shapr> | A few months ago I knew how to work with LeanCheck, QuickCheck, and HedgeHog |
2024-09-26 20:55:12 +0200 | <shapr> | but it's faded |
2024-09-26 20:55:18 +0200 | <tomsmeding> | you still get an additional dependency, but perhaps it's smaller indeed |
2024-09-26 20:55:33 +0200 | <shapr> | Your point of "depends on QuickCheck" is a good point |
2024-09-26 20:55:51 +0200 | <tomsmeding> | I now remember that there's a more general guideline that solves this problem too: ban orphans in libraries, but allow them in executables |
2024-09-26 20:56:00 +0200 | <shapr> | if there were an interface with "random value of this type" and "shrink this value" might help? |
2024-09-26 20:56:13 +0200 | <shapr> | tomsmeding: oh, how does that solve the problem? |
2024-09-26 20:56:22 +0200 | <tomsmeding> | the problem with orphans is that you can get conflicting instances, and this is annoying because you cannot not-export instances, and you cannot not-import instances |
2024-09-26 20:56:23 +0200 | rvalue- | rvalue |
2024-09-26 20:56:33 +0200 | <tomsmeding> | so putting an orphan instance in a library is a sure-fire way of annoying people |
2024-09-26 20:56:35 +0200 | <shapr> | oh yeah |
2024-09-26 20:56:40 +0200 | <tomsmeding> | but putting an orphan instance in an executable annoys only yourself |
2024-09-26 20:56:46 +0200 | <tomsmeding> | and presumably it's the right instance for you! |
2024-09-26 20:56:55 +0200 | <shapr> | So, always put instances in a separate module that's not re-exported? |
2024-09-26 20:57:13 +0200 | <shapr> | that sounds like it gives users both convenience and choice |
2024-09-26 20:57:20 +0200 | <tomsmeding> | that module must also never be _imported_ by yourself |
2024-09-26 20:57:23 +0200 | <tomsmeding> | instances spread virally |
2024-09-26 20:57:30 +0200 | <shapr> | oh I see what you mean |
2024-09-26 20:57:31 +0200 | <tomsmeding> | if you import a module that defines an instance, you export that instance unconditionally |
2024-09-26 20:57:48 +0200 | <shapr> | yeah, I see |
2024-09-26 20:57:55 +0200 | <tomsmeding> | it would be okay to put orphans in library if they are in a separate module _that nothing else ever uses_ |
2024-09-26 20:58:00 +0200 | <tomsmeding> | but then, y'know, why is the module there |
2024-09-26 20:58:03 +0200 | misterfish | (~misterfis@84.53.85.146) (Ping timeout: 265 seconds) |
2024-09-26 20:58:04 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-09-26 20:58:39 +0200 | <tomsmeding> | also, "okay" is relative: then importing that "orphans module" becomes essentially "using orphans", to which the same principle applies transitively: only in executables, or separate unused modules in a library |
2024-09-26 20:59:01 +0200 | <tomsmeding> | the way this solves the quickcheck problem is that a test suite is an executable |
2024-09-26 20:59:05 +0200 | <shapr> | this reminds me I need to re-read the falsify paper, since it does shrinking entirely differently |
2024-09-26 20:59:05 +0200 | <tomsmeding> | so put it in the test suite :) |
2024-09-26 20:59:22 +0200 | <shapr> | thanks for the advice |
2024-09-26 20:59:24 +0200 | <[exa]> | ok good point |
2024-09-26 20:59:29 +0200 | <tomsmeding> | I read this somewhere, it's not my genius |
2024-09-26 20:59:35 +0200 | <tomsmeding> | but it feels like a decent approach |
2024-09-26 21:00:01 +0200 | caconym | (~caconym@user/caconym) (Quit: bye) |
2024-09-26 21:00:24 +0200 | <tomsmeding> | (I strongly dislike hmatrix for blatantly going against this guideline) |
2024-09-26 21:00:39 +0200 | caconym | (~caconym@user/caconym) caconym |
2024-09-26 21:00:59 +0200 | <Rembane> | You can also not have an Arbitrary instance and use a function to generate stuff instead, and call that function from forAllSomethingSomething in QuickCheck. |
2024-09-26 21:00:59 +0200 | <shapr> | tomsmeding: if you find the source, I'd like a link |
2024-09-26 21:01:11 +0200 | <tomsmeding> | Rembane: ooh, good one |
2024-09-26 21:01:23 +0200 | <tomsmeding> | Rembane: but now you depend on `random` ;) |
2024-09-26 21:01:23 +0200 | <[exa]> | phew, ghc 9.10 fixed the panic. :D |
2024-09-26 21:01:25 +0200 | <tomsmeding> | (probably) |
2024-09-26 21:01:30 +0200 | <shapr> | Rembane: even better, then you can allow people to make their own Arbitrary instance |
2024-09-26 21:01:37 +0200 | <Rembane> | tomsmeding: Nah, only QuickCheck. Let me get some links! |
2024-09-26 21:02:06 +0200 | <Rembane> | shapr, tomsmeding: https://hackage.haskell.org/package/QuickCheck-2.15.0.1/docs/Test-QuickCheck.html#v:forAll <- use this function or one of its friends. |
2024-09-26 21:02:16 +0200 | [exa] | . o O ( who'd think functions would be the solution again ) |
2024-09-26 21:02:29 +0200 | <tomsmeding> | Rembane: the whole point of my rant here was that a random library that doesn't have anything to do with testing should not depend on QuickCheck :p |
2024-09-26 21:02:33 +0200 | <Rembane> | [exa]: Functions are the best! It's the ultimate abstraction! |
2024-09-26 21:02:44 +0200 | <Rembane> | tomsmeding: I ignored that part! :D |
2024-09-26 21:03:10 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) () |
2024-09-26 21:03:19 +0200 | <[exa]> | Rembane: always happy to see more proofs of that |
2024-09-26 21:03:33 +0200 | alp_ | (~alp@2001:861:e3d6:8f80:538:d7bb:b13e:aad) |
2024-09-26 21:03:34 +0200 | <tomsmeding> | I guess if you can write your function to take a (g -> (Word, g)) or something, then you can avoid dependencies on `random` _and_ on `QuickCheck`; the user just stuffs in System.Random.uniform or one of its friends, I forget the names |
2024-09-26 21:03:37 +0200 | <shapr> | I wrote a library that depends on LeanCheck, QuickCheck, AND HedgeHog! I really need to fix that. |
2024-09-26 21:04:12 +0200 | <shapr> | gotta convert that into kudzu-core, kudzu-leancheck, kudzu-quickcheck, kudzu-hedgehog |
2024-09-26 21:04:25 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 21:05:35 +0200 | <tomsmeding> | shapr: this is not exactly what I described before, but it's definitely related https://www.michaelpj.com/blog/2020/10/29/your-orphans-are-fine.html |
2024-09-26 21:06:24 +0200 | <shapr> | thanks! |
2024-09-26 21:08:53 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 21:09:19 +0200 | Sgeo_ | (~Sgeo@user/sgeo) Sgeo |
2024-09-26 21:09:25 +0200 | Pixi` | (~Pixi@user/pixi) Pixi |
2024-09-26 21:09:55 +0200 | <int-e> | . o O ( first sentence of a ransom notice ) |
2024-09-26 21:10:15 +0200 | <tomsmeding> | (and I think that this is the blog post I had in mind. So either my memory distorted what I read into something simpler, or I read the idea somewhere else and the memories merged.) |
2024-09-26 21:10:18 +0200 | <tomsmeding> | int-e: quite |
2024-09-26 21:10:32 +0200 | machinedgod | (~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 244 seconds) |
2024-09-26 21:10:40 +0200 | <tomsmeding> | but then the question is, who are "you" if the sentence is "your orphans are fine" |
2024-09-26 21:10:57 +0200 | shapr | (~user@4.30.215.226) (Quit: walking home) |
2024-09-26 21:10:58 +0200 | ThePenguin5 | (~ThePengui@cust-95-80-24-166.csbnet.se) ThePenguin |
2024-09-26 21:11:20 +0200 | son0p | (~ff@191.104.21.8) (Killed (NickServ (GHOST command used by son0p-))) |
2024-09-26 21:13:28 +0200 | raehik1 | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) raehik |
2024-09-26 21:13:33 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-09-26 21:13:33 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
2024-09-26 21:13:38 +0200 | AlexZenon | (~alzenon@178.34.162.53) (Ping timeout: 244 seconds) |
2024-09-26 21:14:09 +0200 | some02 | (~cat@user/sudden) sudden |
2024-09-26 21:14:59 +0200 | AlexNoo | (~AlexNoo@178.34.162.53) (Ping timeout: 260 seconds) |
2024-09-26 21:15:06 +0200 | rvalue | (~rvalue@user/rvalue) (Remote host closed the connection) |
2024-09-26 21:15:28 +0200 | rvalue | (~rvalue@user/rvalue) rvalue |
2024-09-26 21:15:48 +0200 | Squared | (~Square@user/square) (Remote host closed the connection) |
2024-09-26 21:16:24 +0200 | AlexNoo | (~AlexNoo@178.34.162.53) |
2024-09-26 21:16:26 +0200 | zero | (~z@user/zero) zero |
2024-09-26 21:16:44 +0200 | <int-e> | anyway, not a bad take on orphan instances. |
2024-09-26 21:17:13 +0200 | <tomsmeding> | agreed |
2024-09-26 21:17:34 +0200 | Fooo | (~Square@user/square) Square |
2024-09-26 21:18:20 +0200 | sprout_ | (~sprout@2a02-a448-3a80-0-c61c-b515-5509-58e7.fixed6.kpn.net) sprout |
2024-09-26 21:19:23 +0200 | weary-traveler | (~user@user/user363627) user363627 |
2024-09-26 21:19:31 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (*.net *.split) |
2024-09-26 21:19:31 +0200 | sprout | (~sprout@84-80-106-227.fixed.kpn.net) (*.net *.split) |
2024-09-26 21:19:31 +0200 | Sgeo | (~Sgeo@user/sgeo) (*.net *.split) |
2024-09-26 21:19:31 +0200 | Digit | (~user@user/digit) (*.net *.split) |
2024-09-26 21:19:31 +0200 | sawilagar | (~sawilagar@user/sawilagar) (*.net *.split) |
2024-09-26 21:19:31 +0200 | mrmonday | (~robert@what.i.hope.is.not.a.tabernaevagant.es) (*.net *.split) |
2024-09-26 21:19:31 +0200 | turlando | (~turlando@user/turlando) (*.net *.split) |
2024-09-26 21:19:31 +0200 | ThePenguin | (~ThePengui@cust-95-80-24-166.csbnet.se) (*.net *.split) |
2024-09-26 21:19:31 +0200 | TMA | (tma@twin.jikos.cz) (*.net *.split) |
2024-09-26 21:19:31 +0200 | Pixi | (~Pixi@user/pixi) (*.net *.split) |
2024-09-26 21:19:31 +0200 | TonyStone | (~TonyStone@user/TonyStone) (*.net *.split) |
2024-09-26 21:19:32 +0200 | robobub | (uid248673@id-248673.uxbridge.irccloud.com) (*.net *.split) |
2024-09-26 21:19:32 +0200 | op_4 | (~tslil@user/op-4/x-9116473) (*.net *.split) |
2024-09-26 21:19:32 +0200 | sudden | (~cat@user/sudden) (*.net *.split) |
2024-09-26 21:19:32 +0200 | red-snail | (~snail@static.151.210.203.116.clients.your-server.de) (*.net *.split) |
2024-09-26 21:19:32 +0200 | meinside | (uid24933@id-24933.helmsley.irccloud.com) (*.net *.split) |
2024-09-26 21:19:32 +0200 | zzz | (~z@user/zero) (*.net *.split) |
2024-09-26 21:19:33 +0200 | _d0t | (~{-d0t-}@user/-d0t-/x-7915216) (*.net *.split) |
2024-09-26 21:19:33 +0200 | lieven | (~mal@ns2.wyrd.be) (*.net *.split) |
2024-09-26 21:19:33 +0200 | lyxia | (~lyxia@poisson.chat) (*.net *.split) |
2024-09-26 21:19:33 +0200 | A_Dragon | (A_D@libera/staff/dragon) (*.net *.split) |
2024-09-26 21:19:33 +0200 | nisstyre | (wes@user/nisstyre) (*.net *.split) |
2024-09-26 21:19:33 +0200 | wz1000 | (~zubin@static.11.113.47.78.clients.your-server.de) (*.net *.split) |
2024-09-26 21:19:34 +0200 | alanz | (sid110616@id-110616.uxbridge.irccloud.com) (*.net *.split) |
2024-09-26 21:19:34 +0200 | enikar | (~enikar@user/enikar) (*.net *.split) |
2024-09-26 21:19:34 +0200 | sweater | (~sweater@206.81.18.26) (*.net *.split) |
2024-09-26 21:19:34 +0200 | flocks | (~flocks@134.122.90.60) (*.net *.split) |
2024-09-26 21:19:34 +0200 | wryish | (~wryish@2605:4c40:119:efa3:0:727d:19eb:1) (*.net *.split) |
2024-09-26 21:19:34 +0200 | hacklschorsch | (~flo@vantaa.latfa.net) (*.net *.split) |
2024-09-26 21:19:34 +0200 | s4msung | (u4jHfpaUni@user/s4msung) (*.net *.split) |
2024-09-26 21:19:35 +0200 | loonycyborg | (loonycybor@wesnoth/developer/loonycyborg) (*.net *.split) |
2024-09-26 21:19:35 +0200 | _0xa | (~user@user/0xa/x-3134607) (*.net *.split) |
2024-09-26 21:19:35 +0200 | SanchayanMaity | (sid478177@2a03:5180:f:4::7:4be1) (*.net *.split) |
2024-09-26 21:19:35 +0200 | meooow | (~meooow@2400:6180:100:d0::ad9:e001) (*.net *.split) |
2024-09-26 21:19:35 +0200 | taktoa[c] | (sid282096@2a03:5180:f::4:4df0) (*.net *.split) |
2024-09-26 21:19:35 +0200 | edm | (sid147314@2a03:5180:f:4::2:3f72) (*.net *.split) |
2024-09-26 21:19:35 +0200 | JSharp | (sid4580@user/JSharp) (*.net *.split) |
2024-09-26 21:19:35 +0200 | Flow | (~none@gentoo/developer/flow) (*.net *.split) |
2024-09-26 21:19:35 +0200 | Philonous | (~Philonous@user/philonous) (*.net *.split) |
2024-09-26 21:19:36 +0200 | ThePenguin5 | ThePenguin |
2024-09-26 21:20:15 +0200 | Digitteknohippie | (~user@77.47.7.51.dyn.plus.net) |
2024-09-26 21:20:15 +0200 | sawilagar | (~sawilagar@user/sawilagar) sawilagar |
2024-09-26 21:20:15 +0200 | mrmonday | (~robert@what.i.hope.is.not.a.tabernaevagant.es) mrmonday |
2024-09-26 21:20:15 +0200 | turlando | (~turlando@user/turlando) turlando |
2024-09-26 21:20:15 +0200 | TMA | (tma@twin.jikos.cz) TMA |
2024-09-26 21:20:15 +0200 | robobub | (uid248673@id-248673.uxbridge.irccloud.com) robobub |
2024-09-26 21:20:15 +0200 | op_4 | (~tslil@user/op-4/x-9116473) op_4 |
2024-09-26 21:20:15 +0200 | red-snail | (~snail@static.151.210.203.116.clients.your-server.de) red-snail |
2024-09-26 21:20:15 +0200 | meinside | (uid24933@id-24933.helmsley.irccloud.com) meinside |
2024-09-26 21:20:15 +0200 | _d0t | (~{-d0t-}@user/-d0t-/x-7915216) {-d0t-} |
2024-09-26 21:20:15 +0200 | lieven | (~mal@ns2.wyrd.be) lieven |
2024-09-26 21:20:15 +0200 | lyxia | (~lyxia@poisson.chat) lyxia |
2024-09-26 21:20:15 +0200 | A_Dragon | (A_D@libera/staff/dragon) ad |
2024-09-26 21:20:15 +0200 | nisstyre | (wes@user/nisstyre) nisstyre |
2024-09-26 21:20:15 +0200 | hacklschorsch | (~flo@vantaa.latfa.net) |
2024-09-26 21:20:15 +0200 | wz1000 | (~zubin@static.11.113.47.78.clients.your-server.de) wz1000 |
2024-09-26 21:20:15 +0200 | alanz | (sid110616@id-110616.uxbridge.irccloud.com) alanz |
2024-09-26 21:20:15 +0200 | enikar | (~enikar@user/enikar) enikar |
2024-09-26 21:20:15 +0200 | sweater | (~sweater@206.81.18.26) sweater |
2024-09-26 21:20:15 +0200 | flocks | (~flocks@134.122.90.60) flocks |
2024-09-26 21:20:15 +0200 | wryish | (~wryish@2605:4c40:119:efa3:0:727d:19eb:1) |
2024-09-26 21:20:15 +0200 | s4msung | (u4jHfpaUni@user/s4msung) s4msung |
2024-09-26 21:20:15 +0200 | loonycyborg | (loonycybor@wesnoth/developer/loonycyborg) loonycyborg |
2024-09-26 21:20:15 +0200 | _0xa | (~user@user/0xa/x-3134607) _0xa |
2024-09-26 21:20:15 +0200 | SanchayanMaity | (sid478177@2a03:5180:f:4::7:4be1) SanchayanMaity |
2024-09-26 21:20:15 +0200 | meooow | (~meooow@2400:6180:100:d0::ad9:e001) meooow |
2024-09-26 21:20:15 +0200 | taktoa[c] | (sid282096@2a03:5180:f::4:4df0) taktoa[c] |
2024-09-26 21:20:15 +0200 | edm | (sid147314@2a03:5180:f:4::2:3f72) edm |
2024-09-26 21:20:15 +0200 | JSharp | (sid4580@user/JSharp) JSharp |
2024-09-26 21:20:15 +0200 | Flow | (~none@gentoo/developer/flow) flow |
2024-09-26 21:20:15 +0200 | Philonous | (~Philonous@user/philonous) Philonous |
2024-09-26 21:22:20 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-09-26 21:24:18 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 21:25:04 +0200 | shapr | (~user@2601:19c:417e:5434:7fbe:b5f1:8fe7:ea47) shapr |
2024-09-26 21:25:32 +0200 | AlexZenon | (~alzenon@178.34.162.53) |
2024-09-26 21:26:05 +0200 | robobub | (uid248673@id-248673.uxbridge.irccloud.com) (Ping timeout: 265 seconds) |
2024-09-26 21:26:09 +0200 | TonyStone | (~TonyStone@user/TonyStone) TonyStone |
2024-09-26 21:27:32 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 21:29:08 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
2024-09-26 21:29:20 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) L29Ah |
2024-09-26 21:32:29 +0200 | robobub | (uid248673@id-248673.uxbridge.irccloud.com) robobub |
2024-09-26 21:32:30 +0200 | paddymahoney | (~paddymaho@pool-99-250-10-137.cpe.net.cable.rogers.com) (Ping timeout: 246 seconds) |
2024-09-26 21:39:08 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 245 seconds) |
2024-09-26 21:39:27 +0200 | <Inst> | in do notation for lists, what's the idiomatic way to denote an empty list (fail the chain)? |
2024-09-26 21:39:32 +0200 | motherfsck | (~motherfsc@user/motherfsck) motherfsck |
2024-09-26 21:39:35 +0200 | <Inst> | I'm using fail "", but it feels out of date |
2024-09-26 21:40:06 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 21:40:26 +0200 | <tomsmeding> | []? |
2024-09-26 21:40:33 +0200 | <tomsmeding> | also mzero |
2024-09-26 21:42:02 +0200 | <Inst> | thanks |
2024-09-26 21:42:13 +0200 | lucy | (~lucy@user/lucy) (Ping timeout: 248 seconds) |
2024-09-26 21:42:49 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2024-09-26 21:43:18 +0200 | <Inst> | also, more disgusting crap: |
2024-09-26 21:43:18 +0200 | <tomsmeding> | or good old mempty |
2024-09-26 21:43:24 +0200 | <Inst> | write a list comprehension that returns an IO value |
2024-09-26 21:43:28 +0200 | <Inst> | then sequenceA_ |
2024-09-26 21:43:38 +0200 | <tomsmeding> | why is that disgusting? |
2024-09-26 21:44:04 +0200 | lucy | (~lucy@user/lucy) lucy |
2024-09-26 21:44:08 +0200 | <ski> | yea, sometimes you can generalize to `MonadPlus' (or `Alternative') |
2024-09-26 21:44:18 +0200 | <tomsmeding> | or Monoid |
2024-09-26 21:44:26 +0200 | <tomsmeding> | I guess Alternative is more appropriate here |
2024-09-26 21:44:34 +0200 | <tomsmeding> | 'empty' then >:D |
2024-09-26 21:44:50 +0200 | <Inst> | well, i mean, for_ at least feels more honest about what you're doing |
2024-09-26 21:45:05 +0200 | <tomsmeding> | I guess |
2024-09-26 21:45:12 +0200 | <tomsmeding> | I've done this plenty of times, but admittedly without the _ |
2024-09-26 21:45:14 +0200 | <Inst> | i mean, not list comprehension, but rather, do block in list |
2024-09-26 21:45:36 +0200 | paddymahoney | (~paddymaho@pool-99-250-10-137.cpe.net.cable.rogers.com) |
2024-09-26 21:45:41 +0200 | <Inst> | but then you can't run intermediate IO values |
2024-09-26 21:45:46 +0200 | <int-e> | Inst: that's just your own personal perception |
2024-09-26 21:45:48 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
2024-09-26 21:45:48 +0200 | Smiles | (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2024-09-26 21:46:03 +0200 | <tomsmeding> | https://github.com/tomsmeding/ad-dualrev-th/blob/17b758dbb3966de66394a756b708dae6ab57687e/src/Lang… |
2024-09-26 21:47:29 +0200 | <int-e> | sequenceA_ is very honest about what it does. for_ is also honest but has an order of arguments that is more convenient when the lists are short and the actions are long. |
2024-09-26 21:48:00 +0200 | <int-e> | :t sequenceA_ |
2024-09-26 21:48:01 +0200 | <lambdabot> | (Foldable t, Applicative f) => t (f a) -> f () |
2024-09-26 21:48:06 +0200 | <int-e> | :t for_ |
2024-09-26 21:48:07 +0200 | <lambdabot> | (Foldable t, Applicative f) => t a -> (a -> f b) -> f () |
2024-09-26 21:48:16 +0200 | <int-e> | that's the ground truth here, really |
2024-09-26 21:48:51 +0200 | <tomsmeding> | int-e: I think their subjective style guide here is "if the code is just about the side effects, write it in imperative style" |
2024-09-26 21:49:04 +0200 | <int-e> | which is fine |
2024-09-26 21:49:06 +0200 | <tomsmeding> | imperative style meaning "use control flow constructs like C's" |
2024-09-26 21:49:27 +0200 | <int-e> | but you don't have to expect others to be disgusted at alternatives |
2024-09-26 21:49:35 +0200 | <tomsmeding> | indeed |
2024-09-26 21:49:42 +0200 | <EvanR> | IO () monoid xD |
2024-09-26 21:49:46 +0200 | <EvanR> | just the side effects maam |
2024-09-26 21:49:50 +0200 | <tomsmeding> | it is a monoid though |
2024-09-26 21:49:58 +0200 | <tomsmeding> | I always found that funny |
2024-09-26 21:50:04 +0200 | <Inst> | <> > >> :3 |
2024-09-26 21:50:07 +0200 | <EvanR> | > mempty :: IO () |
2024-09-26 21:50:08 +0200 | <lambdabot> | <IO ()> |
2024-09-26 21:50:12 +0200 | <EvanR> | o_O |
2024-09-26 21:50:13 +0200 | <tomsmeding> | % mempty :: IO () |
2024-09-26 21:50:13 +0200 | <yahb2> | <no output> |
2024-09-26 21:50:23 +0200 | <tomsmeding> | % print "hi" <> print "bye" |
2024-09-26 21:50:23 +0200 | <yahb2> | "hi" ; "bye" |
2024-09-26 21:50:44 +0200 | <Inst> | % fail <> print "Hello" |
2024-09-26 21:50:44 +0200 | <yahb2> | <interactive>:9:9: error: [GHC-83865] ; • Couldn't match expected type: String -> m a ; with actual type: IO () ; • Possible cause: ‘print’ is applied to too many argument... |
2024-09-26 21:50:50 +0200 | <Inst> | % fail "" <> print "Hello" |
2024-09-26 21:50:50 +0200 | <yahb2> | *** Exception: user error |
2024-09-26 21:50:59 +0200 | <EvanR> | > mempty :: IO String |
2024-09-26 21:51:00 +0200 | <lambdabot> | <IO [Char]> |
2024-09-26 21:51:03 +0200 | <EvanR> | ok good |
2024-09-26 21:51:16 +0200 | <tomsmeding> | instance Monoid a => Monoid (IO a) |
2024-09-26 21:51:21 +0200 | <tomsmeding> | it's the sensible instance :) |
2024-09-26 21:51:31 +0200 | <EvanR> | haskell is sensible again |
2024-09-26 21:53:29 +0200 | <tomsmeding> | % (print <> putStrLn . reverse . show) 1234 |
2024-09-26 21:53:29 +0200 | <yahb2> | 1234 ; 4321 |
2024-09-26 21:53:40 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
2024-09-26 21:54:02 +0200 | <EvanR> | lol |
2024-09-26 21:54:27 +0200 | <Inst> | good ole Monoid b => Monoid (a -> b) |
2024-09-26 21:54:31 +0200 | <tomsmeding> | indeed |
2024-09-26 21:54:43 +0200 | <EvanR> | it's monoids all the way down |
2024-09-26 21:54:55 +0200 | <tomsmeding> | until it's actually a semigroup |
2024-09-26 21:55:09 +0200 | <EvanR> | until it's a semigroupoid |
2024-09-26 21:55:15 +0200 | <tomsmeding> | what even is that |
2024-09-26 21:55:18 +0200 | <EvanR> | lol |
2024-09-26 21:55:22 +0200 | <tomsmeding> | nonassociative? |
2024-09-26 21:55:24 +0200 | <EvanR> | no |
2024-09-26 21:55:27 +0200 | <tomsmeding> | no that's a magma |
2024-09-26 21:55:41 +0200 | <EvanR> | it's like the earlier group => groupoid discussion, but for semigroups |
2024-09-26 21:55:53 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 21:55:57 +0200 | <EvanR> | a semigroup is a semigroupoid where there is only 1 object |
2024-09-26 21:56:20 +0200 | <ski> | category without identities |
2024-09-26 21:56:32 +0200 | <EvanR> | it might have identities |
2024-09-26 21:56:34 +0200 | <tomsmeding> | I see |
2024-09-26 21:56:39 +0200 | <EvanR> | but doesn't have to |
2024-09-26 21:56:49 +0200 | <tomsmeding> | classic table https://en.wikipedia.org/wiki/Semigroupoid |
2024-09-26 21:56:53 +0200 | <ski> | "without" as it not being in the signature, yes |
2024-09-26 21:56:54 +0200 | <haskellbridge> | <thirdofmay18081814goya> anyone know of a community where i can ask about cybersecurity? am trying to define what a "maximally competent/trustworthy/trained" user is |
2024-09-26 21:58:08 +0200 | <ski> | thirdofmay18081814goya : there's a channel #security on Libera, with some nine hundred people in it |
2024-09-26 21:58:26 +0200 | <EvanR> | and you can just walk right in? |
2024-09-26 21:58:32 +0200 | <EvanR> | doesn't sound very secure |
2024-09-26 21:58:32 +0200 | <haskellbridge> | <thirdofmay18081814goya> ski: nice thank you! |
2024-09-26 21:58:54 +0200 | user4561 | (~user4561@2800:2168:2400:6d3:5b16:5e9e:7bd9:1a9) |
2024-09-26 21:58:55 +0200 | <ski> | seems you do need to have a registered nickname, to be able to talk there |
2024-09-26 21:58:56 +0200 | <Inst> | oh, that was what i was looking for |
2024-09-26 21:59:02 +0200 | <ski> | (channel mode `+R') |
2024-09-26 21:59:54 +0200 | euphores | (~SASL_euph@user/euphores) (Ping timeout: 260 seconds) |
2024-09-26 21:59:56 +0200 | user4561 | (~user4561@2800:2168:2400:6d3:5b16:5e9e:7bd9:1a9) (Client Quit) |
2024-09-26 22:00:01 +0200 | <Inst> | guard :: Bool -> f () |
2024-09-26 22:00:21 +0200 | user4561 | (~user4561@2800:2168:2400:6d3:5b16:5e9e:7bd9:1a9) |
2024-09-26 22:00:49 +0200 | user4561 | (~user4561@2800:2168:2400:6d3:5b16:5e9e:7bd9:1a9) (Client Quit) |
2024-09-26 22:00:53 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-09-26 22:01:24 +0200 | lucy | (~lucy@user/lucy) (Ping timeout: 276 seconds) |
2024-09-26 22:01:41 +0200 | lucy | (~lucy@user/lucy) lucy |
2024-09-26 22:03:25 +0200 | <haskellbridge> | <thirdofmay18081814goya> what irc client do you guys use? |
2024-09-26 22:04:08 +0200 | <ski> | /ctcp ski version |
2024-09-26 22:05:02 +0200 | <tomsmeding> | ctcp is funny |
2024-09-26 22:06:36 +0200 | euphores | (~SASL_euph@user/euphores) euphores |
2024-09-26 22:07:14 +0200 | enikar | (~enikar@user/enikar) (Quit: WeeChat 3.0) |
2024-09-26 22:07:21 +0200 | <hc> | why is it funny? |
2024-09-26 22:07:59 +0200 | <EvanR> | somehow it used to cause literally everyone in the channel to become irate if you used it |
2024-09-26 22:08:07 +0200 | <EvanR> | those were the days |
2024-09-26 22:08:13 +0200 | <tomsmeding> | simply because I always forget it is a thing; it feels more powerful than it should be |
2024-09-26 22:08:32 +0200 | <ski> | well, you shouldn't CTCP a whole channel |
2024-09-26 22:08:43 +0200 | <EvanR> | there was a unix command which wrote a message on another users terminal |
2024-09-26 22:08:49 +0200 | <tomsmeding> | wall(1) |
2024-09-26 22:09:02 +0200 | <tomsmeding> | it actually works on some servers, not everyone turns it off |
2024-09-26 22:09:06 +0200 | <ski> | an occasional random CTCP to whomever, i think is fine |
2024-09-26 22:09:17 +0200 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Ping timeout: 252 seconds) |
2024-09-26 22:09:34 +0200 | <EvanR> | it seems like from another universe, where no one had security because no one needed any |
2024-09-26 22:09:56 +0200 | <ski> | yea, i've witnessed people discovering `wall' (and then i, sometimes, responded that they could use `write' to direct to a particular user) |
2024-09-26 22:10:24 +0200 | <tomsmeding> | ah, right, wall and write |
2024-09-26 22:10:29 +0200 | <ski> | (also `mesg n', if you prefer) |
2024-09-26 22:10:34 +0200 | enikar | (~enikar@user/enikar) enikar |
2024-09-26 22:10:47 +0200 | int-e | likes CTCP-ing a whole channel though |
2024-09-26 22:10:52 +0200 | <EvanR> | it was mesg |
2024-09-26 22:11:07 +0200 | <ski> | hah, yea, that's the exception, int-e :P |
2024-09-26 22:11:12 +0200 | <hc> | wall is still use by the shutdown command anyway |
2024-09-26 22:11:14 +0200 | <tomsmeding> | a while ago I actually used write(1) to alert someone that I was using a server they were running a long job on, so if they were benchmarking, their benchmark was now invalidated |
2024-09-26 22:11:27 +0200 | <tomsmeding> | they actually got back to me by email -- I put my email in the write(1) message just in case |
2024-09-26 22:11:40 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 22:12:17 +0200 | <hc> | I think write used to work remotely, too |
2024-09-26 22:12:26 +0200 | <hc> | Then there was a more advanced command called talk |
2024-09-26 22:12:56 +0200 | <hc> | It opened up a session where you could chat, you could see the letters appear as the other person was talking :] |
2024-09-26 22:13:44 +0200 | <ski> | yea, i used `talk' (more specifically `ytalk') |
2024-09-26 22:14:10 +0200 | <hc> | Oh, I didn't know that one :) |
2024-09-26 22:14:45 +0200 | <hc> | I'm sure there's an emacs command for that, too |
2024-09-26 22:15:47 +0200 | <EvanR> | tomsmeding, and then their reply email was delivered to you via nethack mail demon |
2024-09-26 22:16:11 +0200 | <tomsmeding> | unfortunately not, that was a bog-standard institutional MS Exchange email :p |
2024-09-26 22:16:23 +0200 | <EvanR> | shudder |
2024-09-26 22:16:32 +0200 | <hc> | That reminds me, irc is from a time when host names were static and user names were verified by identd |
2024-09-26 22:16:36 +0200 | <ski> | you could open an Emacs frame on the X display of another person, assuming their machine was accessible over the network, and they allowed you to open a window there. then you could both type into the same buffer (but at different points) |
2024-09-26 22:16:49 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-09-26 22:17:13 +0200 | <ski> | or, you can use a multi-user Screen session, for something similar (but only one point, unless you use something like `emacsclient -nw') |
2024-09-26 22:17:44 +0200 | <int-e> | hc: you could trust the admins of computers connected to the internet... or so it was assumed. imagine! |
2024-09-26 22:17:44 +0200 | <hc> | Oh nice, I did know about that emacs feature but not that you could actually use a different DISPLAY setting for it |
2024-09-26 22:18:01 +0200 | <int-e> | (the whole idea of identd is ludicrous from a modern perspective) |
2024-09-26 22:18:25 +0200 | <hc> | Yeah, but I think the culture was much different back then |
2024-09-26 22:18:36 +0200 | <ski> | hc : `M-x make-frame-on-display' |
2024-09-26 22:18:41 +0200 | <int-e> | obviously |
2024-09-26 22:18:41 +0200 | <hc> | Mostly university and a bit military perhaps, but probably mostly university |
2024-09-26 22:19:10 +0200 | <hc> | ski: kk, I'll write that down actually :) |
2024-09-26 22:19:22 +0200 | ski | bound `C-x 5 3' to that |
2024-09-26 22:19:38 +0200 | <Inst> | pftt, should disable version |
2024-09-26 22:19:49 +0200 | tomsmeding | wonders why "5 3" |
2024-09-26 22:20:01 +0200 | <ski> | (global-set-key [?\C-x ?5 ?3] #'make-frame-on-display) |
2024-09-26 22:20:10 +0200 | <Inst> | there isn't an inverse of guard? |
2024-09-26 22:20:24 +0200 | <tomsmeding> | guard . not |
2024-09-26 22:20:43 +0200 | <Inst> | yeah I just flipped the boolean |
2024-09-26 22:20:47 +0200 | <Inst> | I'm trying to write a conway's game of life |
2024-09-26 22:20:55 +0200 | <Inst> | then convert it to comonads |
2024-09-26 22:23:16 +0200 | <ski> | tomsmeding : `C-x 5 0' already is `delete-frame', and `C-x 5 1' is `delete-other-frames', and `C-x 5 2' is `make-frame-command' (make a new frame on the same display as the currently focused one). (cf. `C-x 0' being `delete-window', `C-x 1' being `delete-other-windows', `C-x 2' being `split-window-vertically', `C-x 3' being `split-window-horizontally'; these managing windows within a single frame) |
2024-09-26 22:23:52 +0200 | <tomsmeding> | vim is a _little_ more helpful in its key binding mnemonics :p |
2024-09-26 22:24:06 +0200 | <hc> | Anyone ever use yi? ;) |
2024-09-26 22:24:14 +0200 | <tomsmeding> | (still not amazing, but surely "v" is better than "2" for a vertical split :p) |
2024-09-26 22:24:29 +0200 | <ski> | "2" for "split in two", presumably |
2024-09-26 22:24:38 +0200 | <tomsmeding> | and 3 for "split in three"? |
2024-09-26 22:24:50 +0200 | <ski> | hah, the analogy breaks there :D |
2024-09-26 22:24:55 +0200 | <tomsmeding> | well, I guess it's "2'", so it becomes 3 |
2024-09-26 22:24:59 +0200 | <tomsmeding> | that can work |
2024-09-26 22:25:20 +0200 | <tomsmeding> | same for 0 and 0' |
2024-09-26 22:26:18 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-09-26 22:26:43 +0200 | <ski> | Screen has `^AX' for `remove', `^AQ' for `only', `^AS' for `split', and `^A|' for `split -v' (these similarly managing regions in a terminal display, similar to the windows in an Emacs frame) |
2024-09-26 22:27:27 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 22:28:22 +0200 | <ski> | (.. unfortunately, the terminology in Irssi is a bit conflated, both "buffers"/"tabs", as well as "screen regions" are manipulated using `/window' command) |
2024-09-26 22:29:04 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 260 seconds) |
2024-09-26 22:29:04 +0200 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en |
2024-09-26 22:31:39 +0200 | raehik1 | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 244 seconds) |
2024-09-26 22:32:21 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-09-26 22:39:49 +0200 | lucy | (~lucy@user/lucy) (Ping timeout: 248 seconds) |
2024-09-26 22:40:22 +0200 | michalz | (~michalz@185.246.207.221) (Remote host closed the connection) |
2024-09-26 22:41:49 +0200 | lucy | (~lucy@user/lucy) lucy |
2024-09-26 22:41:51 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 22:43:13 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 22:43:54 +0200 | sawilagar | (~sawilagar@user/sawilagar) (Ping timeout: 265 seconds) |
2024-09-26 22:45:24 +0200 | Fooo | Square |
2024-09-26 22:48:15 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-09-26 22:49:40 +0200 | <Inst> | is there a way to multiply declare type synonyms? |
2024-09-26 22:52:51 +0200 | <tomsmeding> | Inst: what would that mean? |
2024-09-26 22:53:18 +0200 | <Inst> | type (Foo, Bar, Baz) = (String, Text, ByteString) |
2024-09-26 22:54:20 +0200 | <Rembane> | Inst: Why do you need that? |
2024-09-26 22:54:28 +0200 | <Rembane> | Inst: Cool syntax btw |
2024-09-26 22:54:41 +0200 | <tomsmeding> | type Foo = String ; type Bar = Text ; type Baz = ByteString |
2024-09-26 22:55:53 +0200 | <Inst> | type synonyming the inputs of a function to be more descriptive |
2024-09-26 22:56:58 +0200 | <tomsmeding> | write them as separate `type` declarations :) |
2024-09-26 22:57:01 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-09-26 22:57:12 +0200 | <EvanR> | it's true |
2024-09-26 22:57:28 +0200 | <EvanR> | if (a,b,c) = (d,e,f) then by the laws of something or other |
2024-09-26 22:57:32 +0200 | <EvanR> | a = d |
2024-09-26 22:57:34 +0200 | <EvanR> | b = e |
2024-09-26 22:57:35 +0200 | <EvanR> | c = f |
2024-09-26 22:57:45 +0200 | <tomsmeding> | injectivity of data constructors |
2024-09-26 22:58:29 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds) |
2024-09-26 22:59:01 +0200 | <tomsmeding> | (Injectivity of a function f : a -> b means that different a's get sent to different b's. Hence, if f x = f y, then x = y.) |
2024-09-26 22:59:01 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 22:59:35 +0200 | <EvanR> | it's also (in the case of pairs) just part of the definition of identity types for pair in HoTT |
2024-09-26 23:00:01 +0200 | <tomsmeding> | right, if you want injectivity of functions of multiple arguments, there is some basic argument that products are injective somewhere :p |
2024-09-26 23:00:13 +0200 | briandaed | (~root@185.234.210.211) |
2024-09-26 23:00:21 +0200 | <tomsmeding> | injective in both their arguments, that is |
2024-09-26 23:01:03 +0200 | <EvanR> | so in that case you don't need a separate injectivity axiom |
2024-09-26 23:01:19 +0200 | <EvanR> | it's just defined that way |
2024-09-26 23:01:27 +0200 | <briandaed> | is there a way to pass a package with a different name? trying to clean mess with crypton vs cryptonite and would like to pass crypton as cryptonite replacement |
2024-09-26 23:01:43 +0200 | <monochrom> | (Apart from how you know that product exists in the first place. >:) ) |
2024-09-26 23:01:57 +0200 | <tomsmeding> | briandaed: as in, you depend on some package X, and X depends on cryptonite, but you'd like to substitute crypton? |
2024-09-26 23:02:00 +0200 | <tomsmeding> | or is X your own package? |
2024-09-26 23:02:21 +0200 | <briandaed> | tomsmeding, first option |
2024-09-26 23:02:26 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) raehik |
2024-09-26 23:02:54 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 260 seconds) |
2024-09-26 23:02:59 +0200 | <tomsmeding> | hm, cabal backpack does modules, not packages AFAIK |
2024-09-26 23:03:51 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-09-26 23:04:01 +0200 | <monochrom> | Right, backpack won't do it. |
2024-09-26 23:04:08 +0200 | machinedgod | (~machinedg@d50-99-47-73.abhsia.telus.net) machinedgod |
2024-09-26 23:04:22 +0200 | <tomsmeding> | (for reference, this is backpack, i.e. this idea but for individual modules: https://cabal.readthedocs.io/en/3.4/cabal-package.html#pkg-field-mixins ) |
2024-09-26 23:05:38 +0200 | <monochrom> | Only way I can think of is setting up your own local repo (https://cabal.readthedocs.io/en/stable/config.html#local-no-index-repositories) then you can put any abriged butchered packages there and you can arrange them to take precedence. |
2024-09-26 23:05:42 +0200 | <tomsmeding> | a _very_ hacky solution is to vendor crypton in, patch its cabal file to say "cryptonite" instead of "crypton", and then put that vendored crypton/cryptonite in the packages: field of cabal.project |
2024-09-26 23:06:02 +0200 | <tomsmeding> | stuff in 'packages:' overrides hackage |
2024-09-26 23:06:58 +0200 | <Inst> | hummm |
2024-09-26 23:07:02 +0200 | <Inst> | hmmm |
2024-09-26 23:07:22 +0200 | <briandaed> | yeah, thought about something like this but it's ... ugly |
2024-09-26 23:08:39 +0200 | <monochrom> | Sure, this is known as "supply-chain attack" >:) |
2024-09-26 23:09:09 +0200 | EvanR | (~EvanR@user/evanr) (Quit: Leaving) |
2024-09-26 23:09:30 +0200 | <Inst> | type a $> b = a |
2024-09-26 23:09:36 +0200 | <Inst> | unfortunately we don't have a const operator |
2024-09-26 23:09:45 +0200 | <Inst> | type a $> b = b |
2024-09-26 23:10:35 +0200 | <Inst> | this is better than using dumb type synonyms for function inputs, easier to write delay $> Int -> repetitions $> Int -> IO () |
2024-09-26 23:11:07 +0200 | <tomsmeding> | relevant: https://hackage.haskell.org/package/tagged-0.8.8/docs/Data-Tagged.html |
2024-09-26 23:11:10 +0200 | ft | (~ft@p4fc2acce.dip0.t-ipconnect.de) ft |
2024-09-26 23:11:53 +0200 | <tomsmeding> | (not quite the same, because it's a newtype) |
2024-09-26 23:12:20 +0200 | <Inst> | no i mean if you use type synonyms to change the function type signature to something more descriptive, if you reuse the type you'll force the reader to go look up what the type synonym is |
2024-09-26 23:13:07 +0200 | briandaed | (~root@185.234.210.211) (Quit: Lost terminal) |
2024-09-26 23:14:47 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 23:16:02 +0200 | byte | (~byte@149.28.222.189) (Ping timeout: 252 seconds) |
2024-09-26 23:16:19 +0200 | byte | (~byte@149.28.222.189) |
2024-09-26 23:19:21 +0200 | <Inst> | type a `Is` b = b works |
2024-09-26 23:19:41 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-09-26 23:24:20 +0200 | lucy | (~lucy@user/lucy) (Quit: leaving) |
2024-09-26 23:25:18 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-09-26 23:25:31 +0200 | krei-se | (~krei-se@p57af2362.dip0.t-ipconnect.de) (Quit: ZNC 1.9.1 - https://znc.in) |
2024-09-26 23:25:34 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2024-09-26 23:29:12 +0200 | Guest68 | (~Guest2@181.28.115.159) |
2024-09-26 23:29:41 +0200 | <Guest68> | hi |
2024-09-26 23:29:46 +0200 | Guest68 | (~Guest2@181.28.115.159) (Client Quit) |
2024-09-26 23:30:35 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 23:31:46 +0200 | <geekosaur> | 👀 |
2024-09-26 23:35:37 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-09-26 23:41:28 +0200 | Tisoxin | (~Ikosit@user/ikosit) (Read error: Connection reset by peer) |
2024-09-26 23:42:52 +0200 | machinedgod | (~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 265 seconds) |
2024-09-26 23:42:53 +0200 | troojg | (~troojg@user/troojg) troojg |
2024-09-26 23:46:22 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-26 23:46:25 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2024-09-26 23:48:57 +0200 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2024-09-26 23:51:34 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-09-26 23:54:57 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 265 seconds) |
2024-09-26 23:59:13 +0200 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en) |