2024-04-28 00:01:02 +0200 | sam113101 | (~sam@24.157.253.231) (Quit: WeeChat 4.2.2) |
2024-04-28 00:01:22 +0200 | sam113101 | (~sam@24.157.253.231) |
2024-04-28 00:08:40 +0200 | pavonia | (~user@user/siracusa) |
2024-04-28 00:11:06 +0200 | sam113101 | (~sam@24.157.253.231) (Quit: WeeChat 4.2.2) |
2024-04-28 00:11:39 +0200 | sam113101 | (~sam@24.157.253.231) |
2024-04-28 00:13:08 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2024-04-28 00:13:18 +0200 | sam113101 | (~sam@24.157.253.231) (Client Quit) |
2024-04-28 00:13:51 +0200 | sam113101 | (~sam@24.157.253.231) |
2024-04-28 00:17:28 +0200 | dispater- | (~dispater@host-78-146-88-32.as13285.net) |
2024-04-28 00:17:59 +0200 | orcus- | (~orcus@host-78-146-88-32.as13285.net) |
2024-04-28 00:18:10 +0200 | dispater- | (~dispater@host-78-146-88-32.as13285.net) (Remote host closed the connection) |
2024-04-28 00:18:11 +0200 | orcus- | (~orcus@host-78-146-88-32.as13285.net) (Remote host closed the connection) |
2024-04-28 00:21:42 +0200 | dispater- | (~dispater@host-78-146-88-32.as13285.net) |
2024-04-28 00:21:58 +0200 | dispater- | (~dispater@host-78-146-88-32.as13285.net) (Remote host closed the connection) |
2024-04-28 00:23:11 +0200 | yin | (~yin@user/zero) (Ping timeout: 256 seconds) |
2024-04-28 00:25:10 +0200 | <dolio> | ski gave the right answer. :þ |
2024-04-28 00:27:17 +0200 | orcus- | (~orcus@host-78-146-88-32.as13285.net) |
2024-04-28 00:27:47 +0200 | orcus- | (~orcus@host-78-146-88-32.as13285.net) (Remote host closed the connection) |
2024-04-28 00:36:07 +0200 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2024-04-28 00:37:39 +0200 | yin | (~yin@user/zero) |
2024-04-28 00:37:52 +0200 | <yin> | huh? |
2024-04-28 00:38:06 +0200 | <yin> | what is that list? |
2024-04-28 00:38:41 +0200 | peterbecich | (~Thunderbi@47.229.123.186) (Ping timeout: 252 seconds) |
2024-04-28 00:38:48 +0200 | <yin> | is it just concurrent output or something else? |
2024-04-28 00:41:05 +0200 | <dolio> | You can think of it as concurrency where the scheduling gets informed by the lazy evaluation. |
2024-04-28 00:41:47 +0200 | <dolio> | When you need something, your thread gets interrupted and the one that was supposed to calculate it runs instead. |
2024-04-28 00:42:12 +0200 | <yin> | got it |
2024-04-28 00:45:16 +0200 | <geekosaur> | unprincipled coroutines |
2024-04-28 00:48:41 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2024-04-28 00:49:22 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) |
2024-04-28 00:57:43 +0200 | acidjnk | (~acidjnk@p200300d6e714dc03d4ff90a1ba0ea518.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2024-04-28 00:57:57 +0200 | <monochrom> | Consider do { x <- unsafeInterleaveIO (writeIORef v 5 >> pure ()); y <- unsafeInterleaveIO (writeIORef v 6 >> pure ()) ; ... } |
2024-04-28 00:59:08 +0200 | <monochrom> | Now v will be 5 or 6 or unchanged at unknown future times depending on when will x or y or neither is evaluated. |
2024-04-28 01:03:56 +0200 | reki | (~halloy490@broadband-5-228-80-43.ip.moscow.rt.ru) |
2024-04-28 01:05:33 +0200 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-04-28 01:05:45 +0200 | reki | (~halloy490@broadband-5-228-80-43.ip.moscow.rt.ru) (Remote host closed the connection) |
2024-04-28 01:10:04 +0200 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 255 seconds) |
2024-04-28 01:12:34 +0200 | philopsos | (~caecilius@user/philopsos) |
2024-04-28 01:23:14 +0200 | [Leary] | (~Leary]@user/Leary/x-0910699) (Ping timeout: 252 seconds) |
2024-04-28 01:25:26 +0200 | yin | (~yin@user/zero) (Ping timeout: 256 seconds) |
2024-04-28 01:29:41 +0200 | madeleine-sydney | (~madeleine@c-76-155-235-153.hsd1.co.comcast.net) |
2024-04-28 01:44:28 +0200 | hiredman | (~hiredman@frontier1.downey.family) (Quit: Lost terminal) |
2024-04-28 01:49:53 +0200 | smoge | (~smoge@2603:7000:4b42:1100:d8aa:e17a:f1f9:f7b4) |
2024-04-28 01:50:07 +0200 | dispater- | (~dispater@host-78-146-88-32.as13285.net) |
2024-04-28 01:50:50 +0200 | dispater- | (~dispater@host-78-146-88-32.as13285.net) (Remote host closed the connection) |
2024-04-28 01:51:23 +0200 | smoge | (~smoge@2603:7000:4b42:1100:d8aa:e17a:f1f9:f7b4) (Client Quit) |
2024-04-28 01:54:02 +0200 | smogeb | (~smogeb@2603:7000:4b42:1100:d8aa:e17a:f1f9:f7b4) |
2024-04-28 02:03:19 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) |
2024-04-28 02:04:37 +0200 | <EvanR> | you could use IVar in the story. the value you get back from executing the unsafeInterleaveIO action could be an IVar behind the scenes. And some thread is responsible for doing the i/o and writing the IVar |
2024-04-28 02:07:07 +0200 | <smogeb> | what's the best book to write a interpreter (that is not scheme) ?? |
2024-04-28 02:10:22 +0200 | zetef | (~quassel@2a02:2f00:5202:1200:2128:605:71c4:66a4) (Remote host closed the connection) |
2024-04-28 02:10:50 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds) |
2024-04-28 02:11:12 +0200 | smogeb | (~smogeb@2603:7000:4b42:1100:d8aa:e17a:f1f9:f7b4) (Quit: Client closed) |
2024-04-28 02:11:26 +0200 | <dolio> | EvanR: Right, exactly. |
2024-04-28 02:13:21 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-04-28 02:22:00 +0200 | madeleine-sydney | (~madeleine@c-76-155-235-153.hsd1.co.comcast.net) (Quit: Konversation terminated!) |
2024-04-28 02:28:40 +0200 | xff0x | (~xff0x@2405:6580:b080:900:a359:eeea:f982:7525) (Ping timeout: 245 seconds) |
2024-04-28 02:34:03 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
2024-04-28 02:34:04 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-04-28 02:34:37 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit) |
2024-04-28 02:54:22 +0200 | madeleine-sydney | (~madeleine@c-76-155-235-153.hsd1.co.comcast.net) |
2024-04-28 02:57:05 +0200 | y04nn | (~username@2a03:1b20:8:f011::e10d) (Ping timeout: 268 seconds) |
2024-04-28 03:01:56 +0200 | mechap | (~mechap@user/mechap) (Quit: WeeChat 4.2.2) |
2024-04-28 03:07:31 +0200 | sawilagar | (~sawilagar@user/sawilagar) (Ping timeout: 255 seconds) |
2024-04-28 03:09:09 +0200 | jdbres | (~jdbres@user/jdbres) |
2024-04-28 03:12:09 +0200 | [Leary] | (~Leary]@user/Leary/x-0910699) |
2024-04-28 03:19:36 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds) |
2024-04-28 03:31:23 +0200 | otto_s | (~user@p4ff27de0.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2024-04-28 03:33:07 +0200 | otto_s | (~user@p5b0442ac.dip0.t-ipconnect.de) |
2024-04-28 03:35:21 +0200 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 272 seconds) |
2024-04-28 03:36:00 +0200 | causal | (~eric@50.35.88.207) |
2024-04-28 03:37:12 +0200 | philopsos | (~caecilius@user/philopsos) (Ping timeout: 255 seconds) |
2024-04-28 03:44:25 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer) |
2024-04-28 03:45:28 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-04-28 03:58:30 +0200 | hueso | (~root@user/hueso) (Quit: hueso) |
2024-04-28 04:00:48 +0200 | mindofjoe | (~joe@user/lighthouse6) |
2024-04-28 04:01:41 +0200 | hueso | (~root@user/hueso) |
2024-04-28 04:03:08 +0200 | hueso | (~root@user/hueso) (Client Quit) |
2024-04-28 04:05:03 +0200 | op_4 | (~tslil@user/op-4/x-9116473) (Remote host closed the connection) |
2024-04-28 04:05:33 +0200 | op_4 | (~tslil@user/op-4/x-9116473) |
2024-04-28 04:05:58 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 246 seconds) |
2024-04-28 04:06:23 +0200 | hueso | (~root@user/hueso) |
2024-04-28 04:15:16 +0200 | hueso | (~root@user/hueso) (Quit: hueso) |
2024-04-28 04:19:02 +0200 | hueso | (~root@user/hueso) |
2024-04-28 04:26:09 +0200 | xff0x | (~xff0x@om126236141098.32.openmobile.ne.jp) |
2024-04-28 04:31:57 +0200 | td_ | (~td@i5387091B.versanet.de) (Ping timeout: 256 seconds) |
2024-04-28 04:33:32 +0200 | td_ | (~td@i53870914.versanet.de) |
2024-04-28 04:48:11 +0200 | causal | (~eric@50.35.88.207) (Quit: WeeChat 4.1.1) |
2024-04-28 04:49:56 +0200 | causal | (~eric@50.35.88.207) |
2024-04-28 04:52:51 +0200 | y04nn | (~username@2a03:1b20:8:f011::e10d) |
2024-04-28 04:56:56 +0200 | mrmr1553343 | (~mrmr@user/mrmr) (Quit: Bye, See ya later!) |
2024-04-28 05:01:10 +0200 | xff0x | (~xff0x@om126236141098.32.openmobile.ne.jp) (Read error: Connection reset by peer) |
2024-04-28 05:01:35 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) |
2024-04-28 05:03:07 +0200 | mrmr1553343 | (~mrmr@user/mrmr) |
2024-04-28 05:10:19 +0200 | aforemny_ | (~aforemny@i59f516da.versanet.de) |
2024-04-28 05:11:35 +0200 | aforemny | (~aforemny@i59F516DA.versanet.de) (Ping timeout: 260 seconds) |
2024-04-28 05:29:05 +0200 | motherfsck | (~motherfsc@user/motherfsck) (Ping timeout: 268 seconds) |
2024-04-28 05:29:06 +0200 | sudden | (~cat@user/sudden) (Ping timeout: 252 seconds) |
2024-04-28 05:33:40 +0200 | mrmr1553343 | (~mrmr@user/mrmr) (Quit: Bye, See ya later!) |
2024-04-28 05:39:34 +0200 | mrmr1553343 | (~mrmr@user/mrmr) |
2024-04-28 05:39:46 +0200 | sudden | (~cat@user/sudden) |
2024-04-28 05:42:08 +0200 | _d0t | (~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 260 seconds) |
2024-04-28 05:45:08 +0200 | _d0t | (~{-d0t-}@user/-d0t-/x-7915216) |
2024-04-28 05:50:01 +0200 | ocra8 | (ocra8@user/ocra8) (Quit: WeeChat 4.2.2) |
2024-04-28 05:54:24 +0200 | dsrt^ | (~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Remote host closed the connection) |
2024-04-28 06:08:02 +0200 | jamegwaww | (~jamegwaww@2406:4440:0:103::1:c0) |
2024-04-28 06:09:02 +0200 | jamegwaww | (~jamegwaww@2406:4440:0:103::1:c0) (Remote host closed the connection) |
2024-04-28 06:18:24 +0200 | jdbres | (~jdbres@user/jdbres) (Quit: leaving) |
2024-04-28 06:21:57 +0200 | jdbres | (~jdbres@user/jdbres) |
2024-04-28 06:23:42 +0200 | jdbres | (~jdbres@user/jdbres) (Client Quit) |
2024-04-28 06:23:58 +0200 | sudden | (~cat@user/sudden) (Ping timeout: 268 seconds) |
2024-04-28 06:27:36 +0200 | mindofjoe | (~joe@user/lighthouse6) (Quit: Lost terminal) |
2024-04-28 06:31:48 +0200 | <ski> | @hackage ivar-simple |
2024-04-28 06:31:48 +0200 | <lambdabot> | https://hackage.haskell.org/package/ivar-simple |
2024-04-28 06:31:49 +0200 | <ski> | @hackage data-ivar |
2024-04-28 06:31:50 +0200 | <lambdabot> | https://hackage.haskell.org/package/data-ivar |
2024-04-28 06:32:29 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2024-04-28 06:35:59 +0200 | bilegeek | (~bilegeek@2600:1008:b0ad:1165:c160:8ebf:90b8:5ca) (Quit: Leaving) |
2024-04-28 06:37:15 +0200 | chiselfuse | (~chiselfus@user/chiselfuse) (Remote host closed the connection) |
2024-04-28 06:38:43 +0200 | chiselfuse | (~chiselfus@user/chiselfuse) |
2024-04-28 06:44:12 +0200 | chiselfuse | (~chiselfus@user/chiselfuse) (Remote host closed the connection) |
2024-04-28 06:45:01 +0200 | chiselfuse | (~chiselfus@user/chiselfuse) |
2024-04-28 06:51:10 +0200 | sudden | (~cat@user/sudden) |
2024-04-28 06:53:23 +0200 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2024-04-28 06:53:25 +0200 | jdbres | (~jdbres@user/jdbres) |
2024-04-28 06:55:04 +0200 | ddellacosta | (~ddellacos@ool-44c73d29.dyn.optonline.net) |
2024-04-28 06:55:06 +0200 | madeleine-sydney | (~madeleine@c-76-155-235-153.hsd1.co.comcast.net) (Quit: Konversation terminated!) |
2024-04-28 06:55:25 +0200 | bliminse | (~bliminse@user/bliminse) |
2024-04-28 07:02:02 +0200 | jdbres | (~jdbres@user/jdbres) (Quit: leaving) |
2024-04-28 07:21:41 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2024-04-28 07:24:32 +0200 | motherfsck | (~motherfsc@user/motherfsck) |
2024-04-28 07:25:51 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) |
2024-04-28 07:31:11 +0200 | motherfsck | (~motherfsc@user/motherfsck) (Ping timeout: 268 seconds) |
2024-04-28 07:41:55 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2024-04-28 07:42:28 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) |
2024-04-28 07:46:32 +0200 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
2024-04-28 07:48:35 +0200 | y04nn | (~username@2a03:1b20:8:f011::e10d) (Ping timeout: 256 seconds) |
2024-04-28 07:48:41 +0200 | tabemann_ | (~tabemann@2600:1700:7990:24e0:42f1:a891:a658:f99d) (Ping timeout: 272 seconds) |
2024-04-28 07:56:31 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 256 seconds) |
2024-04-28 07:56:44 +0200 | tabemann | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
2024-04-28 07:57:11 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-04-28 08:05:11 +0200 | motherfsck | (~motherfsc@user/motherfsck) |
2024-04-28 08:05:17 +0200 | philopsos | (~caecilius@user/philopsos) |
2024-04-28 08:06:41 +0200 | hammond | (proscan@user/hammond2) (Read error: Connection reset by peer) |
2024-04-28 08:07:17 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-04-28 08:07:59 +0200 | euphores | (~SASL_euph@user/euphores) |
2024-04-28 08:11:59 +0200 | hammond | (proscan@gateway02.insomnia247.nl) |
2024-04-28 08:13:23 +0200 | peterbecich | (~Thunderbi@47.229.123.186) |
2024-04-28 08:14:25 +0200 | notzmv | (~daniel@user/notzmv) |
2024-04-28 08:22:11 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-04-28 08:24:13 +0200 | famubu | (~julinuser@user/famubu) |
2024-04-28 08:25:22 +0200 | <famubu> | Hi. I had been trying to use megaparsec. I was trying use `satisfy` to accept a single upper-case ascii character. So I tried `satisfy Data.Char.isUpper` but that didn't work. The required type mentions `Token`. |
2024-04-28 08:41:11 +0200 | yin | (~yin@user/zero) |
2024-04-28 09:00:03 +0200 | tt12310 | (~tt1231@2603:6010:8700:4a81:219f:50d3:618a:a6ee) (Quit: The Lounge - https://thelounge.chat) |
2024-04-28 09:02:55 +0200 | tt123109 | (~tt1231@2603:6010:8700:4a81:219f:50d3:618a:a6ee) |
2024-04-28 09:14:53 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Ping timeout: 240 seconds) |
2024-04-28 09:17:10 +0200 | <[exa]> | famubu: what is your parser type? might be the case you are using an overly generic satisfy, or that your stream is not directly compatible with Char (might happen if you parse from bytestrings or so) |
2024-04-28 09:18:18 +0200 | <[exa]> | (if that's the case, I'd say there is a bytestring-compatible variant of isUpper somewhere) |
2024-04-28 09:20:49 +0200 | jinsun | (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
2024-04-28 09:21:06 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2024-04-28 09:22:17 +0200 | philopsos | (~caecilius@user/philopsos) (Ping timeout: 252 seconds) |
2024-04-28 09:35:23 +0200 | causal | (~eric@50.35.88.207) (Quit: WeeChat 4.1.1) |
2024-04-28 09:38:14 +0200 | gmg | (~user@user/gehmehgeh) |
2024-04-28 09:38:56 +0200 | acidjnk | (~acidjnk@p200300d6e714dc79605b18ab3e573168.dip0.t-ipconnect.de) |
2024-04-28 09:41:32 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-04-28 09:41:55 +0200 | yin | (~yin@user/zero) (Ping timeout: 268 seconds) |
2024-04-28 09:52:00 +0200 | peterbecich | (~Thunderbi@47.229.123.186) (Ping timeout: 252 seconds) |
2024-04-28 09:53:10 +0200 | _d0t | (~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 246 seconds) |
2024-04-28 10:00:35 +0200 | yin | (~yin@user/zero) |
2024-04-28 10:01:35 +0200 | sawilagar | (~sawilagar@user/sawilagar) |
2024-04-28 10:02:54 +0200 | xff0x | (~xff0x@softbank219059019218.bbtec.net) |
2024-04-28 10:10:15 +0200 | xff0x | (~xff0x@softbank219059019218.bbtec.net) (Ping timeout: 256 seconds) |
2024-04-28 10:10:46 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2024-04-28 10:11:17 +0200 | rvalue | (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
2024-04-28 10:11:47 +0200 | rvalue | (~rvalue@user/rvalue) |
2024-04-28 10:12:16 +0200 | <famubu> | [exa]: Sorry, I just had to add an explicit type annotation. It somehow worked with that. |
2024-04-28 10:13:16 +0200 | <famubu> | Now I'm trying to find an upto date tutorial for megaparsec. The official one mentions setting up an operator table with `Operator` type, but can't find that type at all in latest megaparsec repo.. |
2024-04-28 10:13:32 +0200 | <famubu> | Or maybe I'm not looking at the right place. |
2024-04-28 10:16:25 +0200 | <famubu> | There seems to be no `import Text.Megaparsec.Expr` in the new megaparsec. |
2024-04-28 10:16:32 +0200 | <tomsmeding> | seems to be gone since 6.0.0 |
2024-04-28 10:16:54 +0200 | <famubu> | Yeah.. I was wondering what to use in place of it. |
2024-04-28 10:16:59 +0200 | <tomsmeding> | https://hackage.haskell.org/package/parser-combinators-1.3.0/docs/Control-Monad-Combinators-Expr.h… |
2024-04-28 10:17:22 +0200 | <tomsmeding> | megaparsec was reorganised to depend on `parser-combinators` where most of the higher-level API comes from |
2024-04-28 10:18:36 +0200 | <famubu> | Thanks! Let me try that. |
2024-04-28 10:19:17 +0200 | <tomsmeding> | not sure if the API is _exactly_ the same as in the tutorial you found, but at least it's the same idea |
2024-04-28 10:20:03 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) |
2024-04-28 10:24:28 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds) |
2024-04-28 10:24:40 +0200 | euleritian | (~euleritia@dynamic-176-007-198-087.176.7.pool.telefonica.de) |
2024-04-28 10:25:57 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-04-28 10:27:33 +0200 | paddymahoney | (~paddymaho@pool-99-250-26-190.cpe.net.cable.rogers.com) (Ping timeout: 268 seconds) |
2024-04-28 10:28:23 +0200 | _d0t | (~{-d0t-}@user/-d0t-/x-7915216) |
2024-04-28 10:28:57 +0200 | euleritian | (~euleritia@dynamic-176-007-198-087.176.7.pool.telefonica.de) (Ping timeout: 255 seconds) |
2024-04-28 10:29:40 +0200 | euleritian | (~euleritia@dynamic-176-007-168-231.176.7.pool.telefonica.de) |
2024-04-28 10:32:02 +0200 | ph88 | (~ph88@ip5b403f30.dynamic.kabel-deutschland.de) |
2024-04-28 10:35:03 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
2024-04-28 10:37:36 +0200 | tzh | (~tzh@c-73-164-206-160.hsd1.or.comcast.net) (Quit: zzz) |
2024-04-28 10:37:50 +0200 | paddymahoney | (~paddymaho@pool-99-250-26-190.cpe.net.cable.rogers.com) |
2024-04-28 10:39:45 +0200 | <[exa]> | famubu: ok so that was likely an ambiguity killing it |
2024-04-28 10:41:04 +0200 | <[exa]> | famubu: re the tutorial, there was a repo with relatively up-to-date examples somewhere (as in, there was a .cabal file and it compiled), I used that for reference |
2024-04-28 10:41:40 +0200 | <[exa]> | (aaaaaaand I can't find it.) |
2024-04-28 10:44:48 +0200 | Rodney_ | (~Rodney@176.254.244.83) (Ping timeout: 252 seconds) |
2024-04-28 10:46:05 +0200 | <[exa]> | ._. |
2024-04-28 10:46:44 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2024-04-28 10:50:18 +0200 | yin | (~yin@user/zero) (Ping timeout: 252 seconds) |
2024-04-28 11:00:02 +0200 | Rodney_ | (~Rodney@176.254.244.83) |
2024-04-28 11:00:54 +0200 | poscat0x04 | (~poscat@user/poscat) (Ping timeout: 255 seconds) |
2024-04-28 11:02:49 +0200 | yin | (~yin@user/zero) |
2024-04-28 11:09:25 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2024-04-28 11:10:46 +0200 | poscat | (~poscat@user/poscat) |
2024-04-28 11:14:36 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2024-04-28 11:38:47 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2024-04-28 11:40:58 +0200 | mreh | (~matthew@host86-160-168-68.range86-160.btcentralplus.com) |
2024-04-28 11:52:47 +0200 | <yin> | assuming no language extensions other that the default ones, when are type annotations used in pattern matching? |
2024-04-28 11:53:20 +0200 | <tomsmeding> | ScopedTypeVariables is in GHC2021 (if that's what you mean with "the default ones") |
2024-04-28 11:54:24 +0200 | mima | (~mmh@eduroam-pool4-264.wlan.uni-bremen.de) |
2024-04-28 11:55:29 +0200 | <yin> | when do we use type annotations in pattern matching with it? |
2024-04-28 11:55:46 +0200 | <tomsmeding> | I think it's never actually necessary |
2024-04-28 11:56:15 +0200 | <tomsmeding> | but it can be helpful, in my experience, in two cases: 1. you want some kind of type annotation on a lambda function but are too lazy to make it a let-defined thing with a type signature |
2024-04-28 11:56:30 +0200 | <tomsmeding> | so you just write (x :: Int) as the argument or something |
2024-04-28 11:57:08 +0200 | <tomsmeding> | or 2. the argument's type has some instantiation of a type variable in it that you need on the type level, and you could get via other means but that would be very cumbersome |
2024-04-28 11:57:23 +0200 | <tomsmeding> | and with ScopedTypeVariables you can bring that thing into scope with a type annotation in a pattern |
2024-04-28 11:57:31 +0200 | <yin> | hmm |
2024-04-28 11:57:51 +0200 | <tomsmeding> | note that type annotations in patterns are just that -- type _annotations_, they don't influence pattern matching, they can only constrain the overall type of the function or bring type variables into scope |
2024-04-28 11:58:15 +0200 | <tomsmeding> | you can't pattern match on types in haskell |
2024-04-28 11:58:23 +0200 | <yin> | in the first case, isn't it always inferred by the type system anyways? |
2024-04-28 11:58:25 +0200 | <famubu> | Type annototaion had a 'type equivalence' thing from Token to Char. That had made the error go away. As in `Token ~ Char` |
2024-04-28 11:58:40 +0200 | <famubu> | I'm sure I'm not using the right term here.. |
2024-04-28 11:58:49 +0200 | <tomsmeding> | yin: a typical example of (1.) is https://hackage.haskell.org/package/base-4.19.0.0/docs/Control-Exception.html#v:catch |
2024-04-28 11:59:06 +0200 | <tomsmeding> | you need that e to infer to something specific, usually, and the body of the lambda is typically not enough for that |
2024-04-28 11:59:33 +0200 | <tomsmeding> | famubu: that would be a type equality |
2024-04-28 11:59:49 +0200 | <famubu> | [exa]: 🥴 |
2024-04-28 11:59:58 +0200 | <tomsmeding> | famubu: was the error something like "Cannot match type Foo a with Foo a0"? |
2024-04-28 11:59:59 +0200 | <famubu> | tomsmeding: 👍 |
2024-04-28 12:00:09 +0200 | <famubu> | Yeah. |
2024-04-28 12:00:15 +0200 | <tomsmeding> | right, that's an ambiguity error |
2024-04-28 12:00:46 +0200 | <tomsmeding> | where ghc sees that your expression is polymorphic, but for some reason (typically a good one in general) it doesn't quite want to just infer that polymorphic type |
2024-04-28 12:01:00 +0200 | <tomsmeding> | perhaps because the polymorphism is constrained in some weird way |
2024-04-28 12:01:14 +0200 | <yin> | tomsmeding: where's the type annotation on pattern matching in 'catch'? |
2024-04-28 12:01:34 +0200 | <tomsmeding> | so then ghc asks you to say precisely what you mean -- some specific instantiation, or an actual polymorphic type where it's then on you to write down what ghc should do |
2024-04-28 12:01:54 +0200 | <tomsmeding> | yin: do you see the `(e :: IOException)` in the example in the haddocks? |
2024-04-28 12:02:08 +0200 | <yin> | yes |
2024-04-28 12:02:14 +0200 | <tomsmeding> | you typically have to manually constrain e somehow, and having to do that on some occurrence in the body is kind of clunky |
2024-04-28 12:02:25 +0200 | <tomsmeding> | it's nicer to write `catch _ (\(e :: IOException) -> ...)` |
2024-04-28 12:02:51 +0200 | <yin> | oh i see |
2024-04-28 12:03:10 +0200 | <int-e> | tomsmeding: oh the cloudatacost.com fan page is gone, so sad. https://web.archive.org/web/20220811231349/https://cloudatacost.com/mystory/original-story-2014 |
2024-04-28 12:03:26 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2024-04-28 12:03:38 +0200 | <yin> | somehow i don't consider that to be patter matching. it's just like |
2024-04-28 12:03:43 +0200 | <yin> | > minBound :: Int |
2024-04-28 12:03:45 +0200 | <lambdabot> | -9223372036854775808 |
2024-04-28 12:03:52 +0200 | <int-e> | (wrong channel) |
2024-04-28 12:04:09 +0200 | <tomsmeding> | yin: indeed, it's a type annotation that you can put in a convenient spot |
2024-04-28 12:05:36 +0200 | mima | (~mmh@eduroam-pool4-264.wlan.uni-bremen.de) (Ping timeout: 268 seconds) |
2024-04-28 12:07:19 +0200 | <ski> | "I think it's never actually necessary" -- introducing a type variable for an opened existential |
2024-04-28 12:08:25 +0200 | <tomsmeding> | you could also write a helper function that you pass your matched things to |
2024-04-28 12:08:34 +0200 | mima | (~mmh@eduroam-pool4-264.wlan.uni-bremen.de) |
2024-04-28 12:08:47 +0200 | <tomsmeding> | that helper function could have a type signature from which you can get your type variables with ScopedTypeVariables |
2024-04-28 12:08:51 +0200 | <tomsmeding> | it's a workaround to be sure |
2024-04-28 12:09:28 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2024-04-28 12:12:32 +0200 | <yin> | i guess my question is: do we really need the ability to annotate on the function head? |
2024-04-28 12:12:47 +0200 | <yin> | or is it just a convenience |
2024-04-28 12:12:47 +0200 | <tomsmeding> | what does "function head" mean? |
2024-04-28 12:12:54 +0200 | <tomsmeding> | a type annotation in a pattern? |
2024-04-28 12:12:59 +0200 | <yin> | tomsmeding: left of the = on a function definition |
2024-04-28 12:13:02 +0200 | <yin> | or | |
2024-04-28 12:13:12 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2024-04-28 12:13:13 +0200 | <yin> | i man |
2024-04-28 12:13:13 +0200 | <ski> | the definiendum of the defining equation |
2024-04-28 12:13:15 +0200 | <tomsmeding> | it's never strictly necessary, but can be very convenient in some cases |
2024-04-28 12:13:15 +0200 | <yin> | *i mean |
2024-04-28 12:13:21 +0200 | <yin> | forget the | |
2024-04-28 12:13:46 +0200 | <ski> | .. i miss the ability to put a type ascription on the whole definiendum |
2024-04-28 12:13:56 +0200 | <yin> | ski: wdym? |
2024-04-28 12:14:13 +0200 | <ski> | map (f :: a -> b) (xs0 :: [a]) :: [b] = case xs0 of ... |
2024-04-28 12:14:23 +0200 | <ski> | the ` :: [b]' there, specifically |
2024-04-28 12:14:26 +0200 | <tomsmeding> | at that point just write a type signature :p |
2024-04-28 12:14:41 +0200 | <yin> | we can't do that anymore? |
2024-04-28 12:15:16 +0200 | <yin> | foo :: Bool = True -- works just fin |
2024-04-28 12:15:21 +0200 | <yin> | e |
2024-04-28 12:15:23 +0200 | <ski> | yea, but i'd rather have the option to express a full signature in this style, in addition to the usual separate type signature. rather than *almost*, but not quite, being able to do this |
2024-04-28 12:15:35 +0200 | <ski> | yea, but that only works for pattern bindings, yin |
2024-04-28 12:15:46 +0200 | <ski> | unlike in the MLs, where this works just fine |
2024-04-28 12:16:02 +0200 | <yin> | i see |
2024-04-28 12:16:55 +0200 | <ski> | (otoh, the MLs doesn't have separate type signatures, interleaved with implementation. you can only put those in signatures (/ module types)) |
2024-04-28 12:18:02 +0200 | <ski> | iow, i'd prefer to be given the choice of using the usual type signatures, or a more C-style mixed definiendum & type ascriptions. (or both, or neither) |
2024-04-28 12:18:14 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2024-04-28 12:18:35 +0200 | mima | (~mmh@eduroam-pool4-264.wlan.uni-bremen.de) (Ping timeout: 260 seconds) |
2024-04-28 12:19:12 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2024-04-28 12:19:22 +0200 | <tomsmeding> | you're right, for functions with many arguments it would sometimes be nice to be able to interleave the types with the argument names |
2024-04-28 12:19:24 +0200 | <ski> | (i'd also like the above to be able to bind tyvars `a' and `b', without a separate type signature. as, iirc, `PatternSignatures' originally allowed, but the current `ScopedTypeVariables' doesn't. but that's a separate issue) |
2024-04-28 12:19:47 +0200 | <tomsmeding> | wait it doesn't? |
2024-04-28 12:19:54 +0200 | <yin> | also news t ome |
2024-04-28 12:20:29 +0200 | <tomsmeding> | I guess it only does if the body already inferred to the annotated types? |
2024-04-28 12:21:13 +0200 | <ski> | hm. maybe they changed it so it works, now ? |
2024-04-28 12:21:35 +0200 | <ski> | > let map (f :: a -> b) (xs0 :: [a]) = (case xs0 of [] -> []; x:xs -> f x : map f xs) :: [b] in map (^ 2) [2,3,5,7] |
2024-04-28 12:21:36 +0200 | <lambdabot> | [4,9,25,49] |
2024-04-28 12:21:38 +0200 | <ski> | > let map (f :: a -> b) (xs0 :: [a]) :: [b] = case xs0 of [] -> []; x:xs -> f x : map f xs in map (^ 2) [2,3,5,7] |
2024-04-28 12:21:39 +0200 | <lambdabot> | <hint>:1:5: error: Parse error in pattern: map |
2024-04-28 12:22:15 +0200 | __monty__ | (~toonn@user/toonn) |
2024-04-28 12:22:16 +0200 | <yin> | awful error message :p |
2024-04-28 12:23:27 +0200 | Square | (~Square@user/square) |
2024-04-28 12:24:06 +0200 | <tomsmeding> | https://play.haskell.org/saved/AwWkZI0A |
2024-04-28 12:24:21 +0200 | <tomsmeding> | ski: were you talking about the foo0 behaviour? |
2024-04-28 12:24:27 +0200 | <ski> | i'm pretty sure the former (or another example that also tested the same thing) also didn't work, at some point |
2024-04-28 12:24:35 +0200 | <tomsmeding> | in your last parenthetical |
2024-04-28 12:25:43 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2024-04-28 12:26:13 +0200 | <tomsmeding> | to be honest I'm kind of surprised that foo3 doesn't work; I'm not sure what to expect with foo0 |
2024-04-28 12:26:26 +0200 | <tomsmeding> | and I'm even more surprised that foo1 works but foo3 doesn't |
2024-04-28 12:26:59 +0200 | <tomsmeding> | ah no I'm not surprised about foo3 |
2024-04-28 12:27:28 +0200 | <yin> | do we need existential type applications? :p |
2024-04-28 12:27:29 +0200 | <ski> | hm, there's no raw link at that page ? |
2024-04-28 12:27:35 +0200 | <ski> | yes, yin |
2024-04-28 12:27:55 +0200 | <tomsmeding> | in fact, if you change the called function (in the body) to foo2 everywhere, all cases work, even foo0 |
2024-04-28 12:28:07 +0200 | <yin> | @(forall a. a) |
2024-04-28 12:28:07 +0200 | <lambdabot> | Unknown command, try @list |
2024-04-28 12:28:16 +0200 | <tomsmeding> | so ski your last "that's a separate issue" parenthetical seems to be false |
2024-04-28 12:28:25 +0200 | <ski> | that would be impredicative, not existential, yin |
2024-04-28 12:28:26 +0200 | <tomsmeding> | you _do_ bind a and b that way |
2024-04-28 12:28:56 +0200 | <tomsmeding> | and indeed, there's no raw link at that page; would you want one ski? |
2024-04-28 12:29:19 +0200 | ph88 | (~ph88@ip5b403f30.dynamic.kabel-deutschland.de) (Quit: Leaving) |
2024-04-28 12:29:24 +0200 | <ski> | yea, i tested in GHCi (just before i asked lambdabot), and concluded it worked (also testing whether `map' here was actually polymorphic, by applying it at different types), and so concluding it must not have worked at some point, and later got fixed |
2024-04-28 12:29:43 +0200 | <yin> | ski: right |
2024-04-28 12:30:04 +0200 | <tomsmeding> | my playground example works back to 8.4.4 :p |
2024-04-28 12:30:05 +0200 | <ski> | it would be useful, sure, tomsmeding. i very commonly open pastes in terminal browser (without Javascript) |
2024-04-28 12:30:12 +0200 | <tomsmeding> | ah! |
2024-04-28 12:30:46 +0200 | <ski> | (atm i just rebooted $GRAPHICAL_BROWSER, since it was lagging and not responding. only just done so that i can check out the page in it) |
2024-04-28 12:31:09 +0200 | <tomsmeding> | where should I put the link though, suggestions? |
2024-04-28 12:31:24 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2024-04-28 12:31:31 +0200 | <ski> | (another reason to open in terminal browser is so i can access the session, running under GNU Screen, from elsewhere. this also works with X forwarding of images (which W3m can display)) |
2024-04-28 12:31:38 +0200 | <tomsmeding> | heh opening the playground in elinks gives absolutely nothing useful |
2024-04-28 12:32:24 +0200 | <ski> | maybe beside the "Save & share code" button ? |
2024-04-28 12:32:44 +0200 | <tomsmeding> | would it be acceptable if I put the "raw" link there only if there is no javascript? |
2024-04-28 12:33:15 +0200 | <ski> | well, opening it in W3m shows me the buttons (but they are not clickable, unlike other buttons on many pages), and doesn't show the source at all (neither readable, or with garbled formatting, as some paste sites do) |
2024-04-28 12:33:39 +0200 | <tomsmeding> | if you open the playground without JS it's completely nonfunctional anyway, even in a state-of-the-art graphical browser |
2024-04-28 12:34:05 +0200 | Guest83 | (~Guest83@79.113.204.176) |
2024-04-28 12:34:24 +0200 | <tomsmeding> | I don't think it's worth the effort to make it work better in a no-JS environment, but I now see that having a "raw" link would be terribly useful in that case, so I'll add that |
2024-04-28 12:34:35 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2024-04-28 12:34:44 +0200 | <tomsmeding> | I'm just thinking to hide that link if there is JS so that it doesn't clutter the UI for the majority of users, only for those for whom it would help |
2024-04-28 12:35:15 +0200 | <tomsmeding> | (with working JS you get the source with just select-all, copy) |
2024-04-28 12:36:21 +0200 | <ski> | "that's a separate issue" referred to it being separate from the issue being able to put a type ascription on the whole definiendum (as well as to name tyvars in opened existentials, for that matter) |
2024-04-28 12:36:56 +0200 | Guest83 | (~Guest83@79.113.204.176) (Client Quit) |
2024-04-28 12:39:12 +0200 | <ski> | "would it be acceptable if I put the "raw" link there only if there is no javascript?" -- okay, i guess, if you think it clutters the interface up too much otherwise ? (i suppose i'd prefer to have the link, regardless, so i don't have to hunt through the page source for it, if i'd like to e.g. download (e.g. with accurate timestamp, if available) or link directly to the raw text. but having it available if |
2024-04-28 12:39:18 +0200 | <ski> | there's no Javascript is the more annoying thing) |
2024-04-28 12:39:28 +0200 | euleritian | (~euleritia@dynamic-176-007-168-231.176.7.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-04-28 12:39:40 +0200 | <tomsmeding> | what do you mean with "with accurate timestamp"? |
2024-04-28 12:39:46 +0200 | euleritian | (~euleritia@2a02:810a:b00:1568:71f7:8ec:15a3:342f) |
2024-04-28 12:40:46 +0200 | <ski> | (i sometimes check out the raw link, or do such hunting through the page source, for other paste sites. enough that i've started to memorize the URL pattern for it in some cases, and immediately modify the given paste link before loading it in browser) |
2024-04-28 12:41:42 +0200 | <ski> | i mean that if i `wget' the raw (or "download") source link, i get a timestamp on the downloaded file that represents when the paste was made, rather than when i downloaded it. not all sites are configured to give this information, though |
2024-04-28 12:42:23 +0200 | <tomsmeding> | oh interesting, I would indeed have forgotten that |
2024-04-28 12:42:32 +0200 | <tomsmeding> | or, rather, not thought about that at all |
2024-04-28 12:42:42 +0200 | <ski> | "I now see that having a \"raw\" link would be terribly useful in that case, so I'll add that" -- great, thanks a bunch |
2024-04-28 12:43:46 +0200 | <ski> | (s/the more annoying thing/the more annoying case/) |
2024-04-28 12:45:11 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2024-04-28 12:48:27 +0200 | <ski> | (incidentally, having the page display when the paste was made, would also be useful info, imho) |
2024-04-28 12:48:47 +0200 | <Rembane> | +1 |
2024-04-28 12:48:51 +0200 | <tomsmeding> | where in the UI |
2024-04-28 12:49:08 +0200 | <tomsmeding> | considering that the UI should still make some sense if the window is not terribly wide |
2024-04-28 12:49:32 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2024-04-28 12:49:40 +0200 | <tomsmeding> | (there is already a UI bug where there is a range of window widths where the top bar doesn't fit but doesn't scroll yet) |
2024-04-28 12:49:55 +0200 | <ski> | top is already a bar with some elements. could display it in there ? or, i guess, maybe could make a pop-up for some stuff, if reasonable |
2024-04-28 12:49:58 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds) |
2024-04-28 12:50:03 +0200 | <tomsmeding> | (oh that bug is trivially fixable) |
2024-04-28 12:50:38 +0200 | <ski> | does it display the GHC output below, if the window's not wide enough ? |
2024-04-28 12:50:51 +0200 | <tomsmeding> | yes |
2024-04-28 12:50:54 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2024-04-28 12:50:59 +0200 | <tomsmeding> | it switches to a vertical stack below 800px width |
2024-04-28 12:51:10 +0200 | <ski> | *nod* |
2024-04-28 12:51:16 +0200 | <tomsmeding> | (had to choose some value) |
2024-04-28 12:52:04 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2024-04-28 12:52:26 +0200 | Lord_of_Life_ | Lord_of_Life |
2024-04-28 12:53:12 +0200 | <tomsmeding> | can somebody tell me why cabal does not consider 1.0 >= 1.0.0 |
2024-04-28 12:53:46 +0200 | <int-e> | > [1,0] >= [1,0,0] |
2024-04-28 12:53:47 +0200 | <lambdabot> | False |
2024-04-28 12:54:04 +0200 | <tomsmeding> | hm I guess |
2024-04-28 12:55:23 +0200 | <yin> | > [0] >= [0,0] |
2024-04-28 12:55:25 +0200 | <lambdabot> | False |
2024-04-28 12:55:30 +0200 | <yin> | > [] >= [0] |
2024-04-28 12:55:31 +0200 | <lambdabot> | False |
2024-04-28 12:55:44 +0200 | <tomsmeding> | > [1] >= repeat 0 |
2024-04-28 12:55:45 +0200 | <lambdabot> | True |
2024-04-28 12:56:57 +0200 | <yin> | > [0] >= [0,undefined] |
2024-04-28 12:56:58 +0200 | <lambdabot> | False |
2024-04-28 12:57:54 +0200 | paotsaq | (~paotsaq@127.209.37.188.rev.vodafone.pt) (Quit: ZNC 1.9.0 - https://znc.in) |
2024-04-28 12:58:02 +0200 | <ski> | > [0] >= 0:undefined |
2024-04-28 12:58:03 +0200 | <lambdabot> | *Exception: Prelude.undefined |
2024-04-28 12:58:09 +0200 | <ski> | > [0] <= 0:undefined |
2024-04-28 12:58:11 +0200 | <lambdabot> | *Exception: Prelude.undefined |
2024-04-28 12:58:35 +0200 | <yin> | int-e: is it clear now? |
2024-04-28 12:58:42 +0200 | paotsaq | (~paotsaq@127.209.37.188.rev.vodafone.pt) |
2024-04-28 12:58:53 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2024-04-28 12:59:06 +0200 | <int-e> | yin: that wasn't a question |
2024-04-28 12:59:18 +0200 | <ski> | (it was an answer) |
2024-04-28 12:59:35 +0200 | <yin> | lol i need to wake up |
2024-04-28 12:59:41 +0200 | rosco | (~rosco@yp-146-6.tm.net.my) |
2024-04-28 13:01:11 +0200 | <yin> | goog conversation nontheless |
2024-04-28 13:01:16 +0200 | <yin> | *good |
2024-04-28 13:01:19 +0200 | <tomsmeding> | ski: that would be the Last-Modified http header, right? |
2024-04-28 13:01:40 +0200 | <int-e> | ski: I guess [] <= undefined *could* be defined but the report defines everything in terms of `compare` and [] `compare` undefined has to be bottom |
2024-04-28 13:01:48 +0200 | mrmr1553343 | (~mrmr@user/mrmr) (Quit: Bye, See ya later!) |
2024-04-28 13:01:48 +0200 | <ski> | sounds relevant, tomsmeding |
2024-04-28 13:02:13 +0200 | <ski> | int-e : yea, was just thinking about that, in relation to ordering on `Nat' |
2024-04-28 13:02:23 +0200 | qqq | (~qqq@92.43.167.61) (Quit: leaving) |
2024-04-28 13:04:11 +0200 | <ski> | (well, i guess it's called `Natural' .. but lambdabot doesn't have that loaded, anymore, afaik) |
2024-04-28 13:04:36 +0200 | <tomsmeding> | inductive peano nats? |
2024-04-28 13:04:46 +0200 | <ski> | yes |
2024-04-28 13:04:52 +0200 | <tomsmeding> | there are none in base and I'm salty about that |
2024-04-28 13:05:34 +0200 | <ski> | it was nice to showcase things like `genericLength xs == (0 :: Natural)', also for infinite `xs' |
2024-04-28 13:06:06 +0200 | <int-e> | . o O ( length' = map (const ()) ) |
2024-04-28 13:06:15 +0200 | <tomsmeding> | there is a Natural in base (in Numeric.Natural) but it's just an unsigned 'Integer' |
2024-04-28 13:06:34 +0200 | <int-e> | (yes, I seem to be circling back to where ski started) |
2024-04-28 13:10:01 +0200 | <tomsmeding> | (random fact: already 6378 saved snippets on the playground) |
2024-04-28 13:10:37 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2024-04-28 13:12:08 +0200 | <ncf> | length = void |
2024-04-28 13:13:30 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Client Quit) |
2024-04-28 13:13:48 +0200 | paotsaq | (~paotsaq@127.209.37.188.rev.vodafone.pt) (Quit: ZNC 1.9.0 - https://znc.in) |
2024-04-28 13:13:59 +0200 | <ncf> | https://i.imgflip.com/8oapr0.jpg |
2024-04-28 13:14:46 +0200 | ski | clicked on the "Save & share code" buttom, expected it to pop up some modal window, clicked again when that didn't happen quickly |
2024-04-28 13:17:42 +0200 | mrmr1553343 | (~mrmr@user/mrmr) |
2024-04-28 13:18:40 +0200 | paotsaq | (~paotsaq@127.209.37.188.rev.vodafone.pt) |
2024-04-28 13:18:49 +0200 | gospy | (~gospy@127.77.178.217.shared.user.transix.jp) |
2024-04-28 13:19:25 +0200 | gospy | (~gospy@127.77.178.217.shared.user.transix.jp) (Client Quit) |
2024-04-28 13:20:18 +0200 | <tomsmeding> | ski: was it just slow? |
2024-04-28 13:20:31 +0200 | paotsaq | (~paotsaq@127.209.37.188.rev.vodafone.pt) (Client Quit) |
2024-04-28 13:22:01 +0200 | <ski> | no, it just surprised me, didn't do what i expected, instead just changed the URL (but the page appeared exactly the same, so i didn't notice that immediately) |
2024-04-28 13:22:15 +0200 | <tomsmeding> | ah I see |
2024-04-28 13:22:27 +0200 | <tomsmeding> | you're supposed to get a dialog though |
2024-04-28 13:22:32 +0200 | <ski> | ah |
2024-04-28 13:22:35 +0200 | <tomsmeding> | but it's a <dialog>, what browser are you using? |
2024-04-28 13:22:46 +0200 | <ski> | this was Firefox |
2024-04-28 13:22:55 +0200 | paotsaq | (~paotsaq@127.209.37.188.rev.vodafone.pt) |
2024-04-28 13:23:07 +0200 | <tomsmeding> | (currently trying to get 'time' to give me something that fits the Last-Modified header spec, which **requires** "GMT" for some reason) |
2024-04-28 13:23:33 +0200 | <tomsmeding> | ski: I get this in firefox https://tomsmeding.com/ss/get/tomsmeding/Th06hE |
2024-04-28 13:24:48 +0200 | <ski> | right. no such thing, just replacing the URL with that new one |
2024-04-28 13:25:02 +0200 | <tomsmeding> | that sounds like a bug; any errors in the JS console? |
2024-04-28 13:27:01 +0200 | <ski> | dunno whether "Block pop-up windows" (enabled) in <about:preferences#privacy> would affect this |
2024-04-28 13:27:14 +0200 | <tomsmeding> | I would expect not |
2024-04-28 13:27:35 +0200 | <tomsmeding> | I have that checkbox set too |
2024-04-28 13:30:08 +0200 | <ski> | Uncaught TypeError: dialog.showModal is not a function doSave https://play.haskell.org/play-index.js:189 onreadystatechange https://play.haskell.org/play-index.js:59 |
2024-04-28 13:30:20 +0200 | <tomsmeding> | thank you! |
2024-04-28 13:31:16 +0200 | <tomsmeding> | that line number looks wrong, but whatever I guess (it's on line 189) |
2024-04-28 13:31:18 +0200 | <ski> | (took a short while to figure out where to access the console. i don't commonly reach for such) |
2024-04-28 13:31:25 +0200 | <tomsmeding> | ah sorry |
2024-04-28 13:31:27 +0200 | paotsaq | (~paotsaq@127.209.37.188.rev.vodafone.pt) (Quit: ZNC 1.9.0 - https://znc.in) |
2024-04-28 13:31:41 +0200 | <ski> | it's three lines, two line numbers |
2024-04-28 13:31:48 +0200 | tomsmeding | dumb |
2024-04-28 13:31:54 +0200 | <ski> | i guess a brief call trace |
2024-04-28 13:31:57 +0200 | <tomsmeding> | yes |
2024-04-28 13:32:46 +0200 | paotsaq | (~paotsaq@127.209.37.188.rev.vodafone.pt) |
2024-04-28 13:32:56 +0200 | <tomsmeding> | ski: what's your firefox version? |
2024-04-28 13:33:01 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-04-28 13:33:38 +0200 | <ski> | 91.4.1esr (64-bit) |
2024-04-28 13:33:59 +0200 | <tomsmeding> | that's 2021 vintage |
2024-04-28 13:34:52 +0200 | xff0x | (~xff0x@softbank219059019218.bbtec.net) |
2024-04-28 13:35:59 +0200 | paotsaq | (~paotsaq@127.209.37.188.rev.vodafone.pt) (Client Quit) |
2024-04-28 13:36:24 +0200 | paotsaq | (~paotsaq@127.209.37.188.rev.vodafone.pt) |
2024-04-28 13:36:26 +0200 | <tomsmeding> | mozilla doesn't seem to publish anything on support periods (?) |
2024-04-28 13:37:29 +0200 | <tomsmeding> | this https://endoflife.date/firefox claims that it's been out of support for a long time |
2024-04-28 13:38:34 +0200 | <tomsmeding> | (Dialog.showModal(), the function that you don't have, is in firefox since 98, so would already be in the next ESR, 102, which is also already old) |
2024-04-28 13:38:39 +0200 | <yin> | tomsmeding: https://developer.mozilla.org/en-US/blog/baseline-evolution-on-mdn/ |
2024-04-28 13:38:51 +0200 | <int-e> | LOL https://devdoc.net/web/developer.mozilla.org/en-US/docs/Mozilla/Firefox/Firefox_ESR.html "The current ESR version is based on Firefox 45 issued on March 8th, 2016." ("Last updated by: SphinxKnight, Jul 11, 2017, 5:10:31 AM") |
2024-04-28 13:39:31 +0200 | <tomsmeding> | int-e: I suggest removing the devdoc.net/web/ prefix from that :p |
2024-04-28 13:39:59 +0200 | <tomsmeding> | yin: right, I see such a support box at the top of the mdn page for showModal() https://developer.mozilla.org/en-US/docs/Web/API/HTMLDialogElement/showModal |
2024-04-28 13:40:12 +0200 | <int-e> | tomsmeding: But then I get a 404 :P |
2024-04-28 13:42:30 +0200 | <yin> | https://caniuse.com/?search=showModal |
2024-04-28 13:43:17 +0200 | <yin> | https://developer.mozilla.org/en-US/docs/Web/API/Window/showModalDialog |
2024-04-28 13:43:42 +0200 | <tomsmeding> | yin: "This method was removed in Chrome 43 and Firefox 56." |
2024-04-28 13:44:01 +0200 | <yin> | https://caniuse.com/?search=dialog |
2024-04-28 13:44:12 +0200 | <yin> | yes... |
2024-04-28 13:44:19 +0200 | <tomsmeding> | yin: what are you trying to say? |
2024-04-28 13:44:41 +0200 | <tomsmeding> | <dialog> works from firefox 98, and ski is using an old version 91.4 ESR |
2024-04-28 13:44:56 +0200 | <tomsmeding> | I had previously decided that >=98 was wide enough, but maybe it isn't now |
2024-04-28 13:45:11 +0200 | <yin> | oh i see |
2024-04-28 13:47:01 +0200 | <yin> | tomsmeding: yeah you need to choose the cutoof |
2024-04-28 13:47:05 +0200 | <yin> | cutoff |
2024-04-28 13:47:27 +0200 | <yin> | i personally design for text only browsers first and build from there |
2024-04-28 13:47:42 +0200 | <tomsmeding> | ski: why are you still on 91? Is it likely that it's just you or do you get this from some package manager somewhere that other people might also use? |
2024-04-28 13:48:12 +0200 | <yin> | tomsmeding: have you considered https://caniuse.com/?search=alert ? |
2024-04-28 13:48:22 +0200 | <tomsmeding> | it was an alert() before :p |
2024-04-28 13:48:28 +0200 | <tomsmeding> | I might fallback to that |
2024-04-28 13:48:29 +0200 | ocra8 | (ocra8@user/ocra8) |
2024-04-28 13:48:33 +0200 | <yin> | welp :) |
2024-04-28 13:49:29 +0200 | <tomsmeding> | https://github.com/haskell/play-haskell/issues/3 |
2024-04-28 13:49:30 +0200 | <ski> | well, i installed debian-based distro on this laptop, a few years ago, and haven't gotten around to updating it |
2024-04-28 13:49:51 +0200 | <tomsmeding> | ski: I see, thanks; that tells me that you might not be the only one |
2024-04-28 13:50:10 +0200 | <tomsmeding> | be aware of missing security patches in basically everything on your machine though |
2024-04-28 13:51:40 +0200 | <yin> | for vulnerabilities like alert :) |
2024-04-28 13:52:02 +0200 | <tomsmeding> | for any browser vulnerabilities since mid 2021 |
2024-04-28 13:52:08 +0200 | <tomsmeding> | which is significant |
2024-04-28 13:52:50 +0200 | <int-e> | even oldstable is at 115 |
2024-04-28 13:53:04 +0200 | <int-e> | (aka buster) |
2024-04-28 13:53:23 +0200 | <tomsmeding> | these days, for better or for worse, a web browser is not something that you should want to get very old |
2024-04-28 13:56:25 +0200 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2024-04-28 14:01:47 +0200 | <yin> | is there a difference between 'map (show @Double)' and 'map (show :: Double -> String)' ? |
2024-04-28 14:02:06 +0200 | <tomsmeding> | % :set -fprint-explicit-foralls |
2024-04-28 14:02:07 +0200 | <yahb2> | <no output> |
2024-04-28 14:02:09 +0200 | <tomsmeding> | % :t show |
2024-04-28 14:02:09 +0200 | <yahb2> | show :: forall a. Show a => a -> String |
2024-04-28 14:02:11 +0200 | <tomsmeding> | no |
2024-04-28 14:03:20 +0200 | <int-e> | well, type applications are a language extensions |
2024-04-28 14:03:28 +0200 | <yin> | in which case does one need TypeApplications? |
2024-04-28 14:03:36 +0200 | <tomsmeding> | the first only |
2024-04-28 14:03:46 +0200 | <yin> | no, i mean |
2024-04-28 14:03:57 +0200 | <yin> | why do we need TypeApplications if we can just annotate |
2024-04-28 14:04:21 +0200 | <int-e> | show @Double is shorter than show :: Double -> String |
2024-04-28 14:04:30 +0200 | <tomsmeding> | because 1. sometimes the whole type is very large and contains many components that are irrelevant to this annotation |
2024-04-28 14:04:31 +0200 | xff0x | (~xff0x@softbank219059019218.bbtec.net) (Ping timeout: 260 seconds) |
2024-04-28 14:04:35 +0200 | <mauke> | sometimes there is nothing to annotate |
2024-04-28 14:04:59 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2024-04-28 14:05:02 +0200 | <tomsmeding> | and 2. if the type was defined using AllowAmbiguousTypes an annotation might not be enough |
2024-04-28 14:05:44 +0200 | <mauke> | class Memorable a where { bitsNeeded :: Int } |
2024-04-28 14:06:09 +0200 | <tomsmeding> | (which indeed needs AllowAmbiguousTypes) |
2024-04-28 14:08:38 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2024-04-28 14:09:15 +0200 | mrmr1553343 | (~mrmr@user/mrmr) (Quit: Bye, See ya later!) |
2024-04-28 14:09:24 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2024-04-28 14:10:22 +0200 | <yin> | it surprises me that TypeApplications, being included in GHC2021 and GHC2024, just offer a slightly more convenient but also less readable way of type annotation |
2024-04-28 14:10:51 +0200 | <tomsmeding> | it is hugely more convenient in some cases |
2024-04-28 14:11:05 +0200 | <tomsmeding> | and genuinely required if the original type was ambiguous |
2024-04-28 14:11:30 +0200 | <yin> | tomsmeding: ok, but that requires a non default extension |
2024-04-28 14:12:39 +0200 | <tomsmeding> | an example of the first is https://hackage.haskell.org/package/sqlite-simple-0.4.19.0/docs/Database-SQLite-Simple.html#v:query |
2024-04-28 14:12:43 +0200 | <yin> | oh nvm |
2024-04-28 14:12:47 +0200 | <yin> | i get it now |
2024-04-28 14:12:49 +0200 | <yin> | thanks |
2024-04-28 14:13:23 +0200 | <tomsmeding> | being able to write `query @_ @(Maybe Int, String)` if I want to annotate that the result row is [nullable integer, text] is MUCH more convenient than having to give a full type annotation |
2024-04-28 14:21:37 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-04-28 14:22:00 +0200 | <yin> | ok then my next question is |
2024-04-28 14:22:22 +0200 | mrmr1553343 | (~mrmr@user/mrmr) |
2024-04-28 14:22:24 +0200 | <yin> | why is AllowAmbiguousTypes not enabled by default? |
2024-04-28 14:22:49 +0200 | <tomsmeding> | because you _typically_ don't want to write an ambiguous type |
2024-04-28 14:23:05 +0200 | <tomsmeding> | it's good to be forced to add a Proxy argument if you do want to write one |
2024-04-28 14:23:13 +0200 | <tomsmeding> | ambiguous types are very annoying to work with |
2024-04-28 14:24:12 +0200 | <yin> | reasonable |
2024-04-28 14:26:15 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2024-04-28 14:26:48 +0200 | xff0x | (~xff0x@softbank219059019218.bbtec.net) |
2024-04-28 14:26:50 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2024-04-28 14:35:52 +0200 | <tomsmeding> | ski Rembane: I pushed some changes to the playground, there's metadata now on the paste view page (example: https://play.haskell.org/saved/AwWkZI0A ) and the raw link should work in text mode too |
2024-04-28 14:36:04 +0200 | <tomsmeding> | also please check that I correctly did the last-modified date thing ski |
2024-04-28 14:38:16 +0200 | _d0t | (~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 255 seconds) |
2024-04-28 14:38:32 +0200 | xff0x | (~xff0x@softbank219059019218.bbtec.net) (Ping timeout: 268 seconds) |
2024-04-28 14:39:09 +0200 | <tomsmeding> | (I'll be a way for an hour or two but I'll read logs) |
2024-04-28 14:42:42 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-04-28 14:43:38 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-04-28 14:49:44 +0200 | rosco | (~rosco@yp-146-6.tm.net.my) (Quit: Lost terminal) |
2024-04-28 14:54:22 +0200 | <ski> | tomsmeding : ah, thank you very much ! :D |
2024-04-28 14:55:29 +0200 | <ski> | (i did check both in graphical and terminal browser, and confirmed that `wget' (and i'd presume also `curl') sets the correct modified timestamp) |
2024-04-28 14:57:33 +0200 | _d0t | (~{-d0t-}@user/-d0t-/x-7915216) |
2024-04-28 15:01:37 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) |
2024-04-28 15:22:34 +0200 | poscat0x04 | (~poscat@user/poscat) |
2024-04-28 15:22:38 +0200 | poscat | (~poscat@user/poscat) (Ping timeout: 268 seconds) |
2024-04-28 15:31:28 +0200 | ddellacosta | (~ddellacos@ool-44c73d29.dyn.optonline.net) (Ping timeout: 256 seconds) |
2024-04-28 15:42:05 +0200 | falafel | (~falafel@2a0c:5a87:3103:ec01::62b8) |
2024-04-28 15:45:40 +0200 | <MelMalik> | gnern |
2024-04-28 15:49:37 +0200 | zetef | (~quassel@2a02:2f00:5202:1200:2128:605:71c4:66a4) |
2024-04-28 15:51:30 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds) |
2024-04-28 15:59:37 +0200 | mima | (~mmh@eduroam-pool4-264.wlan.uni-bremen.de) |
2024-04-28 16:07:38 +0200 | falafel | (~falafel@2a0c:5a87:3103:ec01::62b8) (Remote host closed the connection) |
2024-04-28 16:07:57 +0200 | falafel | (~falafel@2a0c:5a87:3103:ec01::62b8) |
2024-04-28 16:08:18 +0200 | euleritian | (~euleritia@2a02:810a:b00:1568:71f7:8ec:15a3:342f) (Ping timeout: 256 seconds) |
2024-04-28 16:09:18 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2024-04-28 16:10:06 +0200 | causal | (~eric@50.35.88.207) |
2024-04-28 16:10:11 +0200 | euleritian | (~euleritia@ip5f5ad3b0.dynamic.kabel-deutschland.de) |
2024-04-28 16:29:49 +0200 | r5c4571lh01987 | (~rscastilh@179.221.142.8) |
2024-04-28 16:30:30 +0200 | kronicmage | (~kronicmag@neotame.csclub.uwaterloo.ca) (Read error: Connection reset by peer) |
2024-04-28 16:30:48 +0200 | kronicmage | (~kronicmag@neotame.csclub.uwaterloo.ca) |
2024-04-28 16:38:18 +0200 | <tomsmeding> | ski: thanks, I checked using wget too but I had never made use of that functionality before, so good that it works for you too |
2024-04-28 16:43:23 +0200 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 256 seconds) |
2024-04-28 16:45:03 +0200 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2024-04-28 16:53:40 +0200 | euleritian | (~euleritia@ip5f5ad3b0.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds) |
2024-04-28 16:54:00 +0200 | euleritian | (~euleritia@dynamic-176-007-160-249.176.7.pool.telefonica.de) |
2024-04-28 16:54:43 +0200 | manwithluck | (manwithluc@gateway/vpn/protonvpn/manwithluck) (Ping timeout: 256 seconds) |
2024-04-28 16:55:19 +0200 | hueso | (~root@user/hueso) (Quit: hueso) |
2024-04-28 16:55:53 +0200 | manwithluck | (manwithluc@gateway/vpn/protonvpn/manwithluck) |
2024-04-28 16:59:44 +0200 | hueso | (~root@user/hueso) |
2024-04-28 17:00:30 +0200 | xff0x | (~xff0x@softbank219059019218.bbtec.net) |
2024-04-28 17:05:41 +0200 | r5c4571lh01987 | (~rscastilh@179.221.142.8) (Ping timeout: 240 seconds) |
2024-04-28 17:07:48 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Ping timeout: 256 seconds) |
2024-04-28 17:08:27 +0200 | zetef | (~quassel@2a02:2f00:5202:1200:2128:605:71c4:66a4) (Ping timeout: 256 seconds) |
2024-04-28 17:09:34 +0200 | r5c4571lh01987 | (~rscastilh@179.221.142.8) |
2024-04-28 17:22:05 +0200 | falafel | (~falafel@2a0c:5a87:3103:ec01::62b8) (Read error: Connection reset by peer) |
2024-04-28 17:24:22 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 260 seconds) |
2024-04-28 17:26:23 +0200 | xff0x | (~xff0x@softbank219059019218.bbtec.net) (Ping timeout: 264 seconds) |
2024-04-28 17:26:43 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2024-04-28 17:32:57 +0200 | rosco | (~rosco@yp-146-6.tm.net.my) |
2024-04-28 17:33:04 +0200 | gorignak | (~gorignak@user/gorignak) |
2024-04-28 17:38:23 +0200 | gorignak | (~gorignak@user/gorignak) (Ping timeout: 252 seconds) |
2024-04-28 17:39:25 +0200 | gorignak | (~gorignak@user/gorignak) |
2024-04-28 17:39:52 +0200 | destituion | (~destituio@2a02:2121:340:2456:fffe:d0f:7737:dd1) (Read error: Connection reset by peer) |
2024-04-28 17:41:04 +0200 | destituion | (~destituio@2001:4644:c37:0:6086:64f4:a213:b80d) |
2024-04-28 17:44:14 +0200 | gorignak | (~gorignak@user/gorignak) (Client Quit) |
2024-04-28 17:44:46 +0200 | gorignak | (~gorignak@user/gorignak) |
2024-04-28 17:57:02 +0200 | orcus- | (~orcus@host-78-146-88-32.as13285.net) |
2024-04-28 17:58:24 +0200 | orcus- | (~orcus@host-78-146-88-32.as13285.net) (Remote host closed the connection) |
2024-04-28 18:06:57 +0200 | noumenon | (~noumenon@113.51-175-156.customer.lyse.net) |
2024-04-28 18:11:35 +0200 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 245 seconds) |
2024-04-28 18:12:13 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2024-04-28 18:15:18 +0200 | target_i | (~target_i@user/target-i/x-6023099) |
2024-04-28 18:25:54 +0200 | zetef | (~quassel@109.166.130.208) |
2024-04-28 18:26:56 +0200 | rosco | (~rosco@yp-146-6.tm.net.my) (Quit: Lost terminal) |
2024-04-28 18:29:30 +0200 | zetef | (~quassel@109.166.130.208) (Remote host closed the connection) |
2024-04-28 18:42:07 +0200 | ocra8 | (ocra8@user/ocra8) (Quit: WeeChat 4.2.2) |
2024-04-28 18:42:14 +0200 | dispater | (~dispater@mail.brprice.uk) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-04-28 18:42:14 +0200 | orcus | (~orcus@mail.brprice.uk) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-04-28 18:42:31 +0200 | euleritian | (~euleritia@dynamic-176-007-160-249.176.7.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-04-28 18:42:49 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-04-28 18:44:01 +0200 | dispater | (~dispater@mail.brprice.uk) |
2024-04-28 18:44:31 +0200 | orcus | (~orcus@mail.brprice.uk) |
2024-04-28 18:45:27 +0200 | pagnol | (~user@2a02:a210:a40:c80:6c7:9f8d:b42a:e910) |
2024-04-28 18:49:28 +0200 | dispater | (~dispater@mail.brprice.uk) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-04-28 18:49:28 +0200 | orcus | (~orcus@mail.brprice.uk) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-04-28 18:51:14 +0200 | dispater | (~dispater@mail.brprice.uk) |
2024-04-28 18:51:45 +0200 | orcus | (~orcus@mail.brprice.uk) |
2024-04-28 18:56:14 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2024-04-28 18:57:41 +0200 | raym | (~ray@user/raym) (Ping timeout: 256 seconds) |
2024-04-28 18:59:18 +0200 | raym | (~ray@user/raym) |
2024-04-28 19:08:07 +0200 | kuribas | (~user@ptr-17d51em86a8i0cnankt.18120a2.ip6.access.telenet.be) |
2024-04-28 19:09:55 +0200 | famubu | (~julinuser@user/famubu) (Quit: leaving) |
2024-04-28 19:12:25 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-04-28 19:13:13 +0200 | <pagnol> | I'm writing client package/library for a third-part rest api. Does anyone know any nice patterns for this sort of thing? |
2024-04-28 19:13:18 +0200 | <pagnol> | *a client |
2024-04-28 19:14:15 +0200 | <pagnol> | I have a Swagger spec available but it's not too great, so I think I need to hand-write the client either way. |
2024-04-28 19:16:16 +0200 | <[exa]> | pagnol: no direct advice but you might want to steal some tricks from other API packages |
2024-04-28 19:16:38 +0200 | <[exa]> | there's e.g. the amazon API frontend, and I recently touched the gitlab API which wasn't bad either |
2024-04-28 19:17:30 +0200 | ocra8 | (ocra8@user/ocra8) |
2024-04-28 19:18:21 +0200 | <[exa]> | pagnol: https://hackage.haskell.org/package/amazonka and maybe https://hackage.haskell.org/package/amazonka-core and https://gitlab.com/robstewart57/gitlab-haskell |
2024-04-28 19:19:00 +0200 | <kuribas> | pagnol: servant? |
2024-04-28 19:19:46 +0200 | Guest24 | (~Guest43@65.17.175.150) |
2024-04-28 19:19:55 +0200 | haskell_ | (~cashewsta@65.17.175.150) |
2024-04-28 19:20:21 +0200 | Guest24 | (~Guest43@65.17.175.150) (Client Quit) |
2024-04-28 19:21:24 +0200 | <[exa]> | given the other side sounds like pythons I'd say that servant way has a huge chance to turn into a ball of duct tape around a tiny servant core...but yeah ymmv |
2024-04-28 19:21:25 +0200 | haskell_ | (~cashewsta@65.17.175.150) (Client Quit) |
2024-04-28 19:21:43 +0200 | cashew | (~cashewsta@65.17.175.150) |
2024-04-28 19:24:31 +0200 | <kuribas> | oh right, if it is not very well specified... |
2024-04-28 19:24:44 +0200 | cashew | (~cashewsta@65.17.175.150) (Remote host closed the connection) |
2024-04-28 19:24:54 +0200 | <kuribas> | Depends if pagnol wants a well typed API, or just something which returns json values... |
2024-04-28 19:25:19 +0200 | <kuribas> | But I find it hard to understand how sloppy many API are with openapi specs. |
2024-04-28 19:25:44 +0200 | cashew | (~cashewsta@65.17.175.150) |
2024-04-28 19:27:29 +0200 | rvalue | (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
2024-04-28 19:27:59 +0200 | rvalue | (~rvalue@user/rvalue) |
2024-04-28 19:29:13 +0200 | <kuribas> | some python frameworks like connexion verify the inputs, but by default not the outputs. |
2024-04-28 19:30:50 +0200 | <pagnol> | thanks, some good pointers, I'm looking at the one for Gitlab nw |
2024-04-28 19:30:52 +0200 | <pagnol> | *now |
2024-04-28 19:32:57 +0200 | cashew | (~cashewsta@65.17.175.150) (Ping timeout: 272 seconds) |
2024-04-28 19:35:20 +0200 | <pagnol> | as only an occasional Haskell user I find the Gitlab client really readable |
2024-04-28 19:38:51 +0200 | tzh | (~tzh@c-73-164-206-160.hsd1.or.comcast.net) |
2024-04-28 19:39:52 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-04-28 19:43:00 +0200 | gorignak | (~gorignak@user/gorignak) (Quit: quit) |
2024-04-28 19:43:31 +0200 | gorignak | (~gorignak@user/gorignak) |
2024-04-28 19:44:16 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
2024-04-28 19:44:20 +0200 | pagnol | (~user@2a02:a210:a40:c80:6c7:9f8d:b42a:e910) (Remote host closed the connection) |
2024-04-28 19:44:33 +0200 | pagnol | (~user@2a02:a210:a40:c80:fea7:f5e8:1519:b9) |
2024-04-28 19:45:17 +0200 | euleritian | (~euleritia@dynamic-176-007-160-249.176.7.pool.telefonica.de) |
2024-04-28 19:46:04 +0200 | cashew | (~cashewsta@65.17.175.150) |
2024-04-28 19:46:05 +0200 | zetef | (~quassel@2a02:2f00:5202:1200:2128:605:71c4:66a4) |
2024-04-28 19:46:07 +0200 | thaliaa | (uid486183@id-486183.uxbridge.irccloud.com) |
2024-04-28 19:50:07 +0200 | cashew | (~cashewsta@65.17.175.150) (Remote host closed the connection) |
2024-04-28 19:50:19 +0200 | cashew | (~cashewsta@65.17.175.150) |
2024-04-28 19:53:11 +0200 | gorignak | (~gorignak@user/gorignak) (Quit: quit) |
2024-04-28 19:53:41 +0200 | gorignak | (~gorignak@user/gorignak) |
2024-04-28 19:57:00 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2024-04-28 19:59:05 +0200 | mima | (~mmh@eduroam-pool4-264.wlan.uni-bremen.de) (Ping timeout: 245 seconds) |
2024-04-28 19:59:23 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2024-04-28 19:59:27 +0200 | cashew | (~cashewsta@65.17.175.150) (Remote host closed the connection) |
2024-04-28 20:03:14 +0200 | gorignak | (~gorignak@user/gorignak) (Quit: quit) |
2024-04-28 20:03:36 +0200 | zetef | (~quassel@2a02:2f00:5202:1200:2128:605:71c4:66a4) (Ping timeout: 260 seconds) |
2024-04-28 20:05:23 +0200 | madeleine-sydney | (~madeleine@c-76-155-235-153.hsd1.co.comcast.net) |
2024-04-28 20:05:23 +0200 | kmein | (~weechat@user/kmein) (Quit: ciao kakao) |
2024-04-28 20:05:44 +0200 | kmein | (~weechat@user/kmein) |
2024-04-28 20:06:05 +0200 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
2024-04-28 20:09:27 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 260 seconds) |
2024-04-28 20:10:32 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-04-28 20:11:57 +0200 | y04nn | (~username@2a03:1b20:8:f011::e10d) |
2024-04-28 20:13:45 +0200 | kuribas | (~user@ptr-17d51em86a8i0cnankt.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
2024-04-28 20:14:58 +0200 | euphores | (~SASL_euph@user/euphores) |
2024-04-28 20:16:02 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-04-28 20:19:34 +0200 | gabriel_sevecek | (~gabriel@188-167-229-200.dynamic.chello.sk) (Quit: WeeChat 4.2.1) |
2024-04-28 20:21:24 +0200 | gabriel_sevecek | (~gabriel@188-167-229-200.dynamic.chello.sk) |
2024-04-28 20:37:39 +0200 | euleritian | (~euleritia@dynamic-176-007-160-249.176.7.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-04-28 20:37:59 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-04-28 20:51:19 +0200 | causal | (~eric@50.35.88.207) (Quit: WeeChat 4.1.1) |
2024-04-28 20:54:31 +0200 | rvalue- | (~rvalue@user/rvalue) |
2024-04-28 20:54:53 +0200 | rvalue | (~rvalue@user/rvalue) (Ping timeout: 240 seconds) |
2024-04-28 21:00:44 +0200 | rvalue- | rvalue |
2024-04-28 21:03:19 +0200 | michalz | (~michalz@185.246.207.205) |
2024-04-28 21:04:21 +0200 | <mreh> | so ghci will only compile the C functions you've referenced via the FFI rather than the whole file, that's interesting |
2024-04-28 21:05:18 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-04-28 21:05:42 +0200 | Lears | (~Leary]@user/Leary/x-0910699) |
2024-04-28 21:06:37 +0200 | <EvanR> | and functions referenced by those functions, and so on? |
2024-04-28 21:07:16 +0200 | <int-e> | That doesn't sound right. Linking only functions that are used, that I can believe. |
2024-04-28 21:07:24 +0200 | [Leary] | (~Leary]@user/Leary/x-0910699) (Ping timeout: 252 seconds) |
2024-04-28 21:08:27 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-04-28 21:08:27 +0200 | madeleine-sydney | (~madeleine@c-76-155-235-153.hsd1.co.comcast.net) (Quit: Konversation terminated!) |
2024-04-28 21:11:55 +0200 | <mreh> | ghci only links functions that are used, GHC links everything in the source file |
2024-04-28 21:12:03 +0200 | <mreh> | (through stack) |
2024-04-28 21:12:44 +0200 | <mreh> | I only found out because GPC 2.33 uses non standard libc functions |
2024-04-28 21:12:45 +0200 | <EvanR> | ghci dynamically loads? |
2024-04-28 21:12:57 +0200 | mima | (~mmh@ip-185-104-138-52.ptr.icomera.net) |
2024-04-28 21:13:01 +0200 | <mreh> | I think so, yeah |
2024-04-28 21:13:02 +0200 | <geekosaur> | C/FFI yes |
2024-04-28 21:13:50 +0200 | <geekosaur> | but whether it can partially load an object file depends on the platform |
2024-04-28 21:15:01 +0200 | <geekosaur> | and how the object was built (on x86_64 it must have been compiled with -fPIC, for example) |
2024-04-28 21:16:26 +0200 | <mreh> | is that the default? |
2024-04-28 21:16:42 +0200 | <geekosaur> | not on x86_64 |
2024-04-28 21:16:48 +0200 | <mreh> | huh, that's weird |
2024-04-28 21:16:49 +0200 | <geekosaur> | (except on Macs) |
2024-04-28 21:17:44 +0200 | <mreh> | so do I publish my partial bindings to GPC? There is a package on hackage that did, but it's pretty bit rotted now. |
2024-04-28 21:18:24 +0200 | Rodney_ | (~Rodney@176.254.244.83) (Ping timeout: 252 seconds) |
2024-04-28 21:24:01 +0200 | Etabeta1 | (~Etabeta1@user/meow/Etabeta1) (Quit: quit) |
2024-04-28 21:25:57 +0200 | <mreh> | @seen dons |
2024-04-28 21:25:57 +0200 | <lambdabot> | I saw dons leaving #haskell 2y 1m 3d 6h 10m 13s ago. |
2024-04-28 21:26:42 +0200 | <EvanR> | that was after the freenodealypse, does lambdabot have memories from before that? |
2024-04-28 21:27:03 +0200 | <geekosaur> | @seen eviltwin_b |
2024-04-28 21:27:03 +0200 | <lambdabot> | I saw eviltwin_b leaving #xmonad, #ghc, #haskell-beginners and #haskell 1y 10m 15d 23h 53m 53s ago. |
2024-04-28 21:27:08 +0200 | <geekosaur> | huh |
2024-04-28 21:27:18 +0200 | <geekosaur> | didn't think I'd used that alias that recently |
2024-04-28 21:27:42 +0200 | <monochrom> | Oh hey it's the 1st anniversary! |
2024-04-28 21:27:54 +0200 | <geekosaur> | second, no? |
2024-04-28 21:28:01 +0200 | <EvanR> | it was in 2021 |
2024-04-28 21:28:05 +0200 | <geekosaur> | oh |
2024-04-28 21:28:07 +0200 | <EvanR> | lol |
2024-04-28 21:28:08 +0200 | <monochrom> | Err nevermind, misread 10m as 10 minutes. |
2024-04-28 21:28:10 +0200 | <mreh> | I wasn't around, what happen |
2024-04-28 21:28:33 +0200 | <geekosaur> | freenode was taken over by a lunatic and imploded |
2024-04-28 21:28:44 +0200 | <geekosaur> | sort of twitter in miniature |
2024-04-28 21:29:44 +0200 | <mreh> | ah yeah, I'm just reading the wikipedia article |
2024-04-28 21:29:45 +0200 | <geekosaur> | the staff left en masse and founded libera; much of freenode followed them |
2024-04-28 21:31:22 +0200 | <mreh> | I rewatched a talk from SPJ from 2007: https://www.youtube.com/watch?v=06x8Wf2r2Mc&t=761s |
2024-04-28 21:31:43 +0200 | <mreh> | 3k unique nicks in #haskell in 2006 |
2024-04-28 21:33:38 +0200 | <mreh> | we probably had fewer than 300 users online concurrently in the 2010s iirc |
2024-04-28 21:34:13 +0200 | mechap | (~mechap@user/mechap) |
2024-04-28 21:38:12 +0200 | <dolio> | 3k was probably mostly people idling. |
2024-04-28 21:38:23 +0200 | <dolio> | Even now it seems like most people idle. |
2024-04-28 21:39:34 +0200 | werneta | (~werneta@71.83.160.242) |
2024-04-28 21:39:59 +0200 | <dolio> | The freenode disaster really lowered the amount of idlers, though, I suspect. |
2024-04-28 21:40:39 +0200 | <[exa]> | kinda increased the use of matrix and other things too |
2024-04-28 21:40:45 +0200 | <dolio> | Yeah. |
2024-04-28 21:40:45 +0200 | <geekosaur> | dropped roughly by half, and by half again when the EWS gateway died |
2024-04-28 21:40:50 +0200 | <int-e> | that, the end of the matrix bridge... and general decline |
2024-04-28 21:40:55 +0200 | <int-e> | (of IRC) |
2024-04-28 21:41:05 +0200 | <geekosaur> | *EMS |
2024-04-28 21:41:12 +0200 | <mreh> | is there a discord? |
2024-04-28 21:41:23 +0200 | <mreh> | is that where all the zoomer haskellers hang out? |
2024-04-28 21:42:22 +0200 | <ncf> | yep |
2024-04-28 21:42:31 +0200 | <geekosaur> | https://discord.gg/5ay2HNK2 iirc |
2024-04-28 21:42:53 +0200 | <geekosaur> | on the FP discord |
2024-04-28 21:43:09 +0200 | y04nn | (~username@2a03:1b20:8:f011::e10d) (Ping timeout: 256 seconds) |
2024-04-28 21:44:42 +0200 | <geekosaur> | I'm definitely using more Matrix these days, but still appreciate my IRC logs |
2024-04-28 21:45:49 +0200 | <yin> | https://taylor.fausak.me/2022/11/18/haskell-survey-results/#s5q0 |
2024-04-28 21:46:13 +0200 | <yin> | IRC not that far from Discord |
2024-04-28 21:50:39 +0200 | <mreh> | did you promote this on IRC :^) |
2024-04-28 21:52:02 +0200 | <yin> | don't know if it was promoted here but the results are more or less consistent with previous years |
2024-04-28 21:52:28 +0200 | <geekosaur> | it's promoted pretty much everywhere |
2024-04-28 21:54:03 +0200 | <yin> | probably it's not far from a "where the survey was promoted" plot |
2024-04-28 21:54:06 +0200 | <yin> | :p |
2024-04-28 21:55:06 +0200 | <tomsmeding> | promoting something in a linear chat channel is kind of difficult |
2024-04-28 21:55:27 +0200 | <tomsmeding> | I guess the same holds for matrix, but on discord one can at least pin a post (don't know if they did that here, I'm not in that discord) |
2024-04-28 21:56:04 +0200 | <yin> | that's what /topic is for |
2024-04-28 21:56:21 +0200 | <dolio> | That thing no one reads? :þ |
2024-04-28 21:56:27 +0200 | <tomsmeding> | when haskell reddit was larger (I left reddit when the third-party apps thing happend) that was a good promotion venue |
2024-04-28 21:56:52 +0200 | <yin> | i read it! old habit from the "netiquette" days |
2024-04-28 21:57:23 +0200 | <tomsmeding> | I've learned to read it -- it took me an embarrassingly long time to figure out how to scroll to the end in weechat |
2024-04-28 21:57:32 +0200 | <yin> | tomsmeding: yes, haskell reddit was very good |
2024-04-28 21:57:47 +0200 | <tomsmeding> | (it's still the very first thing in the topic) |
2024-04-28 21:58:19 +0200 | <tomsmeding> | also it's kind of hilarious that the majority of the www links in the topic are hosted by me |
2024-04-28 21:58:23 +0200 | <tomsmeding> | that sort of happened... accidentally |
2024-04-28 21:58:38 +0200 | <yin> | i forget, do individual channels have a MOTD? |
2024-04-28 21:58:54 +0200 | <tomsmeding> | I think the only thing there is is the /topic |
2024-04-28 21:59:04 +0200 | <tomsmeding> | where would a motd be printed |
2024-04-28 21:59:08 +0200 | <geekosaur> | chanserv can give people messages on join |
2024-04-28 21:59:18 +0200 | <yin> | geekosaur: that's what i was thinking of |
2024-04-28 21:59:51 +0200 | <geekosaur> | but the messages show as from chanserv, not from the channel, so they tend to collect uselessly |
2024-04-28 21:59:55 +0200 | <tomsmeding> | that would _certainly_ be something no one reads, because it appears in strictly less places than the topic |
2024-04-28 22:00:25 +0200 | <tomsmeding> | can chanserv send something in a channel that's only visible to one nick? |
2024-04-28 22:00:29 +0200 | <EvanR> | what is the state of haskell reddit? |
2024-04-28 22:00:45 +0200 | <geekosaur> | in fact, we have one: [20 11:46:14] -ChanServ- [#haskell] Welcome to #haskell. Beginner questions are welcome here! Public logs and statistics for this channel are available at https://ircbrowse.tomsmeding.com/lchaskell |
2024-04-28 22:00:53 +0200 | <yin> | i have a special pane on top just for server messages, mentions and other important stuff. i rarely miss anything |
2024-04-28 22:00:56 +0200 | <tomsmeding> | oh! I remember seeing that |
2024-04-28 22:01:15 +0200 | <geekosaur> | no, if it's sent "to a channel" then it's not sent "to a nick" (this is a side effect how how IRC messages are implemented) |
2024-04-28 22:01:35 +0200 | <tomsmeding> | I remember seeing that message in my #haskell log though |
2024-04-28 22:01:47 +0200 | tomsmeding | doesn't actually know how irc works in detail |
2024-04-28 22:01:49 +0200 | <yin> | bots sometimes send you a notice on join |
2024-04-28 22:02:02 +0200 | <tomsmeding> | as in, not in a /query |
2024-04-28 22:02:07 +0200 | mauke- | please note that you have been notified |
2024-04-28 22:02:15 +0200 | <tomsmeding> | thank you for the notice |
2024-04-28 22:02:31 +0200 | <mauke> | ^ this is how all bots are supposed to speak, btw |
2024-04-28 22:02:35 +0200 | <mauke> | according to the IRC protocol |
2024-04-28 22:02:42 +0200 | ncf | (~n@monade.li) (Fairfarren.) |
2024-04-28 22:02:43 +0200 | <tomsmeding> | https://xkcd.com/703/ |
2024-04-28 22:02:43 +0200 | ncf | (~n@monade.li) |
2024-04-28 22:02:53 +0200 | <tomsmeding> | really? |
2024-04-28 22:02:59 +0200 | <yin> | not everyone agrees how notices should be used, although libera has a directive for bots to communicate through notices |
2024-04-28 22:03:13 +0200 | <tomsmeding> | also something like lambdabot? |
2024-04-28 22:03:15 +0200 | <yin> | mauke: exaclty |
2024-04-28 22:03:16 +0200 | <geekosaur> | yes, bots are supposed to use /NOTICE |
2024-04-28 22:03:20 +0200 | <geekosaur> | very few of them do |
2024-04-28 22:03:26 +0200 | <ncf> | ChanServ sends a PvNotice, whatever that is |
2024-04-28 22:03:35 +0200 | <mauke> | the protocol has two messages-sending primitives, PRIVMSG and NOTICE |
2024-04-28 22:03:55 +0200 | <yin> | i'm not sure if i agree with it myself, but one positive side effect is that notices prevent feedback loops |
2024-04-28 22:03:56 +0200 | <mauke> | the only difference is supposed to be that NOTICE should not be processed by bots (and trigger further actions) |
2024-04-28 22:04:23 +0200 | destituion | (~destituio@2001:4644:c37:0:6086:64f4:a213:b80d) (Ping timeout: 268 seconds) |
2024-04-28 22:04:25 +0200 | <tomsmeding> | notices appear very differently in my client |
2024-04-28 22:04:43 +0200 | <mauke> | but some clients instead treat NOTICE has a more important message than PRIVMSG (instead of less important), and beep and alert you about it |
2024-04-28 22:04:50 +0200 | <mauke> | s/has a/as a/ |
2024-04-28 22:05:09 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2024-04-28 22:05:15 +0200 | <ncf> | aah so if you send a NOTICE to someone with the format [#channel] text then weechat displays it in that channel |
2024-04-28 22:05:29 +0200 | <monochrom> | By and far, most clients. It is why bot writers stopped using NOTICE. |
2024-04-28 22:05:40 +0200 | <yin> | i have configured notices to appear exactly the same as messages except for color |
2024-04-28 22:05:59 +0200 | destituion | (~destituio@2a02:2121:340:2456:fffe:d0f:7737:dd1) |
2024-04-28 22:06:17 +0200 | <yin> | i used to broadcast them, but because some bots started using them i stopped doing i |
2024-04-28 22:06:25 +0200 | <monochrom> | In general, humanity is fundamentally broken, and everything breaks as expected. |
2024-04-28 22:06:44 +0200 | <[exa]> | I always thought about notices as a kindof OOB data. "Read this before you get b&" or so. |
2024-04-28 22:06:46 +0200 | <tomsmeding> | I suspect it wouldn't go over well if I'd have yahb2 send notices |
2024-04-28 22:06:46 +0200 | <ncf> | oh shush |
2024-04-28 22:07:45 +0200 | <[exa]> | tomsmeding: s/yahb2/yahh2/ compliance fixed |
2024-04-28 22:07:56 +0200 | <yin> | notices used to go in my aforementioned special window until it started getting spammed by some bot |
2024-04-28 22:08:08 +0200 | <mauke> | according to the RFC, NOTICEs are just regular chat messages that are ignored by bots |
2024-04-28 22:08:32 +0200 | <yin> | why do some clients broadcast them then? |
2024-04-28 22:08:35 +0200 | <yin> | makes no sense |
2024-04-28 22:09:02 +0200 | <monochrom> | Because "meaningful" names. People look at the name "NOTICE" and start having their own ideas. |
2024-04-28 22:09:07 +0200 | <tomsmeding> | precisely |
2024-04-28 22:09:08 +0200 | <[exa]> | yin: why do people read documentation. :D |
2024-04-28 22:09:22 +0200 | <tomsmeding> | both names are bad actually, NOTICE and PRIVMSG |
2024-04-28 22:09:26 +0200 | <mauke> | NOTICE ME, SENPAI |
2024-04-28 22:10:08 +0200 | <tomsmeding> | nothing PRIV about a PRIVMSG |
2024-04-28 22:10:43 +0200 | <mauke> | it is only sent to the specified target :-) |
2024-04-28 22:10:58 +0200 | <mauke> | instead of the whole server |
2024-04-28 22:11:03 +0200 | <tomsmeding> | lol |
2024-04-28 22:11:06 +0200 | <tomsmeding> | that would be something |
2024-04-28 22:11:29 +0200 | <mauke> | I mean, IRC started out by emulating CB radio |
2024-04-28 22:11:33 +0200 | <tomsmeding> | perhaps the names were chosen when servers had like 20 people on them |
2024-04-28 22:11:37 +0200 | <mauke> | it's why we speak on "channels" |
2024-04-28 22:11:53 +0200 | <mauke> | and they used to be numeric |
2024-04-28 22:12:08 +0200 | <tomsmeding> | is the use of the word "channel" on matrix, discord, slack, etc. from irc, directly from radio, or unrelated? |
2024-04-28 22:12:17 +0200 | <mauke> | I think it's from IRC |
2024-04-28 22:12:34 +0200 | <tomsmeding> | funny |
2024-04-28 22:12:43 +0200 | <tomsmeding> | tell that to a zoomer discord user |
2024-04-28 22:13:04 +0200 | <tomsmeding> | "still using those old radio terminology?" |
2024-04-28 22:13:07 +0200 | <yushyin> | matrix has 'rooms' afaik? |
2024-04-28 22:13:08 +0200 | <tomsmeding> | s/those/that/ |
2024-04-28 22:13:24 +0200 | <tomsmeding> | fair point |
2024-04-28 22:13:26 +0200 | <yin> | i asked chatgpt to list all message types in the IRC protocol and it listed NOTICE twice: under User Communication as "send a message that does not trigger automatic responses" and under Miscellaneous as "used for various notifications and alerts" |
2024-04-28 22:13:28 +0200 | <[exa]> | ah c'mon we've had rooms in 28000 BC |
2024-04-28 22:13:49 +0200 | <tomsmeding> | yin: so that sounds surprisingly accurate, down to the ambiguity |
2024-04-28 22:14:27 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection) |
2024-04-28 22:14:28 +0200 | <yin> | that why i sometimes like chatgpt |
2024-04-28 22:14:52 +0200 | <tomsmeding> | I sometimes try to imagine how the tech world must sound for a native english speaker |
2024-04-28 22:15:15 +0200 | <int-e> | IRC has some obscure corners (so obscure that they may not even be implemented in modern servers... server-local channels are an example) |
2024-04-28 22:15:23 +0200 | <yin> | it's also the only duplicated type |
2024-04-28 22:15:36 +0200 | <tomsmeding> | I suspect I learned the word "window" as referring to something on a computer screen before knowing that it referred to a silicon-esquen thing you can look through |
2024-04-28 22:15:41 +0200 | <mauke> | was that the &foo thing? |
2024-04-28 22:15:45 +0200 | <int-e> | mauke: yeah |
2024-04-28 22:15:56 +0200 | <[exa]> | tomsmeding: literally last week I had to explain that "eradicate" in a commit message is a positive happy action |
2024-04-28 22:16:10 +0200 | <tomsmeding> | depends on what you eradicate, I guess |
2024-04-28 22:16:23 +0200 | <tomsmeding> | if it's bugs, then that's very positive |
2024-04-28 22:16:26 +0200 | <[exa]> | well, bugs, as usual |
2024-04-28 22:18:22 +0200 | noumenon | (~noumenon@113.51-175-156.customer.lyse.net) (Quit: Leaving) |
2024-04-28 22:20:06 +0200 | <mauke> | ex ter mi nate |
2024-04-28 22:21:02 +0200 | michalz | (~michalz@185.246.207.205) (Ping timeout: 268 seconds) |
2024-04-28 22:21:52 +0200 | <tomsmeding> | istos cimices |
2024-04-28 22:24:14 +0200 | cashew | (~cashewsta@65.17.175.150) |
2024-04-28 22:26:46 +0200 | <EvanR> | tomsmeding, I'm a native english speaker. But I think I learned about windows before actual windows. And before Windows(R), since macintosh came first |
2024-04-28 22:26:56 +0200 | <tomsmeding> | :D |
2024-04-28 22:27:41 +0200 | <tomsmeding> | yeah no I definitely knew the Dutch word for a transparent-glass window before I had done anything with a computer |
2024-04-28 22:28:16 +0200 | <tomsmeding> | I wanted to say "touched", but I don't know what my hands did when I was a baby |
2024-04-28 22:29:05 +0200 | <monochrom> | Perhaps you broke the window. :) |
2024-04-28 22:29:19 +0200 | <monochrom> | "I just touched it and it shattered." |
2024-04-28 22:29:52 +0200 | <EvanR> | it was a TV that broke |
2024-04-28 22:30:04 +0200 | <int-e> | monochrom: diamond fingernails vs. touch screen |
2024-04-28 22:30:06 +0200 | <EvanR> | in the macintosh 1984 ad |
2024-04-28 22:30:39 +0200 | <EvanR> | or was it just apple, I don't even know what they were selling there |
2024-04-28 22:31:29 +0200 | <monochrom> | Haha which one makes a worse screeching sound? bad violin student, diamonad fingernails on touch screen |
2024-04-28 22:31:31 +0200 | y04nn | (~username@2a03:1b20:8:f011::e10d) |
2024-04-28 22:31:42 +0200 | <tomsmeding> | diamonad, yes |
2024-04-28 22:31:51 +0200 | <int-e> | can't wait for the diamonad tutorial |
2024-04-28 22:32:07 +0200 | <monochrom> | Oh oops haha great typo |
2024-04-28 22:32:22 +0200 | bilegeek | (~bilegeek@2600:1008:b025:e5c1:3276:e96d:2d6f:14d7) |
2024-04-28 22:32:27 +0200 | cashew | (~cashewsta@65.17.175.150) (Ping timeout: 268 seconds) |
2024-04-28 22:32:28 +0200 | <tomsmeding> | add "drag piece of chalk under just the right angle over a blackboard" to that list |
2024-04-28 22:32:58 +0200 | <monochrom> | perhaps diamond fingernail on blackboard is even better! |
2024-04-28 22:33:01 +0200 | <geekosaur> | EvanR, just Apple |
2024-04-28 22:33:09 +0200 | <tomsmeding> | maybe they were selling apples |
2024-04-28 22:34:09 +0200 | <EvanR> | On January 24, Apple Computer will introduce Macintosh. And you'll see why 1984 won't be like "1984." |
2024-04-28 22:34:17 +0200 | <monochrom> | <zoomer> Wait, isn't it the Epic ad breaking Apple? </zoomer> |
2024-04-28 22:38:17 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-04-28 22:38:24 +0200 | michalz | (~michalz@185.246.207.217) |
2024-04-28 22:38:32 +0200 | pagnol | (~user@2a02:a210:a40:c80:fea7:f5e8:1519:b9) (Ping timeout: 260 seconds) |
2024-04-28 22:39:18 +0200 | <tomsmeding> | <oldie> An ad for an epic? I thought they had gone out of fashion around the birth of Christ </oldie> |
2024-04-28 22:39:54 +0200 | <monochrom> | That would be a very old oldie. :) |
2024-04-28 22:40:53 +0200 | <tomsmeding> | unrelatedly, why does https://downloads.haskell.org still list "The Haskell Platform" if clicking that link lands you on a page saying "The Haskell Platform is deprecated" |
2024-04-28 22:41:18 +0200 | <tomsmeding> | not only deprecated, the last release seems to be for 8.6.5 |
2024-04-28 22:41:29 +0200 | <monochrom> | Too polite to delete things? |
2024-04-28 22:41:45 +0200 | <tomsmeding> | I would understand that if it still had releases, even if noone was using them |
2024-04-28 22:42:22 +0200 | <monochrom> | OK I was unfair. This one shouldn't be deleted yet, but right upfront it should warn "but very old version". |
2024-04-28 22:42:30 +0200 | <tomsmeding> | I guess it's not terribly important, people don't typically land on downloads.haskell.org directly |
2024-04-28 22:42:46 +0200 | <haskellbridge> | <zwro> lost links everywhere |
2024-04-28 22:42:57 +0200 | <tomsmeding> | I'm not saying delete the file |
2024-04-28 22:42:59 +0200 | <tomsmeding> | -s |
2024-04-28 22:43:13 +0200 | <monochrom> | Me neither, even when I was unfair. |
2024-04-28 22:43:31 +0200 | <haskellbridge> | <zwro> i personally think that the http protocol should hash each webpage contents and provide |
2024-04-28 22:43:50 +0200 | <haskellbridge> | <zwro> automatic timestamps to each edit |
2024-04-28 22:43:50 +0200 | <tomsmeding> | are you looking for ipfs? |
2024-04-28 22:44:18 +0200 | <monochrom> | Oh then I have something for you! https://www.vex.net/~trebla/humour/lmcify.html |
2024-04-28 22:44:47 +0200 | <monochrom> | You can now make URLs that carry their own complete content! |
2024-04-28 22:44:58 +0200 | <mauke> | you still believe in web pages? |
2024-04-28 22:45:41 +0200 | <mauke> | I thought we'd all switched to client-side "web apps" instead |
2024-04-28 22:45:42 +0200 | <haskellbridge> | <zwro> that's the web i'm looking for! |
2024-04-28 22:46:55 +0200 | <haskellbridge> | <zwro> the main online news outlets in my country don't timestamp their articles nor signal their edits |
2024-04-28 22:47:48 +0200 | <haskellbridge> | <zwro> sometimes you read a really upsetting article and only after you find out that it's 10 years old |
2024-04-28 22:48:03 +0200 | <tomsmeding> | that just sounds like bad journalism |
2024-04-28 22:48:16 +0200 | <haskellbridge> | <zwro> and sometimes you share an article and two days later the "facts" are edited |
2024-04-28 22:48:34 +0200 | <monochrom> | People don't have incentives to keep perfect record even for themselves, much less spend extra money to run servers to make it public. |
2024-04-28 22:48:53 +0200 | <int-e> | editing the article later is just SEO ;) |
2024-04-28 22:49:11 +0200 | <monochrom> | Even you probably don't take a snapshot of your own hard disks every time just before you install or uninstall software. |
2024-04-28 22:49:15 +0200 | <geekosaur> | "we have always been at war with east asia" |
2024-04-28 22:49:20 +0200 | <geekosaur> | (speaking of 1984) |
2024-04-28 22:49:46 +0200 | <haskellbridge> | <zwro> we need nix:// |
2024-04-28 22:50:27 +0200 | <int-e> | . o O ( after 2 hours of browsing with the nix:// protocol I ran out of disk space ) |
2024-04-28 22:50:39 +0200 | <monochrom> | No, even that doesn't cut it. I am talking about a file system that is also a version system. |
2024-04-28 22:50:53 +0200 | <haskellbridge> | <zwro> good |
2024-04-28 22:50:56 +0200 | <haskellbridge> | <zwro> go touch grass |
2024-04-28 22:51:08 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-04-28 22:51:14 +0200 | <haskellbridge> | <zwro> 90% world problems solved |
2024-04-28 22:51:31 +0200 | <tomsmeding> | somehow I doubt that last part |
2024-04-28 22:52:30 +0200 | <haskellbridge> | <zwro> yeah... |
2024-04-28 22:52:56 +0200 | <monochrom> | Such a thing almost existed. VAX VMS kept all old versions of your files. |
2024-04-28 22:53:02 +0200 | pavonia | (~user@user/siracusa) |
2024-04-28 22:53:18 +0200 | <tomsmeding> | _all_? |
2024-04-28 22:53:29 +0200 | <monochrom> | Only economists are realistic enough to explain why no one does it any more. |
2024-04-28 22:53:33 +0200 | <tomsmeding> | it's not like disks were as roomy back then as they are nowadays |
2024-04-28 22:53:44 +0200 | <monochrom> | ___***ALL***___ |
2024-04-28 22:53:56 +0200 | <tomsmeding> | that sould have been a /NOTICE |
2024-04-28 22:54:56 +0200 | <monochrom> | You literally could not use the excuse "I accidentally deleted my homework" because it was still literally available as "foo.c;12". |
2024-04-28 22:55:24 +0200 | <tomsmeding> | that's why VAX lost |
2024-04-28 22:55:29 +0200 | <monochrom> | (in general filename;versionnumber ) |
2024-04-28 22:55:41 +0200 | <tomsmeding> | students get older |
2024-04-28 22:55:48 +0200 | <int-e> | my dog ate my hard disk drive |
2024-04-28 22:56:15 +0200 | <tomsmeding> | gotta take your dog to university |
2024-04-28 22:57:55 +0200 | <mauke> | https://perldoc.perl.org/perlport#System-Interaction :-) |
2024-04-28 22:58:00 +0200 | <geekosaur> | hm, pretty sure that was configurable per filesystem |
2024-04-28 22:58:07 +0200 | <geekosaur> | I know it was on TOPS-20 |
2024-04-28 22:58:22 +0200 | <geekosaur> | the one I had access to kept two prior versions |
2024-04-28 22:59:29 +0200 | <tomsmeding> | `while unlink "file";` |
2024-04-28 22:59:33 +0200 | tomsmeding | shudders |
2024-04-28 22:59:51 +0200 | r5c4571lh01987 | (~rscastilh@179.221.142.8) (Remote host closed the connection) |
2024-04-28 23:00:11 +0200 | <mauke> | `1 while unlink "file";` please |
2024-04-28 23:00:20 +0200 | cheater_ | (~Username@user/cheater) |
2024-04-28 23:00:20 +0200 | <haskellbridge> | <zwro> i wonder how much we could compress the wevlb just by removing duplicates |
2024-04-28 23:00:25 +0200 | <haskellbridge> | <zwro> duplicate files |
2024-04-28 23:00:26 +0200 | <monochrom> | No more terrible than for (i = 0; i < FD_MAX; i++) { close(i); } >:) |
2024-04-28 23:00:55 +0200 | <tomsmeding> | mauke: oops, you can see how often I've written perl |
2024-04-28 23:01:00 +0200 | <monochrom> | (in the context of daemonizing a process on Unix) |
2024-04-28 23:02:05 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 240 seconds) |
2024-04-28 23:02:15 +0200 | cheater_ | cheater |
2024-04-28 23:02:20 +0200 | <haskellbridge> | <zwro> is there data on the estimates size of the www per year? |
2024-04-28 23:02:27 +0200 | <haskellbridge> | <zwro> *estimated |
2024-04-28 23:02:48 +0200 | <monochrom> | I think yes but I forgot where to find it. |
2024-04-28 23:02:51 +0200 | <haskellbridge> | <zwro> i wonder if i could download the whole 1996 web |
2024-04-28 23:03:00 +0200 | <tomsmeding> | check /r/datahoarders |
2024-04-28 23:04:04 +0200 | <mauke> | what is the size of https://git-man-page-generator.lokaltog.net/? |
2024-04-28 23:04:34 +0200 | <haskellbridge> | <zwro> C:\web\dark\sexyascii 1.7Kb |
2024-04-28 23:05:34 +0200 | <haskellbridge> | <zwro> i just remembered https://libraryofbabel.info/ |
2024-04-28 23:10:28 +0200 | <monochrom> | Oh yeah I saw a new post/thread on the discourse about "what are effects?". I want to participate, but need to check something with you guys. Does "effect" refer to eg the ability to read input (so eg in Haskell the IO type represents the effect) or to the value/action (so eg getChar)? |
2024-04-28 23:10:50 +0200 | <tomsmeding> | either, depending on who you're talking to |
2024-04-28 23:10:56 +0200 | <monochrom> | :( |
2024-04-28 23:10:57 +0200 | <tomsmeding> | the latter if you're talking to a mathematician |
2024-04-28 23:11:05 +0200 | <tomsmeding> | the former if you're talking to a functional programmer |
2024-04-28 23:11:21 +0200 | <monochrom> | Ah, then what do mathematicians call the former? |
2024-04-28 23:11:37 +0200 | gorignak | (~gorignak@user/gorignak) |
2024-04-28 23:11:39 +0200 | <tomsmeding> | I have never seen a mathematician talk about reading input :) |
2024-04-28 23:12:11 +0200 | <monochrom> | OK, maybe Maybe then. |
2024-04-28 23:12:48 +0200 | <monochrom> | maybe they just say monad... |
2024-04-28 23:13:06 +0200 | <tomsmeding> | I think so? |
2024-04-28 23:14:16 +0200 | <tomsmeding> | I would personally never call "IO" an effect, though |
2024-04-28 23:14:38 +0200 | <tomsmeding> | reading input is an effect (definition 1), and `getChar` is also an effect (definition 2) |
2024-04-28 23:14:57 +0200 | <tomsmeding> | monads allow you to perform effects (both definitions) |
2024-04-28 23:17:03 +0200 | <tomsmeding> | but algebraic effect systems also do, and those are not necessarily monads (though they invariably are, in haskell) |
2024-04-28 23:17:31 +0200 | <int-e> | using monads to great effect |
2024-04-28 23:17:34 +0200 | <tomsmeding> | s/are,/are/ |
2024-04-28 23:19:19 +0200 | <tomsmeding> | "affect your effects using monad transformers" |
2024-04-28 23:20:27 +0200 | <monochrom> | I think all papers I read (OK, only two) presume monads for algebraic effects. I don't mean to say a programming language has to expose the monads. Just that they have monads behind. |
2024-04-28 23:20:50 +0200 | cashew | (~cashewsta@65.17.175.150) |
2024-04-28 23:20:57 +0200 | tomsmeding | doesn't actually know how the mathematical theory for this goes |
2024-04-28 23:24:09 +0200 | mreh | (~matthew@host86-160-168-68.range86-160.btcentralplus.com) (Ping timeout: 256 seconds) |
2024-04-28 23:24:28 +0200 | <probie> | Can you have a useful implementation for algebraic effects which isn't a monad? I guess if you disallow effects (definition 2) from depending on each other, you can have something weaker that's still of use |
2024-04-28 23:25:36 +0200 | <tomsmeding> | can't you define a system of effects-and-handlers, like some languages have (Koka? Never used it though), from first principles without involving a monad? |
2024-04-28 23:25:47 +0200 | madeleine-sydney | (~madeleine@c-76-155-235-153.hsd1.co.comcast.net) |
2024-04-28 23:25:59 +0200 | cashew | (~cashewsta@65.17.175.150) (Ping timeout: 252 seconds) |
2024-04-28 23:26:34 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) (Ping timeout: 255 seconds) |
2024-04-28 23:27:09 +0200 | <tomsmeding> | (I should read something about this topic before I go sprouting nonsense though) |
2024-04-28 23:28:16 +0200 | <Rembane> | tomsmeding: I just saw your new version of the Haskell playground and I like it! |
2024-04-28 23:28:23 +0200 | <monochrom> | Right, Koka doesn't expose any monad. But you start postulating monads for semantics. |
2024-04-28 23:28:43 +0200 | <tomsmeding> | I see |
2024-04-28 23:28:52 +0200 | <tomsmeding> | Rembane: yay! |
2024-04-28 23:29:19 +0200 | <tomsmeding> | baby steps |
2024-04-28 23:29:35 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2024-04-28 23:30:04 +0200 | <ncf> | that's what playgrounds are for |
2024-04-28 23:31:35 +0200 | Square | (~Square@user/square) (Ping timeout: 245 seconds) |
2024-04-28 23:32:07 +0200 | <dolio> | IO is the signature or theory. The 'effects' are related to the generators, which would be like `getChar` for IO. At least in the literature. |
2024-04-28 23:32:34 +0200 | <tomsmeding> | ah yes, I now remember mathematicians using those words |
2024-04-28 23:33:33 +0200 | <tomsmeding> | I was writing a paper with my PhD advisor and he wrote a part of the thing that talked about a monad; he wrote it \mathcal T |
2024-04-28 23:33:39 +0200 | michalz | (~michalz@185.246.207.217) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-04-28 23:33:54 +0200 | <tomsmeding> | "why 'T'" "well, it's a theory" "it's a monad" "ok" "call it \mathcal M" "ok" |
2024-04-28 23:34:06 +0200 | <ncf> | triple |
2024-04-28 23:34:26 +0200 | <tomsmeding> | more things in math are a triple than not |
2024-04-28 23:34:29 +0200 | <ncf> | monads used to be called triples |
2024-04-28 23:34:38 +0200 | <monochrom> | The "handler" part does not require a monad though; in fact it is not even required to be "algebraic". More concretely, for example Maybe: Just and Nothing are the algebraic part and where you require a monad, but the handler `maybe` is where you can map Maybe X to whatever Y you like; it is also not "algebraic". |
2024-04-28 23:34:44 +0200 | <geekosaur> | don't amke me haul out Mac Lane |
2024-04-28 23:34:45 +0200 | <mauke> | baby-step semantics |
2024-04-28 23:35:19 +0200 | <ncf> | (that's why monads are spelt T everywhere) |
2024-04-28 23:35:21 +0200 | <dolio> | Handlers are models, if I recall correctly. |
2024-04-28 23:35:53 +0200 | <mauke> | I wish my handlers were models |
2024-04-28 23:36:10 +0200 | <monochrom> | haha |
2024-04-28 23:38:43 +0200 | <EvanR> | all the best things come in threes |
2024-04-28 23:39:06 +0200 | <EvanR> | gifts, riddles, |
2024-04-28 23:39:10 +0200 | <EvanR> | doors |
2024-04-28 23:40:11 +0200 | oo_miguel | (~Thunderbi@78-11-181-16.static.ip.netia.com.pl) (Ping timeout: 264 seconds) |
2024-04-28 23:41:02 +0200 | <Rembane> | Animals on a boat |
2024-04-28 23:41:20 +0200 | cashew | (~cashewsta@65.17.175.150) |
2024-04-28 23:41:23 +0200 | <int-e> | and a cabbage |
2024-04-28 23:42:07 +0200 | <Rembane> | Yeah, I was kinda hoping that the cabbage was an animal |
2024-04-28 23:42:09 +0200 | <cheater> | i don't think they're spelt like that, i think they're more flaxseed |
2024-04-28 23:43:32 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Remote host closed the connection) |
2024-04-28 23:43:44 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2024-04-28 23:44:50 +0200 | <monochrom> | You forgot that it was the human that was the 3rd animal. >:) |
2024-04-28 23:45:39 +0200 | <monochrom> | Although, I admit that if you pose the puzzle to chatgpt, then the "you" in the story ceases to be an animal. But one can hallucinate... |
2024-04-28 23:46:52 +0200 | mima | (~mmh@ip-185-104-138-52.ptr.icomera.net) (Ping timeout: 246 seconds) |
2024-04-28 23:48:54 +0200 | <Rembane> | I totally forgot the human. :) |
2024-04-28 23:54:01 +0200 | cashew | (~cashewsta@65.17.175.150) (Ping timeout: 255 seconds) |
2024-04-28 23:56:14 +0200 | werneta | (~werneta@71.83.160.242) (Quit: Lost terminal) |