| 2026-02-05 00:01:34 +0100 | tromp | (~textual@2001:1c00:3487:1b00:10a6:5d4a:b26:4065) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2026-02-05 00:04:09 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 00:08:56 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-02-05 00:15:24 +0100 | mange | (~mange@user/mange) mange |
| 2026-02-05 00:18:37 +0100 | paddymahoney | (~paddymaho@pool-99-250-10-137.cpe.net.cable.rogers.com) (Remote host closed the connection) |
| 2026-02-05 00:19:53 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 00:24:13 +0100 | paddymahoney | (~paddymaho@pool-99-250-10-137.cpe.net.cable.rogers.com) |
| 2026-02-05 00:24:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-02-05 00:28:55 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 240 seconds) |
| 2026-02-05 00:33:40 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 00:38:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-02-05 00:40:50 +0100 | <haskellbridge> | <loonycyborg> There still are actual malfunctions out there, like faulty ram modules that flip some bits. |
| 2026-02-05 00:41:26 +0100 | <haskellbridge> | <loonycyborg> good luck figuring out what is because of such a malfunction and what comes from programmer brainfarts :P |
| 2026-02-05 00:44:07 +0100 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 264 seconds) |
| 2026-02-05 00:49:23 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 00:50:38 +0100 | <EvanR> | not just faulty ram, unless it's by definition, even space grade chips will be giving a rating in terms of probability |
| 2026-02-05 00:51:48 +0100 | <lantti> | isn't it still a programmers decision if it is acceptable that such malfunctions cause a program to fail (considering severity and probability etc.)? |
| 2026-02-05 00:52:39 +0100 | <lantti> | if it is not then the programmer must take that into consideration and have reduncancy and whatnot |
| 2026-02-05 00:52:43 +0100 | <EvanR> | that's the esolang I was talking about |
| 2026-02-05 00:52:55 +0100 | <jreicher> | I wish my workplace tested with chaosmonkey |
| 2026-02-05 00:52:57 +0100 | <EvanR> | where code is deterioriating around you, and it's up to the programmer to somehow deal with it |
| 2026-02-05 00:53:20 +0100 | <lantti> | oh, sorry I didn't read back far enough |
| 2026-02-05 00:53:23 +0100 | <EvanR> | instead of assuming we have this luxurious ideal computer |
| 2026-02-05 00:53:38 +0100 | qqq | (~qqq@185.54.21.178) |
| 2026-02-05 00:54:00 +0100 | <haskellbridge> | <loonycyborg> I remember random flips from alpha particles were actual problem for some ram chips |
| 2026-02-05 00:54:01 +0100 | <haskellbridge> | <loonycyborg> but there's some possibility that space radiation could flip a bit in any chip |
| 2026-02-05 00:54:24 +0100 | <EvanR> | I need to find this page by superkuh, which lists all the reasons the bits could flip |
| 2026-02-05 00:54:27 +0100 | <haskellbridge> | <loonycyborg> and probably many other sources of bad things that could happem.. |
| 2026-02-05 00:54:54 +0100 | <EvanR> | space radiation over here, the material your chip is made of has a % of radioactive material in it, ... |
| 2026-02-05 00:56:03 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-02-05 00:56:17 +0100 | <EvanR> | https://esolangs.org/wiki/Entropy |
| 2026-02-05 00:56:28 +0100 | <haskellbridge> | <loonycyborg> maybe even just above average thermal fluctuation, given how small chips are now |
| 2026-02-05 00:56:40 +0100 | <haskellbridge> | <loonycyborg> dense that is |
| 2026-02-05 01:07:26 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 01:10:09 +0100 | trickard_ | trickard |
| 2026-02-05 01:12:29 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2026-02-05 01:13:12 +0100 | weary-traveler | (~user@user/user363627) user363627 |
| 2026-02-05 01:13:29 +0100 | EvanR | (~EvanR@user/evanr) (Quit: Leaving) |
| 2026-02-05 01:15:02 +0100 | EvanR | (~EvanR@user/evanr) EvanR |
| 2026-02-05 01:16:19 +0100 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
| 2026-02-05 01:21:30 +0100 | vidak | (~vidak@2407:e400:7800:2c01:d0be:76f8:cc84:bd4a) vidak |
| 2026-02-05 01:23:10 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 01:27:42 +0100 | haritz | (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in) |
| 2026-02-05 01:27:50 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-02-05 01:34:58 +0100 | Googulator | (~Googulato@2a01-036d-0106-216f-0081-f2ad-9e0f-9d89.pool6.digikabel.hu) (Quit: Client closed) |
| 2026-02-05 01:35:08 +0100 | cyphase | (~cyphase@user/cyphase) cyphase |
| 2026-02-05 01:35:12 +0100 | Googulator | (~Googulato@2a01-036d-0106-216f-0081-f2ad-9e0f-9d89.pool6.digikabel.hu) |
| 2026-02-05 01:38:19 +0100 | w00ter | (~w00ter@user/w00ter) (Quit: Leaving...) |
| 2026-02-05 01:38:56 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 01:43:53 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 2026-02-05 01:50:14 +0100 | Square2 | (~Square@user/square) Square |
| 2026-02-05 01:54:43 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 01:55:18 +0100 | Tuplanolla | (~Tuplanoll@85-156-32-207.elisa-laajakaista.fi) (Quit: Leaving.) |
| 2026-02-05 01:58:52 +0100 | m_a_r_k | (~m_a_r_k@archlinux/support/mark) (Ping timeout: 256 seconds) |
| 2026-02-05 01:59:43 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-02-05 02:01:42 +0100 | xff0x | (~xff0x@2405:6580:b080:900:d171:1c19:51a5:d6b5) (Ping timeout: 256 seconds) |
| 2026-02-05 02:03:03 +0100 | tremon | (~tremon@83.80.159.219) (Remote host closed the connection) |
| 2026-02-05 02:08:07 +0100 | otto_s | (~user@p5de2f01c.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 2026-02-05 02:09:30 +0100 | otto_s | (~user@p4ff27c83.dip0.t-ipconnect.de) |
| 2026-02-05 02:10:19 +0100 | acidjnk | (~acidjnk@p200300d6e700e57835d41376842fa308.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
| 2026-02-05 02:10:31 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 02:10:33 +0100 | m_a_r_k | (~m_a_r_k@archlinux/support/mark) m_a_r_k |
| 2026-02-05 02:14:56 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-02-05 02:25:52 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 02:26:51 +0100 | hakutaku | (~textual@user/hakutaku) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 2026-02-05 02:28:44 +0100 | omidmash0 | (~omidmash@user/omidmash) omidmash |
| 2026-02-05 02:29:34 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 246 seconds) |
| 2026-02-05 02:29:55 +0100 | w00ter | (~w00ter@user/w00ter) w00ter |
| 2026-02-05 02:31:13 +0100 | omidmash | (~omidmash@user/omidmash) (Ping timeout: 260 seconds) |
| 2026-02-05 02:31:13 +0100 | omidmash0 | omidmash |
| 2026-02-05 02:32:43 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-02-05 02:43:54 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 02:48:37 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-02-05 02:59:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 03:03:51 +0100 | hakutaku | (~textual@user/hakutaku) hakutaku |
| 2026-02-05 03:04:07 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 2026-02-05 03:05:10 +0100 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 2026-02-05 03:15:05 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 03:15:18 +0100 | hakutaku | (~textual@user/hakutaku) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 2026-02-05 03:20:25 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-02-05 03:30:50 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 03:34:23 +0100 | jmcantrell | (~weechat@user/jmcantrell) (Ping timeout: 265 seconds) |
| 2026-02-05 03:35:44 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-02-05 03:40:23 +0100 | pavonia_ | (~user@user/siracusa) siracusa |
| 2026-02-05 03:40:35 +0100 | pavonia | (~user@user/siracusa) (Read error: Connection reset by peer) |
| 2026-02-05 03:40:56 +0100 | pavonia_ | pavonia |
| 2026-02-05 03:46:38 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 03:51:19 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-02-05 03:59:27 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine) |
| 2026-02-05 03:59:49 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
| 2026-02-05 04:00:01 +0100 | attlin | (~user@user/attlin) (Quit: Leaving) |
| 2026-02-05 04:02:00 +0100 | attlin | (~user@user/attlin) attlin |
| 2026-02-05 04:02:26 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 04:09:37 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-02-05 04:20:29 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 04:25:08 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-02-05 04:35:51 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 04:40:31 +0100 | Googulator | (~Googulato@2a01-036d-0106-216f-0081-f2ad-9e0f-9d89.pool6.digikabel.hu) (Quit: Client closed) |
| 2026-02-05 04:40:45 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-02-05 04:40:47 +0100 | Googulator | (~Googulato@2a01-036d-0106-216f-0081-f2ad-9e0f-9d89.pool6.digikabel.hu) |
| 2026-02-05 04:48:50 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 04:54:08 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2026-02-05 05:00:19 +0100 | jreicher | (~joelr@user/jreicher) (Ping timeout: 264 seconds) |
| 2026-02-05 05:00:56 +0100 | jreicher | (~joelr@user/jreicher) jreicher |
| 2026-02-05 05:01:43 +0100 | peterbecich | (~Thunderbi@71.84.33.135) peterbecich |
| 2026-02-05 05:02:31 +0100 | chexum_ | (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 2026-02-05 05:02:42 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) chexum |
| 2026-02-05 05:04:37 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 05:07:02 +0100 | omidmash | (~omidmash@user/omidmash) (Quit: The Lounge - https://thelounge.chat) |
| 2026-02-05 05:09:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-02-05 05:11:53 +0100 | omidmash | (~omidmash@user/omidmash) omidmash |
| 2026-02-05 05:14:02 +0100 | jmcantrell_ | (~weechat@user/jmcantrell) jmcantrell |
| 2026-02-05 05:18:16 +0100 | Pozyomka | (~pyon@user/pyon) (Ping timeout: 246 seconds) |
| 2026-02-05 05:20:14 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 2026-02-05 05:20:16 +0100 | Pozyomka | (~pyon@user/pyon) pyon |
| 2026-02-05 05:20:24 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 05:20:37 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) ChaiTRex |
| 2026-02-05 05:25:16 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-02-05 05:27:59 +0100 | wickedjargon | (~user@2605:8d80:5431:3c2c:999d:e956:3913:d370) wickedjargon |
| 2026-02-05 05:36:09 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 05:40:48 +0100 | machinedgod | (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 260 seconds) |
| 2026-02-05 05:42:58 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 2026-02-05 05:44:40 +0100 | jle` | (~jle`@2603:8001:3b00:11:aa96:1bfc:d44b:9e) jle` |
| 2026-02-05 05:47:14 +0100 | emaczen | (~user@user/emaczen) (Ping timeout: 256 seconds) |
| 2026-02-05 05:54:11 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 05:58:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-02-05 06:05:12 +0100 | xff0x_ | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 2026-02-05 06:06:22 +0100 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 255 seconds) |
| 2026-02-05 06:09:59 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 06:15:14 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2026-02-05 06:25:46 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 06:30:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-02-05 06:40:48 +0100 | mange | (~mange@user/mange) (Quit: Quittin' time!) |
| 2026-02-05 06:40:54 +0100 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 260 seconds) |
| 2026-02-05 06:41:33 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 06:46:28 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-02-05 06:49:16 +0100 | jmcantrell_ | (~weechat@user/jmcantrell) (Ping timeout: 246 seconds) |
| 2026-02-05 06:49:54 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 06:51:01 +0100 | divya | (~divya@140.238.251.170) (Ping timeout: 264 seconds) |
| 2026-02-05 06:53:22 +0100 | michalz | (~michalz@185.246.207.200) |
| 2026-02-05 06:54:32 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-02-05 07:01:55 +0100 | hakutaku | (~textual@user/hakutaku) hakutaku |
| 2026-02-05 07:02:51 +0100 | hakutaku | (~textual@user/hakutaku) (Client Quit) |
| 2026-02-05 07:05:31 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 07:08:51 +0100 | takuan | (~takuan@d8D86B9E9.access.telenet.be) |
| 2026-02-05 07:10:36 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-02-05 07:21:19 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 07:24:31 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 2026-02-05 07:24:56 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) ChaiTRex |
| 2026-02-05 07:28:13 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-02-05 07:39:21 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 07:41:20 +0100 | constxd | (~constxd@user/constxd) (Quit: kiwi irc - hadmade client) |
| 2026-02-05 07:43:47 +0100 | constxd | (~constxd@user/constxd) constxd |
| 2026-02-05 07:44:25 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 2026-02-05 07:50:51 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 07:54:50 +0100 | emmanuelux | (~em@user/emmanuelux) emmanuelux |
| 2026-02-05 07:55:11 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-02-05 08:04:52 +0100 | ags | (~ags@p200300dcb736f1003d348acd0f4709f1.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 2026-02-05 08:05:39 +0100 | ystael | (~ystael@user/ystael) (Ping timeout: 250 seconds) |
| 2026-02-05 08:06:13 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 08:06:19 +0100 | dolio | (~dolio@130.44.140.168) (Ping timeout: 264 seconds) |
| 2026-02-05 08:11:18 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2026-02-05 08:14:07 +0100 | dolio | (~dolio@130.44.140.168) dolio |
| 2026-02-05 08:17:31 +0100 | ystael | (~ystael@user/ystael) ystael |
| 2026-02-05 08:22:01 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 08:25:21 +0100 | divya | (divya@140.238.251.170) divya |
| 2026-02-05 08:25:21 +0100 | marinelli | (~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli) |
| 2026-02-05 08:25:39 +0100 | ft | (~ft@p508db4c0.dip0.t-ipconnect.de) (Quit: leaving) |
| 2026-02-05 08:26:33 +0100 | emmanuelux | (~em@user/emmanuelux) (Read error: Connection reset by peer) |
| 2026-02-05 08:27:01 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-02-05 08:37:47 +0100 | emmanuelux | (~em@user/emmanuelux) emmanuelux |
| 2026-02-05 08:37:49 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 08:42:58 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 2026-02-05 08:46:41 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 08:49:18 +0100 | tromp | (~textual@2001:1c00:3487:1b00:4842:24c6:bd5c:fe37) |
| 2026-02-05 08:49:52 +0100 | trickard | (~trickard@cpe-61-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2026-02-05 08:50:05 +0100 | trickard_ | (~trickard@cpe-61-98-47-163.wireline.com.au) |
| 2026-02-05 08:50:37 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 2026-02-05 08:51:19 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-02-05 08:51:52 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 08:56:49 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2026-02-05 09:07:18 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 09:12:24 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 2026-02-05 09:12:34 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) ChaiTRex |
| 2026-02-05 09:13:49 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-02-05 09:23:41 +0100 | emmanuelux | (~em@user/emmanuelux) (Quit: bye) |
| 2026-02-05 09:25:20 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-02-05 09:25:21 +0100 | lbseale | (~quassel@user/ep1ctetus) (Ping timeout: 252 seconds) |
| 2026-02-05 09:27:07 +0100 | emmanuelux | (~em@user/emmanuelux) emmanuelux |
| 2026-02-05 09:30:19 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-02-05 09:41:25 +0100 | ouilemur | (~jgmerritt@user/ouilemur) (Ping timeout: 250 seconds) |
| 2026-02-05 09:42:29 +0100 | emmanuelux | (~em@user/emmanuelux) (Quit: bye) |
| 2026-02-05 09:43:09 +0100 | ouilemur | (~jgmerritt@user/ouilemur) ouilemur |
| 2026-02-05 10:00:18 +0100 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 2026-02-05 10:07:47 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2026-02-05 10:12:02 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
| 2026-02-05 10:13:38 +0100 | trickard_ | trickard |
| 2026-02-05 10:19:49 +0100 | chele | (~chele@user/chele) chele |
| 2026-02-05 10:25:18 +0100 | gentauro | Hmmm, I just realized that in SML (and derivates such as OCaml, …) the "not equal operator" (a <> b) states that `a > b` or `a < b`: https://smlhelp.github.io/book/docs/start/syntax/#boolean-operation |
| 2026-02-05 10:26:43 +0100 | gentauro | which somehow makes sense. In HaskeLLM `/=` (division equals) is not that intuitive. That said, it took me like "ages" to realize `<>` xD |
| 2026-02-05 10:29:32 +0100 | <Googulator> | Makes sense... if you're only thinking of real number and other intuitively sortable types. "Less than or greater than" is a downright lie e.g. for complex numbers. |
| 2026-02-05 10:34:42 +0100 | <gentauro> | Googulator: I don't think we have complex numbers in SML (or derivates) |
| 2026-02-05 10:34:45 +0100 | <gentauro> | I might be wrong |
| 2026-02-05 10:40:32 +0100 | xff0x_ | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Quit: xff0x_) |
| 2026-02-05 10:42:10 +0100 | trickard | (~trickard@cpe-61-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2026-02-05 10:42:23 +0100 | trickard_ | (~trickard@cpe-61-98-47-163.wireline.com.au) |
| 2026-02-05 10:42:50 +0100 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 2026-02-05 10:43:03 +0100 | <tomsmeding> | gentauro: you probably already know this, but for completeness, /= is ≠ |
| 2026-02-05 10:44:07 +0100 | trickard_ | (~trickard@cpe-61-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2026-02-05 10:45:06 +0100 | <probie> | Just pick an ordering on complex numbers and call it a day |
| 2026-02-05 10:45:15 +0100 | tremon | (~tremon@83.80.159.219) tremon |
| 2026-02-05 10:45:27 +0100 | <probie> | We're already going to hell for misusing `Ord` |
| 2026-02-05 10:47:40 +0100 | <probie> | > let { nan = 0/(0 :: Double); m = M.fromList [(nan, 3), (nan, 4)] } in (m, nan `M.member` m) |
| 2026-02-05 10:47:41 +0100 | <lambdabot> | (fromList [(NaN,3),(NaN,4)],False) |
| 2026-02-05 10:50:16 +0100 | <Leary> | Yeah, `Ord` is (or has become) a class for types that support /some/ decidable total order, however arbitrary. `Complex` poses no issue whatsoever, but e.g `IORef` might---it supports equality testing but not ordering. |
| 2026-02-05 10:51:36 +0100 | <probie> | Personally, I suggest `instance (Ord a) => Ord (Complex a) where compare (a :+ b) (c :+ d) = compare (a,b) (c,d)` |
| 2026-02-05 10:52:17 +0100 | <Leary> | Yes, that's what would be derived, and what we should have. |
| 2026-02-05 10:53:11 +0100 | trickard_ | (~trickard@cpe-61-98-47-163.wireline.com.au) |
| 2026-02-05 10:53:39 +0100 | <int-e> | Eh half of the time I feel like using it I end up copying Complex anyway, so I can have instance Num a => Num (Complex a) |
| 2026-02-05 10:53:41 +0100 | <tomsmeding> | I think there's a good argument to be made for _not_ having that instance. I know floats are a mess anyway, but at least it's considered basic programming knowledge that ordering on floats is a mess |
| 2026-02-05 10:55:03 +0100 | tomsmeding | was wondering why Complex doesn't have that instance, but it's magnitude computation in abs and signum |
| 2026-02-05 10:55:11 +0100 | <int-e> | (if anybody ever makes a new Haskell derivative, `abs` and `signum` should be in their own class) |
| 2026-02-05 10:55:22 +0100 | <tomsmeding> | yes, yet another reason for Num to be nonsense |
| 2026-02-05 10:55:43 +0100 | <tomsmeding> | fromInteger also |
| 2026-02-05 10:55:58 +0100 | <int-e> | tomsmeding: In that context I wouldn't care about abs and signum so I'd use abs = id and signum 0 = 0, signum _ = 1 |
| 2026-02-05 10:56:06 +0100 | <tomsmeding> | I imagined yes |
| 2026-02-05 11:00:08 +0100 | mjrosenb | (~mjrosenb@pool-71-190-143-170.nycmny.fios.verizon.net) (Remote host closed the connection) |
| 2026-02-05 11:01:47 +0100 | <probie> | tomsmeding: Who needs a sane instance when you can have a useful instance. I don't really think that it's any worse than `instance Traversable ((,) a)`. |
| 2026-02-05 11:01:58 +0100 | <int-e> | tomsmeding: all my rings are unital ;) |
| 2026-02-05 11:02:33 +0100 | <int-e> | (I don't usually mind fromInteger) |
| 2026-02-05 11:02:36 +0100 | <probie> | It's not basic programming knowledge that `product (3,4) = 4` (alright, technically that's `Foldable` not `Traversable`, but close enough |
| 2026-02-05 11:02:37 +0100 | <merijn> | Leary: The reason IORef doesn't support ordering is that it's equality is based on memory address, which you can't use for ordering, since it might change |
| 2026-02-05 11:04:19 +0100 | akegalj | (~akegalj@173-245.dsl.iskon.hr) akegalj |
| 2026-02-05 11:04:33 +0100 | <haskellbridge> | <Liamzee> just out of curiosity, if Haskell had a program paying UGs to do FOSS work, would you be donating? |
| 2026-02-05 11:04:34 +0100 | <int-e> | (it's a heap object; GC can move it) |
| 2026-02-05 11:04:56 +0100 | <tomsmeding> | int-e: I don't mind having to define abs and signum for matrices, but fromInteger is a pain in the behind :) |
| 2026-02-05 11:05:08 +0100 | <tomsmeding> | probie: fair point, I guess |
| 2026-02-05 11:05:45 +0100 | <haskellbridge> | <Liamzee> i wonder if we'll ever split num into ring subclasses |
| 2026-02-05 11:06:03 +0100 | <merijn> | It's not happening |
| 2026-02-05 11:06:08 +0100 | <probie> | tomsmeding: Just only allow square matrices, and then have `fromInteger` set the diagonal |
| 2026-02-05 11:06:33 +0100 | <merijn> | Most proposed abstractions that are "more mathematically correct" tend to have really shit ergonomics for actual programming |
| 2026-02-05 11:07:02 +0100 | <int-e> | tomsmeding: well you should only have square matrices of fixed size if you want a Num instance ;-) |
| 2026-02-05 11:07:59 +0100 | <haskellbridge> | <Liamzee> merijin: I don't mean replace num, I mean, turn num into a superclass a la the FAM change |
| 2026-02-05 11:08:56 +0100 | <int-e> | (Smiley because I'm not sure that I'd heed that advice myself. Convenience is worth a lot of compromises...) |
| 2026-02-05 11:09:08 +0100 | <tomsmeding> | int-e: you shouldn't tag me there, you should tag probie, I've thought about this plenty :p |
| 2026-02-05 11:09:30 +0100 | <tomsmeding> | oh you mean for (+) |
| 2026-02-05 11:09:33 +0100 | <tomsmeding> | I do not care one whit |
| 2026-02-05 11:09:51 +0100 | <tomsmeding> | if you want a num instance for arrays, you can have the matlab experience |
| 2026-02-05 11:14:12 +0100 | <int-e> | tomsmeding: Sorry but I don't mind telling you things that you already know. :-P |
| 2026-02-05 11:15:05 +0100 | <tomsmeding> | fair. :P |
| 2026-02-05 11:17:01 +0100 | haritz | (~hrtz@140.228.70.141) |
| 2026-02-05 11:17:01 +0100 | haritz | (~hrtz@140.228.70.141) (Changing host) |
| 2026-02-05 11:17:01 +0100 | haritz | (~hrtz@user/haritz) haritz |
| 2026-02-05 11:17:01 +0100 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 246 seconds) |
| 2026-02-05 11:19:08 +0100 | acidjnk | (~acidjnk@p200300d6e700e57835d41376842fa308.dip0.t-ipconnect.de) acidjnk |
| 2026-02-05 11:27:31 +0100 | trickard_ | (~trickard@cpe-61-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2026-02-05 11:27:38 +0100 | bggd_ | (~bgg@2a01:e0a:fd5:f510:45eb:593:20bc:aaf7) |
| 2026-02-05 11:27:44 +0100 | trickard_ | (~trickard@cpe-61-98-47-163.wireline.com.au) |
| 2026-02-05 11:31:28 +0100 | <dutchie> | hmm, how could I encode a cloze deletion thing (i.e. fill-in-the-blanks "a [ring] is structure with [compatible addition and multiplication]") as a Haskell data type. first thought would be [Either String String] where Left is deleted text and Right is plain but that doesn't encode "at least one left and one right in some order" |
| 2026-02-05 11:32:27 +0100 | <dutchie> | so my example would be [Right "A", Left "ring", Right "is a structure with", Left "compatible addition and multiplication"] |
| 2026-02-05 11:36:58 +0100 | __monty__ | (~toonn@user/toonn) (Quit: Lost terminal) |
| 2026-02-05 11:41:33 +0100 | <tomsmeding> | dutchie: do you really need the restrictoin that there's at least one Right and at least one Left? |
| 2026-02-05 11:41:46 +0100 | <dutchie> | morally yes, probably practically no |
| 2026-02-05 11:41:49 +0100 | <tomsmeding> | no Right just sounds like a stupid cloze to me, not an invalid one |
| 2026-02-05 11:41:56 +0100 | <tomsmeding> | and no Left the same |
| 2026-02-05 11:42:16 +0100 | trickard_ | (~trickard@cpe-61-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2026-02-05 11:42:19 +0100 | <tomsmeding> | data structures typically work better if they represent a "neat" space of the possibilities without edge-case restrictions |
| 2026-02-05 11:42:26 +0100 | <tomsmeding> | if you want the edge-case restrictions, impose them from outside |
| 2026-02-05 11:42:28 +0100 | trickard_ | (~trickard@cpe-61-98-47-163.wireline.com.au) |
| 2026-02-05 11:42:29 +0100 | <dutchie> | I guess NonEmpty might be better at the very least |
| 2026-02-05 11:42:39 +0100 | <tomsmeding> | possibly |
| 2026-02-05 11:43:24 +0100 | <tomsmeding> | you can also consider a custom data type instead of Either, just to give the constructors more sensible names |
| 2026-02-05 11:43:43 +0100 | <dutchie> | yeah I was definitely going to use something custom instead of Either |
| 2026-02-05 11:44:16 +0100 | <dutchie> | I think I am mostly asking out of interest about how you'd do type construction to enforce something like that |
| 2026-02-05 11:44:40 +0100 | <dutchie> | (especially since Strings can be empty anyway, which immediately works around the whole point) |
| 2026-02-05 11:46:22 +0100 | tomsmeding | . o O ( NonEmpty Char ) |
| 2026-02-05 11:46:32 +0100 | <tomsmeding> | which is unergonomic as f* |
| 2026-02-05 11:46:39 +0100 | <dutchie> | well I'm really using Text anyway |
| 2026-02-05 11:46:44 +0100 | <dutchie> | and that |
| 2026-02-05 11:47:05 +0100 | <tomsmeding> | really, having two Rights in a row is useless too, is it? |
| 2026-02-05 11:47:58 +0100 | <dutchie> | true |
| 2026-02-05 11:48:45 +0100 | <tomsmeding> | if you could require the whole thing to start and end with a Right, you could do an alternation thing |
| 2026-02-05 11:48:48 +0100 | <dutchie> | I started trying to define some recursive list-like type |
| 2026-02-05 11:48:56 +0100 | <dutchie> | yeah with alternation like that |
| 2026-02-05 11:49:06 +0100 | <tomsmeding> | but if you want to allow '[gap] text [gap]' then it becomes really awkward |
| 2026-02-05 11:51:53 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 2026-02-05 11:52:48 +0100 | <gentauro> | tomsmeding: «completeness, /= is ≠» my bad. Yeah, I knew this -> `\neq in LaTeX` :( |
| 2026-02-05 11:53:32 +0100 | oskarw | (~oskarw@user/oskarw) oskarw |
| 2026-02-05 11:54:27 +0100 | trickard_ | (~trickard@cpe-61-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2026-02-05 11:54:41 +0100 | trickard_ | (~trickard@cpe-61-98-47-163.wireline.com.au) |
| 2026-02-05 11:54:58 +0100 | <tomsmeding> | or /not= |
| 2026-02-05 11:55:02 +0100 | <tomsmeding> | \not= |
| 2026-02-05 12:03:29 +0100 | Enrico63 | (~Enrico63@host-79-27-153-69.retail.telecomitalia.it) Enrico63 |
| 2026-02-05 12:13:46 +0100 | <haskellbridge> | <loonycyborg> I'm honestly more used to != than to /= |
| 2026-02-05 12:14:21 +0100 | __monty__ | (~toonn@user/toonn) toonn |
| 2026-02-05 12:15:44 +0100 | <mesaoptimizer> | MSR dropped support for GHC? Lol |
| 2026-02-05 12:16:56 +0100 | xff0x | (~xff0x@2405:6580:b080:900:e31d:86a4:6d4e:db85) |
| 2026-02-05 12:17:24 +0100 | <mesaoptimizer> | edwardk: why is ARIA doing category theory work in rust? I was under the impression that rust has too much friction to be anywhere useful for anything related to applied category theory |
| 2026-02-05 12:18:45 +0100 | <mesaoptimizer> | jreicher: thanks, I'm already using haskell-mode and eglot, but haskell-mode seems finicky. I'll try haskell-ts-mode too I guess |
| 2026-02-05 12:19:45 +0100 | wickedjargon | (~user@2605:8d80:5431:3c2c:999d:e956:3913:d370) (Remote host closed the connection) |
| 2026-02-05 12:30:08 +0100 | oskarw | (~oskarw@user/oskarw) (Ping timeout: 256 seconds) |
| 2026-02-05 12:30:19 +0100 | Enrico63 | (~Enrico63@host-79-27-153-69.retail.telecomitalia.it) (Quit: Client closed) |
| 2026-02-05 12:39:28 +0100 | fp | (~Thunderbi@89-27-10-140.bb.dnainternet.fi) fp |
| 2026-02-05 12:41:35 +0100 | hellwolf | (~user@eddf-7eb4-816a-bf6b-0f00-4d40-07d0-2001.sta.estpak.ee) (Remote host closed the connection) |
| 2026-02-05 12:55:17 +0100 | trickard_ | trickard |
| 2026-02-05 13:19:46 +0100 | comerijn | (~merijn@77.242.116.146) merijn |
| 2026-02-05 13:21:53 +0100 | oskarw | (~user@user/oskarw) oskarw |
| 2026-02-05 13:22:14 +0100 | Square3 | (~Square4@user/square) Square |
| 2026-02-05 13:22:49 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 264 seconds) |
| 2026-02-05 13:25:07 +0100 | Square2 | (~Square@user/square) (Ping timeout: 246 seconds) |
| 2026-02-05 13:26:33 +0100 | bggd_ | (~bgg@2a01:e0a:fd5:f510:45eb:593:20bc:aaf7) (Quit: std::move) |
| 2026-02-05 13:30:14 +0100 | machinedgod | (~machinedg@d75-159-126-101.abhsia.telus.net) machinedgod |
| 2026-02-05 13:31:06 +0100 | xff0x | (~xff0x@2405:6580:b080:900:e31d:86a4:6d4e:db85) (Quit: xff0x) |
| 2026-02-05 13:33:37 +0100 | chromoblob | (~chromoblo@user/chromob1ot1c) (Ping timeout: 264 seconds) |
| 2026-02-05 13:34:03 +0100 | chromoblob | (~chromoblo@user/chromob1ot1c) chromoblob\0 |
| 2026-02-05 13:35:11 +0100 | <oskarw> | mesaoptimizer: I have some problems with using haskell-ts-mode inside cabal project, do you have additional commands inside haskell-ts-mode? [13:32] |
| 2026-02-05 13:37:43 +0100 | xff0x | (~xff0x@2405:6580:b080:900:24e9:bd9c:7b25:9d4f) |
| 2026-02-05 13:48:13 +0100 | oskarw | (~user@user/oskarw) (Remote host closed the connection) |
| 2026-02-05 13:49:26 +0100 | oskarw | (~user@user/oskarw) oskarw |
| 2026-02-05 14:01:56 +0100 | karenw | (~karenw@user/karenw) karenw |
| 2026-02-05 14:06:45 +0100 | chromoblob | (~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer) |
| 2026-02-05 14:06:55 +0100 | <mesaoptimizer> | oskarw: i haven't yet tried haskell-ts-mode |
| 2026-02-05 14:07:05 +0100 | chromoblob | (~chromoblo@user/chromob1ot1c) chromoblob\0 |
| 2026-02-05 14:10:31 +0100 | fp | (~Thunderbi@89-27-10-140.bb.dnainternet.fi) (Ping timeout: 264 seconds) |
| 2026-02-05 14:13:58 +0100 | comerijn | (~merijn@77.242.116.146) (Quit: leaving) |
| 2026-02-05 14:15:07 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2026-02-05 14:43:25 +0100 | trickard | (~trickard@cpe-61-98-47-163.wireline.com.au) (Ping timeout: 255 seconds) |
| 2026-02-05 14:43:51 +0100 | trickard_ | (~trickard@cpe-61-98-47-163.wireline.com.au) |
| 2026-02-05 14:47:21 +0100 | ouilemur | (~jgmerritt@user/ouilemur) (Quit: WeeChat 4.8.1) |
| 2026-02-05 14:49:02 +0100 | kuribas | (~user@2a02-1810-2825-6000-6394-e629-adac-ea24.ip6.access.telenet.be) kuribas |
| 2026-02-05 14:49:10 +0100 | fp | (~Thunderbi@wireless-86-50-141-35.open.aalto.fi) fp |
| 2026-02-05 14:50:21 +0100 | karenw | (~karenw@user/karenw) (Quit: Deep into that darkness peering...) |
| 2026-02-05 14:53:35 +0100 | fp | (~Thunderbi@wireless-86-50-141-35.open.aalto.fi) (Ping timeout: 244 seconds) |
| 2026-02-05 14:55:08 +0100 | housemate | (~housemate@202.7.248.67) (Quit: https://ineedsomeacidtocalmmedown.space/) |
| 2026-02-05 14:58:48 +0100 | emaczen | (~user@user/emaczen) emaczen |
| 2026-02-05 14:59:55 +0100 | fp | (~Thunderbi@wireless-86-50-141-35.open.aalto.fi) fp |
| 2026-02-05 15:01:20 +0100 | ouilemur | (~jgmerritt@user/ouilemur) ouilemur |
| 2026-02-05 15:05:16 +0100 | tremon | (~tremon@83.80.159.219) (Quit: getting boxed in) |
| 2026-02-05 15:11:40 +0100 | housemate | (~housemate@202.7.248.67) housemate |
| 2026-02-05 15:16:29 +0100 | <gentauro> | what is `haskell-ts-mode`? Like TypeScript? |
| 2026-02-05 15:19:09 +0100 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
| 2026-02-05 15:23:09 +0100 | <dutchie> | for a mode foo-mode, foo-ts-mode is the same mode but based on tree-sitter |
| 2026-02-05 15:23:45 +0100 | <RMSBach> | mesaoptimizer: Are you using projectile? I haven't used haskell-ts-mode, but regular haskell-mode works with cabal projects when projectile is aware of the project root for me. |
| 2026-02-05 15:43:30 +0100 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
| 2026-02-05 15:44:08 +0100 | <gentauro> | ahhh, got it |
| 2026-02-05 15:53:42 +0100 | trickard_ | (~trickard@cpe-61-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2026-02-05 15:53:55 +0100 | trickard_ | (~trickard@cpe-61-98-47-163.wireline.com.au) |
| 2026-02-05 15:58:43 +0100 | AlexZenon_2 | AlexZenon |
| 2026-02-05 15:59:18 +0100 | fp | (~Thunderbi@wireless-86-50-141-35.open.aalto.fi) (Ping timeout: 244 seconds) |
| 2026-02-05 16:07:39 +0100 | <mesaoptimizer> | RMSBach: I'm using vanilla emacs, so no projectile. I might consider trying projectile if that's necessary. |
| 2026-02-05 16:07:48 +0100 | <mesaoptimizer> | thanks for the heads up |
| 2026-02-05 16:09:45 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2026-02-05 16:11:57 +0100 | euphores | (~SASL_euph@user/euphores) euphores |
| 2026-02-05 16:14:13 +0100 | trickard_ | trickard |
| 2026-02-05 16:16:03 +0100 | <RMSBach> | mesaoptimizer: I strongly recommend projectile. Also consul-projectile. The QoL is amazing. |
| 2026-02-05 16:16:22 +0100 | <RMSBach> | Also, lsp mode makes working with Haskell projects much nicer. |
| 2026-02-05 16:21:12 +0100 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
| 2026-02-05 16:31:54 +0100 | <mesaoptimizer> | RMSBach: how does lsp mode compare to the use of eglot? Because I see someone else recommended the use of eglot to me in response to my question |
| 2026-02-05 16:32:09 +0100 | <mesaoptimizer> | if you don't have an idea, that's fine, I'll try lsp myself eventually then |
| 2026-02-05 16:33:15 +0100 | <RMSBach> | I've not tried eglot. |
| 2026-02-05 16:33:21 +0100 | tromp | (~textual@2001:1c00:3487:1b00:4842:24c6:bd5c:fe37) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2026-02-05 16:39:16 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
| 2026-02-05 16:46:02 +0100 | rekahsoft | (~rekahsoft@70.51.99.245) rekahsoft |
| 2026-02-05 16:55:16 +0100 | RMSBach | (~RMSBach@24.210.9.182) (Ping timeout: 265 seconds) |
| 2026-02-05 16:55:16 +0100 | RSBach | (~RMSBach@24.210.9.182) RMSBach |
| 2026-02-05 16:55:40 +0100 | RSBach | RMSBach |
| 2026-02-05 16:55:58 +0100 | tromp | (~textual@2001:1c00:3487:1b00:4842:24c6:bd5c:fe37) |
| 2026-02-05 17:06:37 +0100 | <machinedgod> | Good morning everyone. Question re: linear types, again - is it possible to somehow convert between numeric types linearly? I realized 'fromIntegral' is non-linear, while fromInteger is - but even if I wanted to implement manually my specific case (Int -> Float wrapped with a newtype), I cannot seem to find any function that'd let me do the raw conversion linearly. |
| 2026-02-05 17:07:35 +0100 | <machinedgod> | (also curiously, trying to pattern match on a specific value and copying it "conv (MyWrap 1) = AnotherWrap 1" also gets compiler to complain. |
| 2026-02-05 17:08:12 +0100 | <tomsmeding> | wouldn't that be because you're not copying the 1, you're dropping it and then creating a new one? |
| 2026-02-05 17:08:34 +0100 | <tomsmeding> | it seems this is simply an omission in linear-base |
| 2026-02-05 17:09:10 +0100 | <machinedgod> | Oh it might be, I wouldn't know in all honesty. I checked the code in linear-base and it seems like fromIntegral is just copied over from 'base' |
| 2026-02-05 17:09:27 +0100 | tomsmeding | doesn't see any fromIntegral in linear-base at all |
| 2026-02-05 17:11:04 +0100 | <tomsmeding> | if you want to be thorough, you could define your own linear Integral class with a linear toInteger method, define fromIntegral as fromInteger . toInteger as a linear function, and then write RULEs like in base |
| 2026-02-05 17:11:17 +0100 | <tomsmeding> | or you can skip all that and unsafeCoerce the specific conversion that you need |
| 2026-02-05 17:11:34 +0100 | <tomsmeding> | even if you go the thorough route, you'll have to do that for the specific conversions anyway |
| 2026-02-05 17:12:37 +0100 | <tomsmeding> | machinedgod: eventually, these conversions boil down to calls to functions from GHC.Exts, like int2Float# |
| 2026-02-05 17:12:58 +0100 | <machinedgod> | tomsmeding: Aye, that's where I looked at, and hoped to find something like int2Float that's linear, but no luck. |
| 2026-02-05 17:13:08 +0100 | <tomsmeding> | yeah, and those primops are simply not linear |
| 2026-02-05 17:13:28 +0100 | <tomsmeding> | morally, of course, they are, so it seems it's up to you to declare that (by using unsafeCoerce) |
| 2026-02-05 17:13:40 +0100 | <machinedgod> | I considered massaging the value forcefully with Ur, but - I wanted to verify that I am not just blind or missing something (like, toInteger cannot be logically linear) |
| 2026-02-05 17:14:21 +0100 | <machinedgod> | Would this be considered, how should I call it - acceptable quality production code for current iteration of linear-base and linear types? |
| 2026-02-05 17:14:22 +0100 | <tomsmeding> | not every type that admits a nonlinear toInteger necessarily admits a linear toInteger |
| 2026-02-05 17:14:31 +0100 | <tomsmeding> | most will, however |
| 2026-02-05 17:14:48 +0100 | <tomsmeding> | I think so |
| 2026-02-05 17:15:09 +0100 | <machinedgod> | tomsmeding: That's a wise observation! I was only focused on my newtype which holds and int anyway, so I think I'll be good. Thank you for your help, I appreciate it! |
| 2026-02-05 17:15:18 +0100 | <tomsmeding> | it's probably a good idea to define `unsafeToLinear :: (a -> b) -> (a %1-> b); unsafeToLinear = unsafeCoerce` so that you don't end up accidentally unsafeCoercing too much |
| 2026-02-05 17:15:19 +0100 | <machinedgod> | (*an int) |
| 2026-02-05 17:16:09 +0100 | <machinedgod> | tomsmeding: Aye, that's the plan, when coercions are involved, I prefer to be as specific as I can, too |
| 2026-02-05 17:16:09 +0100 | <tomsmeding> | (that observation is not a reason to not go through with this though; the same can be said for fromInteger, and linear-base has a linear fromInteger just fine) |
| 2026-02-05 17:16:14 +0100 | <tomsmeding> | nice |
| 2026-02-05 17:19:46 +0100 | <haskellbridge> | <Morj> Those of you who have mastodon (or another activitypub profile): can you search for this profile and tell me if you see the message in it? https://random.test.morj.men/u/morj |
| 2026-02-05 17:19:49 +0100 | <haskellbridge> | <Morj> Testing my impl |
| 2026-02-05 17:21:44 +0100 | <haskellbridge> | <Morj> I see a lot of people trying to open it in the browser. Not yet implemented, sorry |
| 2026-02-05 17:26:15 +0100 | wickedjargon | (~user@24.83.46.194) wickedjargon |
| 2026-02-05 17:27:04 +0100 | srazkvt | (~sarah@user/srazkvt) srazkvt |
| 2026-02-05 17:31:54 +0100 | peterbecich | (~Thunderbi@71.84.33.135) peterbecich |
| 2026-02-05 17:38:19 +0100 | <darkling> | Morj: Yes, I see it. |
| 2026-02-05 17:38:46 +0100 | <haskellbridge> | <Morj> Thanks! |
| 2026-02-05 17:38:54 +0100 | <haskellbridge> | <Morj> Aand git commt |