2023-10-08 00:01:17 +0200 | CiaoSen | (~Jura@2a05:5800:298:ba00:664b:f0ff:fe37:9ef) (Ping timeout: 255 seconds) |
2023-10-08 00:01:25 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2023-10-08 00:04:02 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Ping timeout: 258 seconds) |
2023-10-08 00:10:19 +0200 | harveypwca | (~harveypwc@2601:246:c180:a570:41a8:a837:a4a7:bda1) |
2023-10-08 00:11:37 +0200 | John_Ivan | (~John_Ivan@user/john-ivan/x-1515935) |
2023-10-08 00:11:55 +0200 | <John_Ivan> | hi, has anyone encountered this error where the import statements aren't being recognized? |
2023-10-08 00:12:18 +0200 | <John_Ivan> | the error is "error: parse error on input ‘module’" which refers to the import calls right before the "module" keyword. |
2023-10-08 00:12:22 +0200 | falafel | (~falafel@62.175.113.194.dyn.user.ono.com) |
2023-10-08 00:12:31 +0200 | <geekosaur> | imports must come after module |
2023-10-08 00:12:39 +0200 | <John_Ivan> | always |
2023-10-08 00:12:40 +0200 | <John_Ivan> | ? |
2023-10-08 00:12:58 +0200 | jle` | (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Quit: WeeChat 3.3) |
2023-10-08 00:13:02 +0200 | <geekosaur> | well, the main module doesn't need a module declaration. but if one exists it must come first |
2023-10-08 00:13:17 +0200 | <John_Ivan> | alright, i'll try that. thank you. |
2023-10-08 00:15:05 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds) |
2023-10-08 00:18:11 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2023-10-08 00:18:58 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-10-08 00:22:26 +0200 | acidjnk | (~acidjnk@p200300d6e7072f72f8dec80e9aca23dc.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
2023-10-08 00:24:21 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 258 seconds) |
2023-10-08 00:27:09 +0200 | stites | (~stites@2607:fb90:ad63:e013:9e88:5faf:89ef:30) (Read error: Connection reset by peer) |
2023-10-08 00:27:39 +0200 | stites | (~stites@130.44.147.204) |
2023-10-08 00:41:05 +0200 | hyiltiz | (~hyiltiz@2603-8080-1f00-082f-8cdd-ec73-edb7-293e.res6.spectrum.com) (Remote host closed the connection) |
2023-10-08 00:45:53 +0200 | billchenchina | (~billchenc@2a0c:b641:7a2:320:ee3e:47ca:6070:d71a) (Remote host closed the connection) |
2023-10-08 00:46:31 +0200 | ddellacosta | (~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 255 seconds) |
2023-10-08 00:47:28 +0200 | flukiluke | (~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962) (Remote host closed the connection) |
2023-10-08 00:48:45 +0200 | flukiluke | (~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962) |
2023-10-08 00:55:41 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds) |
2023-10-08 01:00:50 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2023-10-08 01:01:05 +0200 | hugo | (znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds) |
2023-10-08 01:01:17 +0200 | zer0bitz_ | (~zer0bitz@user/zer0bitz) |
2023-10-08 01:01:27 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-10-08 01:01:55 +0200 | califax | (~califax@user/califx) |
2023-10-08 01:03:19 +0200 | aliosablack | (~chomwitt@2a02:587:7a24:b000:1ac0:4dff:fedb:a3f1) (Ping timeout: 264 seconds) |
2023-10-08 01:04:36 +0200 | zer0bitz | (~zer0bitz@user/zer0bitz) (Ping timeout: 258 seconds) |
2023-10-08 01:16:33 +0200 | hugo | (znc@verdigris.lysator.liu.se) |
2023-10-08 01:17:16 +0200 | cuiltb^ | (~cd@76.145.193.217) (Ping timeout: 260 seconds) |
2023-10-08 01:19:14 +0200 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 255 seconds) |
2023-10-08 01:19:38 +0200 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) |
2023-10-08 01:28:46 +0200 | bilegeek | (~bilegeek@2600:1008:b029:9629:c264:f679:2b5f:3f7) (Quit: Leaving) |
2023-10-08 01:29:03 +0200 | khumba | (~khumba@user/khumba) () |
2023-10-08 01:29:41 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-10-08 01:29:41 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-10-08 01:29:41 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-10-08 01:30:34 +0200 | juri_ | (~juri@84-19-175-187.pool.ovpn.com) |
2023-10-08 01:32:31 +0200 | falafel | (~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 260 seconds) |
2023-10-08 01:32:42 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2023-10-08 01:36:48 +0200 | falafel | (~falafel@62.175.113.194.dyn.user.ono.com) |
2023-10-08 01:37:11 +0200 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 260 seconds) |
2023-10-08 01:40:03 +0200 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2023-10-08 01:40:21 +0200 | zmt00 | (~zmt00@user/zmt00) |
2023-10-08 01:40:47 +0200 | <ph88> | for debugging purposes which function can i use to fully/deep evaluate a list before i pass it on ? |
2023-10-08 01:41:08 +0200 | <geekosaur> | rnf from the deepseq package? |
2023-10-08 01:41:45 +0200 | <monochrom> | That is a very unusual debugging method. |
2023-10-08 01:43:28 +0200 | <ph88> | thanks geekosaur |
2023-10-08 02:04:34 +0200 | jargon | (~jargon@174-22-221-150.phnx.qwest.net) |
2023-10-08 02:05:16 +0200 | hugo | (znc@verdigris.lysator.liu.se) (Ping timeout: 252 seconds) |
2023-10-08 02:08:04 +0200 | elevenkb | (elevenkb@thunix.net) |
2023-10-08 02:10:12 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
2023-10-08 02:12:53 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.) |
2023-10-08 02:14:12 +0200 | bilegeek | (~bilegeek@2600:1008:b029:9629:c264:f679:2b5f:3f7) |
2023-10-08 02:20:38 +0200 | hugo | (znc@verdigris.lysator.liu.se) |
2023-10-08 02:23:24 +0200 | falafel | (~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 272 seconds) |
2023-10-08 02:28:22 +0200 | billchenchina | (~billchenc@2a0c:b641:7a2:320:ee3e:47ca:6070:d71a) |
2023-10-08 02:29:49 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-10-08 02:35:32 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2023-10-08 02:36:39 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-10-08 02:50:00 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds) |
2023-10-08 02:52:03 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2023-10-08 03:03:23 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds) |
2023-10-08 03:09:18 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-10-08 03:13:33 +0200 | billchenchina | (~billchenc@2a0c:b641:7a2:320:ee3e:47ca:6070:d71a) (Remote host closed the connection) |
2023-10-08 03:21:27 +0200 | hugo | (znc@verdigris.lysator.liu.se) (Ping timeout: 258 seconds) |
2023-10-08 03:26:16 +0200 | otto_s | (~user@p5b0446f7.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2023-10-08 03:28:06 +0200 | otto_s | (~user@p5b044871.dip0.t-ipconnect.de) |
2023-10-08 03:52:34 +0200 | ddellacosta | (~ddellacos@ool-44c738de.dyn.optonline.net) |
2023-10-08 03:54:45 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-10-08 03:56:53 +0200 | hugo | (znc@verdigris.lysator.liu.se) |
2023-10-08 04:02:46 +0200 | harveypwca | (~harveypwc@2601:246:c180:a570:41a8:a837:a4a7:bda1) (Quit: Leaving) |
2023-10-08 04:07:47 +0200 | ori__sky | (~ori__sky@2001:8b0:aaa4:8eab:dde9:a4e:29dc:23b1) |
2023-10-08 04:12:59 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2023-10-08 04:12:59 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2023-10-08 04:12:59 +0200 | finn_elija | FinnElija |
2023-10-08 04:13:42 +0200 | <ori__sky> | hi, I had a quick question if anyone has experience with lens stuff. I have some data structures involving `HashMap` fields that I'm indexing into using lenses, and I'm using `hashMap . at idx . non defaultValue . etc etc` to do this. however, `non` requires my value type to implement an instance of `Eq`, and I'm wondering what the reason for this |
2023-10-08 04:13:43 +0200 | <ori__sky> | is? my type can't implement `Eq` meaningfully as it holds a `[a -> m ()]` list, which doesn't have an instance of `Eq` |
2023-10-08 04:14:44 +0200 | <geekosaur> | how is it supposed to determine that a value is or isn't defaultValue? |
2023-10-08 04:18:50 +0200 | <ori__sky> | hmm, fair point, I think maybe I'm struggling to conceptualize how `at idx . non x` is meant to be used. I guess my question would be, is there a way of just indexing into an Index-able lens with a default value if it doesn't already exist? i.e. without checking for equality with the default value I'm wanting to insert |
2023-10-08 04:21:07 +0200 | <ori__sky> | I can do as much with a bit more verbosity if I do something like `hashMap . at idx %= \case Nothing -> Just defaultValue; other -> other`, before I then do whatever else I'm wanting to do with that index, but that feels pretty verbose I guess |
2023-10-08 04:21:15 +0200 | <c_wraith> | yeah, the trick about `non` is that it sets the element to Nothing if it's the default element. |
2023-10-08 04:21:35 +0200 | <geekosaur> | that sounbds to me like your lens is wrong; don't you want the key, not the value? |
2023-10-08 04:22:14 +0200 | <geekosaur> | oh |
2023-10-08 04:22:47 +0200 | <ori__sky> | looking at `at idx` lets me modify the Maybe val that's at that index, where it's Nothing if it's not already there |
2023-10-08 04:23:17 +0200 | <geekosaur> | but `non` uses `only` which requires `Eq`. you need something which distinguishes empty lists, I think |
2023-10-08 04:23:40 +0200 | <geekosaur> | or I'm just confused |
2023-10-08 04:23:41 +0200 | <c_wraith> | `non` doing that is really helpful when you want to automatically remove keys when you remove the last element from a collection indexed by that key |
2023-10-08 04:25:20 +0200 | <geekosaur> | that is, aiui it's doing the equivalent of `== []` when you really want the equivalent of `null` |
2023-10-08 04:25:36 +0200 | <ori__sky> | hmm ah I see |
2023-10-08 04:26:16 +0200 | <c_wraith> | ori__sky: can you use non' instead? |
2023-10-08 04:27:02 +0200 | <c_wraith> | oh. or `anon null' |
2023-10-08 04:27:24 +0200 | <ori__sky> | oh hmm that sounds like it might work, lemme try |
2023-10-08 04:28:12 +0200 | <c_wraith> | oh, that's even the first example of using anon |
2023-10-08 04:33:41 +0200 | privacy | (~privacy@user/privacy) (Quit: Leaving) |
2023-10-08 04:33:42 +0200 | <ori__sky> | hmm. I think I'm misunderstanding this still -- I have `hashMap . at idx . anon defaultValue HashMap.null` but it looks like the predicate passed to `anon` is `valtype -> Bool`, not `Maybe valtype -> Bool` which would ideally be what I want to be dealing with here, as I just want to insert if there's nothing at that index |
2023-10-08 04:34:12 +0200 | <c_wraith> | it automatically maps Nothing to the defaultValue |
2023-10-08 04:34:35 +0200 | <ori__sky> | ohhh |
2023-10-08 04:35:35 +0200 | <c_wraith> | it also replaces anything that matches the predicate with the default value. I don't think you need that case, but anon is the tool that's there.. |
2023-10-08 04:36:09 +0200 | <c_wraith> | oh, wait. No, the predicate goes the other direction. If the predicate returns true, it maps to Nothing |
2023-10-08 04:40:23 +0200 | hugo | (znc@verdigris.lysator.liu.se) (Ping timeout: 255 seconds) |
2023-10-08 04:44:51 +0200 | <ori__sky> | hm okay I am not sure I fully understand this still, although, this seems to work correctly: `at idx . anon defaultValue (const False)` |
2023-10-08 04:45:07 +0200 | <ori__sky> | inserts the default value when the key doesn't exist, but doesn't replace it once it does exist |
2023-10-08 04:45:41 +0200 | <c_wraith> | that'll work if you aren't interested in keeping the structure clean in the face of removals |
2023-10-08 04:45:59 +0200 | <c_wraith> | the predicate is basically for "when does this map back to Nothing?" |
2023-10-08 04:46:08 +0200 | sabino | (~sabino@user/sabino) (Quit: Lambda _ -> x) |
2023-10-08 04:47:01 +0200 | <ori__sky> | ahh okay I understand now, so if p val == True then it indicates it should be treated as there no longer being a value there |
2023-10-08 04:47:20 +0200 | <c_wraith> | exactly |
2023-10-08 04:47:28 +0200 | <ori__sky> | that makes perfect sense, thanks very much for the help |
2023-10-08 04:49:42 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 272 seconds) |
2023-10-08 04:54:47 +0200 | ddellacosta | (~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 255 seconds) |
2023-10-08 04:56:35 +0200 | td_ | (~td@i53870937.versanet.de) (Ping timeout: 255 seconds) |
2023-10-08 04:56:47 +0200 | ddellacosta | (~ddellacos@ool-44c738de.dyn.optonline.net) |
2023-10-08 04:58:35 +0200 | td_ | (~td@i53870918.versanet.de) |
2023-10-08 04:59:27 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-10-08 05:04:16 +0200 | sm | (~sm@plaintextaccounting/sm) (Ping timeout: 260 seconds) |
2023-10-08 05:09:23 +0200 | hugo | (znc@verdigris.lysator.liu.se) |
2023-10-08 05:13:59 +0200 | aforemny_ | (~aforemny@i59F516D9.versanet.de) |
2023-10-08 05:14:52 +0200 | aforemny | (~aforemny@2001:9e8:6ce5:2900:3ebe:1c43:4cc8:272d) (Ping timeout: 248 seconds) |
2023-10-08 05:21:15 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 252 seconds) |
2023-10-08 05:23:24 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2023-10-08 05:42:20 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-10-08 05:43:00 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) (Ping timeout: 240 seconds) |
2023-10-08 05:43:50 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) |
2023-10-08 05:47:20 +0200 | hugo | (znc@verdigris.lysator.liu.se) (Ping timeout: 255 seconds) |
2023-10-08 05:56:03 +0200 | hugo | (znc@verdigris.lysator.liu.se) |
2023-10-08 05:58:35 +0200 | sm | (~sm@plaintextaccounting/sm) (Quit: sm) |
2023-10-08 06:03:31 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer) |
2023-10-08 06:04:27 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) |
2023-10-08 06:08:06 +0200 | sgarcia | (sgarcia@swarm.znchost.com) (Quit: Hosted by www.ZNCHost.com) |
2023-10-08 06:11:17 +0200 | sgarcia | (sgarcia@swarm.znchost.com) |
2023-10-08 06:20:16 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer) |
2023-10-08 06:21:25 +0200 | ori__sky | (~ori__sky@2001:8b0:aaa4:8eab:dde9:a4e:29dc:23b1) (Quit: Client closed) |
2023-10-08 06:22:44 +0200 | paddymahoney | (~paddymaho@cpe883d24bcf597-cmbc4dfb741f80.cpe.net.cable.rogers.com) |
2023-10-08 06:28:12 +0200 | roboguy_ | (~roboguy_@cpe-69-76-235-109.kc.res.rr.com) (Quit: Leaving...) |
2023-10-08 06:28:29 +0200 | jargon | (~jargon@174-22-221-150.phnx.qwest.net) (Remote host closed the connection) |
2023-10-08 06:31:25 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-10-08 06:36:27 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2023-10-08 06:38:21 +0200 | jathan | (~jathan@69.61.93.38) (Quit: WeeChat 2.3) |
2023-10-08 06:48:12 +0200 | hugo | (znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds) |
2023-10-08 07:03:54 +0200 | hugo | (znc@verdigris.lysator.liu.se) |
2023-10-08 07:09:32 +0200 | vglfr | (~vglfr@88.155.165.25) |
2023-10-08 07:09:48 +0200 | Cajun | (~Cajun@user/cajun) |
2023-10-08 07:10:11 +0200 | Square | (~Square@user/square) (Ping timeout: 260 seconds) |
2023-10-08 07:16:21 +0200 | Cajun58 | (~Cajun@user/cajun) |
2023-10-08 07:20:08 +0200 | Cajun | (~Cajun@user/cajun) (Ping timeout: 245 seconds) |
2023-10-08 07:26:36 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-10-08 07:33:39 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2023-10-08 07:37:26 +0200 | Cajun58 | (~Cajun@user/cajun) (Quit: Client closed) |
2023-10-08 07:37:38 +0200 | Cajun | (~Cajun@user/cajun) |
2023-10-08 07:47:28 +0200 | krei-se | (~krei-se@p50874770.dip0.t-ipconnect.de) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-10-08 07:50:17 +0200 | krei-se | (~krei-se@p50874770.dip0.t-ipconnect.de) |
2023-10-08 07:52:17 +0200 | bilegeek | (~bilegeek@2600:1008:b029:9629:c264:f679:2b5f:3f7) (Quit: Leaving) |
2023-10-08 08:08:29 +0200 | todi1 | todi |
2023-10-08 08:16:26 +0200 | g00gler | (uid125351@uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2023-10-08 08:23:08 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 255 seconds) |
2023-10-08 08:35:16 +0200 | whodevil | (~whodevil@user/whodevil) |
2023-10-08 08:38:58 +0200 | whodevil | (~whodevil@user/whodevil) () |
2023-10-08 08:39:48 +0200 | acidjnk | (~acidjnk@p200300d6e7072f71a0e70c533425b336.dip0.t-ipconnect.de) |
2023-10-08 08:40:57 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) |
2023-10-08 08:41:38 +0200 | privacy | (~privacy@user/privacy) |
2023-10-08 09:06:06 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:f026:93e1:c9cc:1bf) (Remote host closed the connection) |
2023-10-08 09:08:08 +0200 | ania123 | (~ania123@wl-pool2-ont-004.uni-muenster.de) |
2023-10-08 09:08:19 +0200 | <ania123> | is it possible to have different type elements in list? |
2023-10-08 09:08:27 +0200 | <ania123> | I need to implement a problem and use list data structure. Types of elements of a list should not be same... |
2023-10-08 09:10:10 +0200 | fendor | (~fendor@2a02:8388:1640:be00:aab:1226:f274:5021) |
2023-10-08 09:16:56 +0200 | <int-e> | The typical answer is to use a sum type. data Elem = EInt Integer | EDouble Double | ... (you can even add an EList [Elem] alternative to allow nested lists) |
2023-10-08 09:20:38 +0200 | <ania123> | can I have int and float data in the same list? |
2023-10-08 09:21:11 +0200 | <ania123> | [1;0.7] for example |
2023-10-08 09:22:53 +0200 | <int-e> | No. But you can have [EInt 1, EFloat 0.7] of type [Elem] with data Elem = EInt Int | EFloat Flat |
2023-10-08 09:23:10 +0200 | <int-e> | > [1, 0.7] |
2023-10-08 09:23:11 +0200 | <lambdabot> | [1.0,0.7] |
2023-10-08 09:23:33 +0200 | <ania123> | in that case, both data have float types |
2023-10-08 09:23:38 +0200 | <int-e> | (you can do the JS thing where all numbers are stored doubles) |
2023-10-08 09:23:48 +0200 | migas | (~migas@astra4961.startdedicated.net) (Quit: Ping timeout (120 seconds)) |
2023-10-08 09:23:48 +0200 | <int-e> | +as |
2023-10-08 09:24:01 +0200 | <int-e> | (not that I recommend that) |
2023-10-08 09:24:06 +0200 | migas | (~migas@astra4961.startdedicated.net) |
2023-10-08 09:24:13 +0200 | <ania123> | int-e: probably haskell disallow it becase of lack type inference. No? |
2023-10-08 09:24:52 +0200 | <int-e> | No, Haskell has type inference. It largely doesn't have runtime type information. |
2023-10-08 09:25:01 +0200 | gmg | (~user@user/gehmehgeh) |
2023-10-08 09:25:44 +0200 | <ania123> | I know haskell has type inference, probably it uses ML type inference alg? No? Milners alg? |
2023-10-08 09:27:41 +0200 | <int-e> | With Haskell 2010... well there's type classes on top of that. |
2023-10-08 09:28:56 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2023-10-08 09:29:45 +0200 | <ania123> | if type system allows different types in list, will be it impossible to infer types of functions? |
2023-10-08 09:30:08 +0200 | <ania123> | I mean, what is a main reson to restrict in lists having same type of elements? |
2023-10-08 09:30:36 +0200 | <int-e> | GHC goes beyond that quite a bit. Incidentally it probably allows an inhomogeneous list but it won't be useful without further trickery, because it will effectively be a list of elements, each of *some* type that you can never figure out within Haskell. |
2023-10-08 09:32:28 +0200 | <ania123> | could you tell me reason? why differents types are not allowed in list? |
2023-10-08 09:33:00 +0200 | <dsal> | What would be the type of a list with different types in it? |
2023-10-08 09:34:42 +0200 | <int-e> | ania123: The elements of such a list would be values of some unknown types; any function working on them would have to take an argument of any conceivable type. There's very little you can do with that; you can ignore the argument (so make a constant function), or you can pass it along without modification (so the identity function). |
2023-10-08 09:36:50 +0200 | <dsal> | I guess you could also count them. |
2023-10-08 09:36:57 +0200 | <int-e> | There's *no* mechanism to inspect the value's type; that's what I meant when I said that Haskell has no runtime type information. (There's Typeable which *explicitly* adds type information. Not recommended most of the time.) |
2023-10-08 09:37:12 +0200 | <int-e> | dsal: Sure but that's at the level of the list structure |
2023-10-08 09:40:35 +0200 | <dsal> | Yeah, I was just imagining what you'd do if you had such a thing: https://play.haskell.org/saved/iL506sRr |
2023-10-08 09:42:31 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:21c9:e2cd:7450:1f71) |
2023-10-08 09:45:13 +0200 | <ania123> | inte-e: clear. WHat about subtyping? If I want to have a list, where types of each it elements are related somehow to each other (for example with subtyping). |
2023-10-08 09:45:47 +0200 | <ania123> | would not be it interesting? why such a thing is not allowed ? |
2023-10-08 09:48:22 +0200 | econo_ | (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
2023-10-08 09:49:26 +0200 | cpressey | (~cpressey@host-2-102-9-134.as13285.net) |
2023-10-08 09:50:34 +0200 | <int-e> | I believe subtyping would mostly be interesting for some implicit type conversions. (You still wouldn't have inhomogeneous lists because you still wouldn't have runtime type information; but you could have the ability to put both integers and rationals into the same list of rationals; the integers would be converted as they're added) |
2023-10-08 09:50:37 +0200 | <nullie> | ania123: what is the actual problem you are trying to solve? |
2023-10-08 09:50:40 +0200 | <haskellbridge> | <Celestial> heya, which formatters do people use and which would you reccomend? |
2023-10-08 09:51:06 +0200 | <int-e> | But subtypes make type inference much harder (does it become undecidable? do we lose principal types? I don't really know.) |
2023-10-08 09:51:54 +0200 | Jackneill | (~Jackneill@20014C4E1E1DF200F8969E0EBEAF265A.dsl.pool.telekom.hu) |
2023-10-08 09:52:06 +0200 | <int-e> | (well, *inference* being undecidable has not stopped people from adding higher ranked types anyway) |
2023-10-08 09:53:53 +0200 | <[exa]> | "undecidable" has many levels and the one you get with subtypes is pretty harsh (cf. the situation with Julia, and they even don't have the implicit type conversions) |
2023-10-08 10:04:40 +0200 | <ania123> | aha |
2023-10-08 10:06:53 +0200 | <ania123> | I heard, that F has more flexible type system than haskell. Does anyone has experience with F? |
2023-10-08 10:07:15 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 252 seconds) |
2023-10-08 10:07:46 +0200 | <mauke> | .oO( F natural? ) |
2023-10-08 10:14:48 +0200 | justHaunting | (~justache@user/justache) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-10-08 10:15:10 +0200 | justache | (~justache@user/justache) |
2023-10-08 10:18:35 +0200 | sm | (~sm@plaintextaccounting/sm) (Remote host closed the connection) |
2023-10-08 10:21:03 +0200 | shryke | (~shryke@2a00:4b00:13c:cc:b27b:25ff:fe18:efd) (Ping timeout: 240 seconds) |
2023-10-08 10:21:44 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-10-08 10:23:05 +0200 | shryke | (~shryke@2a00:4b00:13c:cc:b27b:25ff:fe18:efd) |
2023-10-08 10:32:57 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-10-08 10:34:06 +0200 | privacy | (~privacy@user/privacy) (Quit: Leaving) |
2023-10-08 10:37:35 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
2023-10-08 10:42:28 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) |
2023-10-08 10:46:35 +0200 | elkcl | (~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru) (Ping timeout: 255 seconds) |
2023-10-08 10:51:26 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
2023-10-08 10:52:41 +0200 | elkcl | (~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru) |
2023-10-08 11:03:14 +0200 | anpad | (~pandeyan@user/anpad) (Ping timeout: 255 seconds) |
2023-10-08 11:04:29 +0200 | anpad | (~pandeyan@user/anpad) |
2023-10-08 11:07:14 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-10-08 11:12:35 +0200 | tzh | (~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz) |
2023-10-08 11:32:09 +0200 | michalz | (~michalz@185.246.204.104) |
2023-10-08 11:39:29 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2023-10-08 11:39:38 +0200 | sm | (~sm@plaintextaccounting/sm) (Quit: sm) |
2023-10-08 11:46:59 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
2023-10-08 11:57:01 +0200 | xdej | (~xdej@quatramaran.salle-s.org) |
2023-10-08 12:10:17 +0200 | ru0mad | (~ru0mad@moon.ruomad.net) |
2023-10-08 12:24:06 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-10-08 12:25:07 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
2023-10-08 12:25:51 +0200 | todi | (~todi@p4fd1ae09.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2023-10-08 12:35:24 +0200 | aliosablack | (~chomwitt@2a02:587:7a24:b000:1ac0:4dff:fedb:a3f1) |
2023-10-08 12:42:35 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-10-08 12:44:46 +0200 | sm | (~sm@plaintextaccounting/sm) (Remote host closed the connection) |
2023-10-08 12:45:29 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-10-08 12:45:47 +0200 | cpressey | (~cpressey@host-2-102-9-134.as13285.net) (Quit: Client closed) |
2023-10-08 12:49:15 +0200 | sm_ | (~sm@plaintextaccounting/sm) |
2023-10-08 12:50:07 +0200 | sm | (~sm@plaintextaccounting/sm) (Ping timeout: 255 seconds) |
2023-10-08 12:56:35 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
2023-10-08 13:01:26 +0200 | mrmr15 | (~mrmr@user/mrmr) (Quit: Bye, See ya later!) |
2023-10-08 13:04:39 +0200 | pounce | (~pounce@user/cute/pounce) (Ping timeout: 240 seconds) |
2023-10-08 13:05:30 +0200 | pounce | (~pounce@user/cute/pounce) |
2023-10-08 13:07:26 +0200 | mrmr155 | (~mrmr@user/mrmr) |
2023-10-08 13:24:57 +0200 | gensyst | (~gensyst@user/gensyst) |
2023-10-08 13:25:09 +0200 | <gensyst> | Philosophical question, |
2023-10-08 13:25:57 +0200 | <gensyst> | A "with someResource" API seems to be implicitly assuming that it won't return someResource itself, or in fact anything that itself interacts with the resource. |
2023-10-08 13:26:16 +0200 | <gensyst> | But this isn't enforced at the type level. Would it even be possible to limit it in such a way, at the type level? |
2023-10-08 13:27:58 +0200 | sm_ | (~sm@plaintextaccounting/sm) (Quit: sm_) |
2023-10-08 13:30:01 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-10-08 13:32:11 +0200 | <ncf> | what's "it"? |
2023-10-08 13:32:29 +0200 | <[Leary]> | gensyst: Yes, with RankNTypes. You could have something like `with :: Handle a -> (forall s. Resource s a -> ResourceT s m b) -> m b`, but you'd have to be careful designing the rest of the interface to `Resource` and `ResourceT`, or there could be escape hatches. |
2023-10-08 13:35:49 +0200 | <gensyst> | interesting lol |
2023-10-08 13:38:05 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds) |
2023-10-08 13:39:09 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-10-08 13:43:55 +0200 | <gensyst> | [Leary], but what I meant more is... How do you even prevent that thing (the stuff in with) from returning another thing that interacts with the input FileHandle? |
2023-10-08 13:44:32 +0200 | ania123 | (~ania123@wl-pool2-ont-004.uni-muenster.de) (Quit: Client closed) |
2023-10-08 13:49:43 +0200 | justache | (~justache@user/justache) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-10-08 13:50:06 +0200 | justache | (~justache@user/justache) |
2023-10-08 13:52:03 +0200 | <int-e> | gensyst: by making sure that you can only interact with it inside `ResourceT s m _`. You /can/ return actions of that type but you can only execute them within `with`. |
2023-10-08 13:52:30 +0200 | <int-e> | (This won't work for a plain FileHandle; you'll have to wrap it in another type that's tagged with `s`) |
2023-10-08 13:53:03 +0200 | <int-e> | :t runST |
2023-10-08 13:53:04 +0200 | <lambdabot> | (forall s. ST s a) -> a |
2023-10-08 13:53:20 +0200 | <int-e> | :t newSTVar |
2023-10-08 13:53:21 +0200 | <lambdabot> | error: Variable not in scope: newSTVar |
2023-10-08 13:54:23 +0200 | <int-e> | :t newSTRef |
2023-10-08 13:54:24 +0200 | <lambdabot> | a -> ST s (STRef s a) |
2023-10-08 13:54:54 +0200 | <int-e> | (slightly different situation; it's not a `with` interface because there's no need for timely cleanup) |
2023-10-08 13:55:24 +0200 | <int-e> | (But ST is using the same RankNTypes concept.) |
2023-10-08 13:56:50 +0200 | zer0bitz_ | zer0bitz |
2023-10-08 14:05:04 +0200 | <[Leary]> | gensyst: The key is the inner `forall s` and the fact that every relevant piece of data is contaminated by it. None of the other type variables can be instantiated at a type containing `s`, so something like `with h \r -> pure r` is a type error, as would be `with h \r -> pure (access r)` given `access :: Resource s a -> ResourceT s m a`. |
2023-10-08 14:05:51 +0200 | <tomsmeding> | because then the 's' "leaks" to outside the forall, which is not allowed |
2023-10-08 14:05:58 +0200 | CiaoSen | (~Jura@2a05:5800:29f:e400:664b:f0ff:fe37:9ef) |
2023-10-08 14:06:27 +0200 | <tomsmeding> | see section 4 of https://www.microsoft.com/en-us/research/wp-content/uploads/1994/06/lazy-functional-state-threads.… :p |
2023-10-08 14:06:32 +0200 | <tomsmeding> | er, section 2.4 |
2023-10-08 14:10:02 +0200 | sm | (~sm@plaintextaccounting/sm) (Quit: sm) |
2023-10-08 14:10:10 +0200 | TomawsCock | (~TomawsCoc@12.172.251.103) |
2023-10-08 14:10:11 +0200 | <TomawsCock> | Courtney Rickett Gets Gangbanged by the Braves - The Shitty Clarinet - Courtney Rickett takes ecstasy suppositories with Edna Skilton and ends up gangbanged by the Atlanta Braves and consensually sodomized by her trusty clarinet. https://justpaste.it/Courtney_Rickett_Gangbanged |
2023-10-08 14:10:26 +0200 | TomawsCock | (~TomawsCoc@12.172.251.103) (K-Lined) |
2023-10-08 14:14:39 +0200 | <tomsmeding> | yay ozone |
2023-10-08 14:18:46 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
2023-10-08 14:25:37 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
2023-10-08 14:34:26 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-10-08 14:36:25 +0200 | fweht | (uid404746@id-404746.lymington.irccloud.com) |
2023-10-08 14:39:28 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
2023-10-08 14:40:29 +0200 | xff0x | (~xff0x@2405:6580:b080:900:54b9:b3f0:7086:8bcc) (Ping timeout: 245 seconds) |
2023-10-08 14:40:36 +0200 | CiaoSen | (~Jura@2a05:5800:29f:e400:664b:f0ff:fe37:9ef) (Ping timeout: 272 seconds) |
2023-10-08 14:40:52 +0200 | xff0x | (~xff0x@178.255.149.135) |
2023-10-08 14:46:04 +0200 | simendsjo | (~user@84.211.91.241) |
2023-10-08 15:00:12 +0200 | <gensyst> | thanks for sharing. will have to look into this as i study more about type-level programming |
2023-10-08 15:00:42 +0200 | gensyst | (~gensyst@user/gensyst) (Quit: Leaving) |
2023-10-08 15:00:51 +0200 | mmhat | (~mmh@p200300f1c74e6f29ee086bfffe095315.dip0.t-ipconnect.de) |
2023-10-08 15:02:15 +0200 | fendor | (~fendor@2a02:8388:1640:be00:aab:1226:f274:5021) (Ping timeout: 240 seconds) |
2023-10-08 15:02:33 +0200 | mmhat | (~mmh@p200300f1c74e6f29ee086bfffe095315.dip0.t-ipconnect.de) (Client Quit) |
2023-10-08 15:07:33 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
2023-10-08 15:09:32 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
2023-10-08 15:22:41 +0200 | todi | (~todi@p4fd1ae09.dip0.t-ipconnect.de) |
2023-10-08 15:24:45 +0200 | todi | (~todi@p4fd1ae09.dip0.t-ipconnect.de) (Remote host closed the connection) |
2023-10-08 15:25:27 +0200 | todi | (~todi@p4fd1ae09.dip0.t-ipconnect.de) |
2023-10-08 15:27:39 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2023-10-08 15:28:06 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2023-10-08 15:34:22 +0200 | xff0x | (~xff0x@178.255.149.135) (Ping timeout: 255 seconds) |
2023-10-08 15:36:07 +0200 | xff0x | (~xff0x@2405:6580:b080:900:e561:e849:ed8d:66e) |
2023-10-08 15:38:13 +0200 | stites | (~stites@130.44.147.204) (Ping timeout: 258 seconds) |
2023-10-08 15:38:46 +0200 | stites | (~stites@2607:fb91:dc9:9458:e307:804f:f7f3:4cb1) |
2023-10-08 15:40:30 +0200 | manjaroi3asdasd | (~manjaro-i@173.244.55.113) |
2023-10-08 15:44:27 +0200 | ania123 | (~ania123@wl-pool2-ont-004.uni-muenster.de) |
2023-10-08 15:59:35 +0200 | todi | (~todi@p4fd1ae09.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2023-10-08 16:00:54 +0200 | manjaroi3asdasd | (~manjaro-i@173.244.55.113) (Ping timeout: 245 seconds) |
2023-10-08 16:01:45 +0200 | son0p | (~ff@181.136.122.143) (Quit: Bye) |
2023-10-08 16:02:42 +0200 | __ht | (~Thunderbi@91.90.123.10) |
2023-10-08 16:03:56 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Ping timeout: 255 seconds) |
2023-10-08 16:03:56 +0200 | __ht | _ht |
2023-10-08 16:15:16 +0200 | vglfr | (~vglfr@88.155.165.25) (Remote host closed the connection) |
2023-10-08 16:16:03 +0200 | vglfr | (~vglfr@88.155.165.25) |
2023-10-08 16:16:13 +0200 | vglfr | (~vglfr@88.155.165.25) (Remote host closed the connection) |
2023-10-08 16:18:28 +0200 | vglfr | (~vglfr@88.155.165.25) |
2023-10-08 16:19:16 +0200 | Functionalley | (~al@82-69-116-36.dsl.in-addr.zen.co.uk) |
2023-10-08 16:19:47 +0200 | vglfr | (~vglfr@88.155.165.25) (Remote host closed the connection) |
2023-10-08 16:20:12 +0200 | vglfr | (~vglfr@88.155.165.25) |
2023-10-08 16:21:50 +0200 | ridcully | (~ridcully@p57b5294c.dip0.t-ipconnect.de) |
2023-10-08 16:21:57 +0200 | cayley58 | (~cayley5@user/phileasfogg) |
2023-10-08 16:22:11 +0200 | driib5 | (~driib@vmi931078.contaboserver.net) |
2023-10-08 16:22:26 +0200 | vglfr | (~vglfr@88.155.165.25) (Read error: Connection reset by peer) |
2023-10-08 16:22:30 +0200 | sympt7 | (~sympt@user/sympt) |
2023-10-08 16:22:46 +0200 | vglfr | (vglfr@gateway/vpn/protonvpn/vglfr) |
2023-10-08 16:22:51 +0200 | h2t_ | (~h2t@user/h2t) |
2023-10-08 16:23:28 +0200 | krei-se- | (~krei-se@p50874770.dip0.t-ipconnect.de) |
2023-10-08 16:23:35 +0200 | ridcully_ | (~ridcully@p57b5294c.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
2023-10-08 16:23:35 +0200 | driib | (~driib@vmi931078.contaboserver.net) (Quit: Ping timeout (120 seconds)) |
2023-10-08 16:23:35 +0200 | cayley5 | (~cayley5@user/phileasfogg) (Quit: Ping timeout (120 seconds)) |
2023-10-08 16:23:35 +0200 | sympt | (~sympt@user/sympt) (Quit: Ping timeout (120 seconds)) |
2023-10-08 16:23:35 +0200 | h2t | (~h2t@user/h2t) (Quit: ZNC - https://znc.in) |
2023-10-08 16:23:36 +0200 | krei-se | (~krei-se@p50874770.dip0.t-ipconnect.de) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-10-08 16:23:36 +0200 | driib5 | driib |
2023-10-08 16:23:36 +0200 | cayley58 | cayley5 |
2023-10-08 16:23:36 +0200 | sympt7 | sympt |
2023-10-08 16:23:44 +0200 | manjaroi3asdasd | (~manjaro-i@173.244.55.113) |
2023-10-08 16:23:57 +0200 | cpressey | (~cpressey@host-2-102-9-134.as13285.net) |
2023-10-08 16:29:01 +0200 | cpressey | (~cpressey@host-2-102-9-134.as13285.net) (Quit: Ping timeout (120 seconds)) |
2023-10-08 16:29:58 +0200 | __ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
2023-10-08 16:31:41 +0200 | Functionalley | (~al@82-69-116-36.dsl.in-addr.zen.co.uk) (Konversation terminated!) |
2023-10-08 16:32:04 +0200 | _ht | (~Thunderbi@91.90.123.10) (Ping timeout: 272 seconds) |
2023-10-08 16:32:04 +0200 | __ht | _ht |
2023-10-08 16:34:40 +0200 | Functionalley | (~al@82-69-116-36.dsl.in-addr.zen.co.uk) |
2023-10-08 16:35:48 +0200 | Functionalley | (~al@82-69-116-36.dsl.in-addr.zen.co.uk) (Client Quit) |
2023-10-08 16:37:13 +0200 | wroathe | (~wroathe@50.205.197.50) |
2023-10-08 16:37:13 +0200 | wroathe | (~wroathe@50.205.197.50) (Changing host) |
2023-10-08 16:37:13 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-10-08 16:38:49 +0200 | manjaroi3asdasd | (~manjaro-i@173.244.55.113) (Ping timeout: 245 seconds) |
2023-10-08 16:41:02 +0200 | son0p | (~ff@181.136.122.143) |
2023-10-08 16:41:05 +0200 | simendsjo | (~user@84.211.91.241) (Ping timeout: 258 seconds) |
2023-10-08 16:41:19 +0200 | sabino | (~sabino@user/sabino) |
2023-10-08 16:46:00 +0200 | fweht | (uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2023-10-08 16:47:29 +0200 | vglfr | (vglfr@gateway/vpn/protonvpn/vglfr) (Ping timeout: 255 seconds) |
2023-10-08 16:48:03 +0200 | vglfr | (~vglfr@88.155.165.25) |
2023-10-08 17:01:43 +0200 | privacy | (~privacy@user/privacy) |
2023-10-08 17:03:20 +0200 | Functionalley | (~al@82-69-116-36.dsl.in-addr.zen.co.uk) |
2023-10-08 17:04:12 +0200 | manjaroi3asdasd | (~manjaro-i@173.244.55.113) |
2023-10-08 17:05:25 +0200 | manjaroi3asdasd | (~manjaro-i@173.244.55.113) (Client Quit) |
2023-10-08 17:09:15 +0200 | Square | (~Square@user/square) |
2023-10-08 17:10:45 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-10-08 17:11:13 +0200 | Functionalley | (~al@82-69-116-36.dsl.in-addr.zen.co.uk) (Konversation terminated!) |
2023-10-08 17:14:12 +0200 | RSCASTILHO | (~RSCASTILH@187.40.126.47) |
2023-10-08 17:15:47 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2023-10-08 17:15:49 +0200 | stites | (~stites@2607:fb91:dc9:9458:e307:804f:f7f3:4cb1) (Read error: Connection reset by peer) |
2023-10-08 17:16:10 +0200 | stites | (~stites@130.44.147.204) |
2023-10-08 17:16:48 +0200 | berberman | (~berberman@user/berberman) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-10-08 17:17:43 +0200 | berberman | (~berberman@user/berberman) |
2023-10-08 17:17:59 +0200 | mud | (~mud@user/kadoban) |
2023-10-08 17:21:03 +0200 | michalz | (~michalz@185.246.204.104) (Ping timeout: 240 seconds) |
2023-10-08 17:22:59 +0200 | CiaoSen | (~Jura@2a05:5800:29f:e400:664b:f0ff:fe37:9ef) |
2023-10-08 17:23:32 +0200 | khumba | (~khumba@user/khumba) |
2023-10-08 17:24:37 +0200 | michalz | (~michalz@185.246.207.221) |
2023-10-08 17:27:33 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-10-08 17:27:59 +0200 | vglfr | (~vglfr@88.155.165.25) (Read error: Connection reset by peer) |
2023-10-08 17:28:21 +0200 | vglfr | (vglfr@gateway/vpn/protonvpn/vglfr) |
2023-10-08 17:29:25 +0200 | init | (21945@user/init) (WeeChat 4.0.5) |
2023-10-08 17:30:39 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2023-10-08 17:33:54 +0200 | epolanski | (uid312403@id-312403.helmsley.irccloud.com) |
2023-10-08 17:34:46 +0200 | CiaoSen | (~Jura@2a05:5800:29f:e400:664b:f0ff:fe37:9ef) (Ping timeout: 272 seconds) |
2023-10-08 17:41:27 +0200 | Vajb | (~Vajb@2001:999:400:fb4a:5fa:e213:c009:c212) |
2023-10-08 17:41:59 +0200 | fendor | (~fendor@2a02:8388:1640:be00:aab:1226:f274:5021) |
2023-10-08 17:44:09 +0200 | wroathe | (~wroathe@50.205.197.50) |
2023-10-08 17:44:09 +0200 | wroathe | (~wroathe@50.205.197.50) (Changing host) |
2023-10-08 17:44:09 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-10-08 17:49:27 +0200 | vglfr | (vglfr@gateway/vpn/protonvpn/vglfr) (Ping timeout: 240 seconds) |
2023-10-08 17:50:09 +0200 | vglfr | (~vglfr@88.155.165.25) |
2023-10-08 17:58:19 +0200 | raym | (~ray@user/raym) |
2023-10-08 17:59:13 +0200 | son0p | (~ff@181.136.122.143) (Remote host closed the connection) |
2023-10-08 18:00:55 +0200 | Simikando | (~Simikando@adsl-dyn230.91-127-81.t-com.sk) |
2023-10-08 18:01:50 +0200 | son0p | (~ff@181.136.122.143) |
2023-10-08 18:05:26 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 255 seconds) |
2023-10-08 18:07:05 +0200 | pavonia_ | (~user@user/siracusa) |
2023-10-08 18:10:58 +0200 | pavonia | (~user@user/siracusa) (Ping timeout: 255 seconds) |
2023-10-08 18:11:00 +0200 | pavonia_ | pavonia |
2023-10-08 18:12:51 +0200 | econo_ | (uid147250@id-147250.tinside.irccloud.com) |
2023-10-08 18:14:36 +0200 | wroathe | (~wroathe@50.205.197.50) |
2023-10-08 18:14:36 +0200 | wroathe | (~wroathe@50.205.197.50) (Changing host) |
2023-10-08 18:14:36 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-10-08 18:17:28 +0200 | fendor | (~fendor@2a02:8388:1640:be00:aab:1226:f274:5021) (Remote host closed the connection) |
2023-10-08 18:25:13 +0200 | tzh | (~tzh@c-71-193-181-0.hsd1.or.comcast.net) |
2023-10-08 18:27:09 +0200 | <haskellbridge> | <Inst> maralorn: could you help delete the haskellbridge message from the obscenity spammer? |
2023-10-08 18:28:02 +0200 | fweht | (uid404746@id-404746.lymington.irccloud.com) |
2023-10-08 18:28:04 +0200 | <haskellbridge> | <Inst> Thanks |
2023-10-08 18:28:28 +0200 | <haskellbridge> | <geekosaur> btw @mods is a thing |
2023-10-08 18:29:11 +0200 | Simikando | (~Simikando@adsl-dyn230.91-127-81.t-com.sk) (Ping timeout: 260 seconds) |
2023-10-08 18:29:20 +0200 | <haskellbridge> | <geekosaur> (@shapr you should set a highlight on that) |
2023-10-08 18:29:22 +0200 | <haskellbridge> | <Inst> also iirc, weren't you on vacation? |
2023-10-08 18:29:28 +0200 | <haskellbridge> | <geekosaur> no? |
2023-10-08 18:29:45 +0200 | <haskellbridge> | <Inst> iirc you lost access to your matrix account or something like that |
2023-10-08 18:30:01 +0200 | <haskellbridge> | <geekosaur> ?? |
2023-10-08 18:31:12 +0200 | <haskellbridge> | <Inst> i mean a while back, you granted SM admin rights to matrix channel |
2023-10-08 18:31:37 +0200 | <haskellbridge> | <Inst> but tbh, this is an unnecessary discussion, no? |
2023-10-08 18:31:53 +0200 | <haskellbridge> | <geekosaur> oh, I probably said at the time that I didn't like being the only admin because I can't promis that I won't disappear |
2023-10-08 18:32:16 +0200 | <haskellbridge> | <Inst> ah okay, sorry to hear it's so |
2023-10-08 18:34:14 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2023-10-08 18:35:32 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:21c9:e2cd:7450:1f71) (Remote host closed the connection) |
2023-10-08 18:35:47 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:21c9:e2cd:7450:1f71) |
2023-10-08 18:36:25 +0200 | Simikando | (~Simikando@adsl-dyn230.91-127-81.t-com.sk) |
2023-10-08 18:38:28 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
2023-10-08 18:47:02 +0200 | <tomsmeding> | Inst: noone can promise that they won't disappear |
2023-10-08 18:47:29 +0200 | <tomsmeding> | who knows, maybe you're suddenly employed by a bank :p |
2023-10-08 18:59:49 +0200 | cpressey | (~cpressey@host-2-102-9-134.as13285.net) |
2023-10-08 19:00:54 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 272 seconds) |
2023-10-08 19:01:42 +0200 | vglfr | (~vglfr@88.155.165.25) (Read error: Connection reset by peer) |
2023-10-08 19:02:37 +0200 | vglfr | (~vglfr@88.155.165.25) |
2023-10-08 19:03:56 +0200 | <haskellbridge> | <Inst> i do want to ask one thing, though, ummm, sm suggested that i ask here or in haskell matrix, and i feel like this room is slightly more active |
2023-10-08 19:04:24 +0200 | <geekosaur> | it varies |
2023-10-08 19:04:29 +0200 | <haskellbridge> | <Inst> i was complaining a long time ago that Haskell had difficulty beating Py when it came to IO code, but I realized |
2023-10-08 19:04:30 +0200 | AlexNoo_ | (~AlexNoo@178.34.163.10) |
2023-10-08 19:04:31 +0200 | Simikando | (~Simikando@adsl-dyn230.91-127-81.t-com.sk) (Ping timeout: 255 seconds) |
2023-10-08 19:04:52 +0200 | <haskellbridge> | <Inst> basically, if you make annoying point-free IO code in Haskell |
2023-10-08 19:05:05 +0200 | <haskellbridge> | <Inst> you're competitive with idiomatic Python |
2023-10-08 19:05:32 +0200 | <haskellbridge> | <Inst> if python goes to mimic the same thing, you know, with pipelines, python still wins |
2023-10-08 19:05:51 +0200 | <yushyin> | beating in what? |
2023-10-08 19:05:51 +0200 | <haskellbridge> | <Inst> but i feel like it's smelly in py |
2023-10-08 19:05:53 +0200 | <yushyin> | LOC? |
2023-10-08 19:05:56 +0200 | <yushyin> | who cares :D |
2023-10-08 19:05:58 +0200 | cpressey | (~cpressey@host-2-102-9-134.as13285.net) (Ping timeout: 245 seconds) |
2023-10-08 19:06:30 +0200 | <haskellbridge> | <Inst> concision, i guess, and i guess that's not a focus anymore |
2023-10-08 19:06:46 +0200 | Alex_test | (~al_test@94.233.241.182) (Ping timeout: 255 seconds) |
2023-10-08 19:07:01 +0200 | <haskellbridge> | <Inst> but the interesting thing is that the reason Haskell is less concise here is because Haskell has a notion of effect, and requires monadic operators or applicative functions to sequence them together |
2023-10-08 19:07:03 +0200 | <geekosaur> | I prefer comprehensibility to code golf, personally |
2023-10-08 19:07:05 +0200 | AlexZenon | (~alzenon@94.233.241.182) (Ping timeout: 255 seconds) |
2023-10-08 19:07:17 +0200 | ania123 | (~ania123@wl-pool2-ont-004.uni-muenster.de) (Quit: Client closed) |
2023-10-08 19:07:37 +0200 | <remexre> | I'm being glib, but IME you just put M's on the ends of all your functions once you need IO and the code barely changes :p |
2023-10-08 19:08:07 +0200 | AlexNoo | (~AlexNoo@94.233.241.182) (Ping timeout: 255 seconds) |
2023-10-08 19:08:15 +0200 | AlexNoo_ | AlexNoo |
2023-10-08 19:08:29 +0200 | <geekosaur> | or you use lens and it doesn't change at all 😛 |
2023-10-08 19:08:46 +0200 | <haskellbridge> | <Inst> the hypothesis i have is that the Haskell code-golfed / point free IO stuff is idiomatic and readable, but the python equivalent is not |
2023-10-08 19:08:47 +0200 | <geekosaur> | (speaking of "idiomatic" short code) |
2023-10-08 19:08:54 +0200 | <haskellbridge> | <Inst> i'm trying to dig up an example |
2023-10-08 19:09:13 +0200 | <haskellbridge> | <Inst> well, simplest would be echo program: |
2023-10-08 19:09:19 +0200 | <haskellbridge> | <Inst> main = getLine >>= putStrln |
2023-10-08 19:09:42 +0200 | <haskellbridge> | <Inst> vs def main(): print(input()) |
2023-10-08 19:10:06 +0200 | <haskellbridge> | <Inst> py version is technically more concise, but it's smelly, whereas the Haskell version isn't, at least, I guess this is subjective? |
2023-10-08 19:10:36 +0200 | <geekosaur> | it's not smelly but imo it's more "advanced mode" |
2023-10-08 19:11:24 +0200 | Alex_test | (~al_test@178.34.163.10) |
2023-10-08 19:11:26 +0200 | <haskellbridge> | <Inst> in the sense that this kind of code alienates people with less experience? but the idea i have is that the monadic / applicative accounting, the tracking of effects and the forced use of operators, makes this acceptably readable |
2023-10-08 19:11:35 +0200 | <geekosaur> | also the Haskell one would be one character shorter (ignoring spaces) if `getLine`'s length matched `input` and similarly for `putStrLn` |
2023-10-08 19:12:15 +0200 | <geekosaur> | I think a lot of beginners shy away from `>>=` in favor of do notation |
2023-10-08 19:12:39 +0200 | <geekosaur> | which is arguably bad because `do` hides what's really going on and you'll make mistakes if you don't understand that |
2023-10-08 19:13:09 +0200 | <geekosaur> | I have certainly seen beginner code which assumed that `do` was a quick escape into what they think of as "normal" code |
2023-10-08 19:15:04 +0200 | <haskellbridge> | <Inst> and people go through a do notation is bad stage as well |
2023-10-08 19:15:25 +0200 | AlexZenon | (~alzenon@178.34.163.10) |
2023-10-08 19:16:51 +0200 | Simikando | (~Simikando@adsl-dyn230.91-127-81.t-com.sk) |
2023-10-08 19:17:35 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-10-08 19:19:39 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2023-10-08 19:20:43 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 255 seconds) |
2023-10-08 19:31:55 +0200 | billchenchina | (~billchenc@103.152.35.21) |
2023-10-08 19:32:30 +0200 | notzmv | (~zmv@user/notzmv) |
2023-10-08 19:33:08 +0200 | Simikando | (~Simikando@adsl-dyn230.91-127-81.t-com.sk) (Remote host closed the connection) |
2023-10-08 19:33:53 +0200 | Simikando | (~Simikando@adsl-dyn230.91-127-81.t-com.sk) |
2023-10-08 19:34:15 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-10-08 19:34:56 +0200 | falafel | (~falafel@62.175.113.194.dyn.user.ono.com) |
2023-10-08 19:39:59 +0200 | <monochrom> | Haskell is necessarily more advanced or alienating at the ground level already because "putStrLn(getLine)" doesn't work (but "arccos(sin x)" still does) so you have to hear about either do or >>= unlike mainstream languages. |
2023-10-08 19:40:54 +0200 | <monochrom> | The branch point is then do you want to teach deeper understanding or do you want to teach cargo-culting. |
2023-10-08 19:41:14 +0200 | <geekosaur> | and millennials only want cargo-culting |
2023-10-08 19:41:26 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds) |
2023-10-08 19:41:35 +0200 | <geekosaur> | (evidently, from all the errors in my browser js console) |
2023-10-08 19:42:30 +0200 | <dolio> | I think it goes back further than that. |
2023-10-08 19:43:03 +0200 | BANNEDue-x | (~Syzopoe_n@46.34.42.238) |
2023-10-08 19:43:26 +0200 | BANNEDue-x | (~Syzopoe_n@46.34.42.238) (https://ircnow.org FREE SHELLS AND BOUNCERS) |
2023-10-08 19:43:41 +0200 | <monochrom> | There is actually a famous Haskeller who wrote a blog advocating letting beginners freely use do-notation and IORef and generally just write C-style or Python-style in Haskell, reason being "you get them on board". |
2023-10-08 19:44:10 +0200 | <monochrom> | IMO that's just teaching cargo-culting but my opinion is known to be unpopular and reactionary. |
2023-10-08 19:47:49 +0200 | <monochrom> | do-notation is very cargo-cultable and my students certainly aced it. But they were interested in understanding, so afterwards they actually recommended abolishing it and sticking to >>= instead. |
2023-10-08 19:50:12 +0200 | ania123 | (~ania123@wl-pool2-ont-004.uni-muenster.de) |
2023-10-08 19:50:28 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-10-08 19:51:16 +0200 | <monochrom> | I do not morally oppose making money fast; by extension, therefore I should not morally oppose cargo-culting either, as people do it just for making money fast. If one learns Haskell for that purpose, there is nothing wrong with that way. |
2023-10-08 19:51:53 +0200 | <monochrom> | But generally when you debate what to teach, it reduces all the way back to why you teach it, what you're optimizing for, seriously. |
2023-10-08 19:53:26 +0200 | <monochrom> | And different people can actually want to teach the "same" thing but for opposite reasons. Therefore how to teach it is also going to be opposite. |
2023-10-08 19:54:26 +0200 | <monochrom> | Next, be very careful what kind of people you are attracting to the community. |
2023-10-08 19:54:46 +0200 | <dolio> | Yeah, that's the part I personally don't get. |
2023-10-08 19:55:15 +0200 | <monochrom> | Do not be so naïve as to think that by attracting people you are changing them. |
2023-10-08 19:55:30 +0200 | <monochrom> | NO. After they join, they change the community instead. |
2023-10-08 19:55:52 +0200 | <dolio> | I like Haskell because it does a bunch of things differently. I don't understand why people would want to use Haskell and just do what everything else does. And attracting people who want Haskell to be just like everything else is a negative. |
2023-10-08 19:56:04 +0200 | <monochrom> | You attract OOP people, you will convert Haskell to OOP, not the other way round. Just look at the popularity of RecordDotSyntax. |
2023-10-08 19:56:54 +0200 | <monochrom> | There is legit another Haskeller who blogged "now that we have RecordDotSyntax, Haskell is actually a real-world language". Guess where they came from. |
2023-10-08 20:01:49 +0200 | <dolio> | Can't use a language in the real world unless it follows arbitrary syntactic conventions. |
2023-10-08 20:02:47 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2023-10-08 20:03:33 +0200 | cpressey | (~cpressey@host-2-102-9-134.as13285.net) |
2023-10-08 20:03:34 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-10-08 20:06:24 +0200 | <dolio> | This is also the kind of statement where I don't understand complaints about various Haskell users being 'elitist.' That kind of statement is a very 'mainstream' sort of argument of why Haskell isn't usable for most people. But it is predicated on the idea that most people are incapable of learning minor variations on syntax they know. |
2023-10-08 20:08:06 +0200 | <monochrom> | Perhaps if we s/Haskell/engineering/ there may be a possible insight. Why do people want to be called "engineers" but continue to do things in non-engineering ways? (I'm looking at you, software "engineers".) |
2023-10-08 20:08:29 +0200 | <monochrom> | Because the "engineer" title is prestigious, and yet people want it without paying the cost. |
2023-10-08 20:08:46 +0200 | <geekosaur> | s/yet/therefore |
2023-10-08 20:08:56 +0200 | <monochrom> | heh :( |
2023-10-08 20:09:28 +0200 | privacy | (~privacy@user/privacy) (Remote host closed the connection) |
2023-10-08 20:11:54 +0200 | <EvanR> | recently was told semi 2nd hand that haskell is considered bad because it's not approachable |
2023-10-08 20:12:17 +0200 | <geekosaur> | quick gotta turn it into js! |
2023-10-08 20:12:47 +0200 | billchenchina- | (~billchenc@103.152.35.21) |
2023-10-08 20:13:24 +0200 | <EvanR> | I guess that could mean "not C syntax" but my knee jerk interpretation was the sheer amount of webpages about it that have a good CSS theme |
2023-10-08 20:13:29 +0200 | epolanski | (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2023-10-08 20:13:32 +0200 | billchenchina | (~billchenc@103.152.35.21) (Read error: Connection reset by peer) |
2023-10-08 20:13:47 +0200 | <EvanR> | relative to popular languages |
2023-10-08 20:13:53 +0200 | <EvanR> | other than C |
2023-10-08 20:14:23 +0200 | mud | (~mud@user/kadoban) (Quit: quit) |
2023-10-08 20:14:45 +0200 | <EvanR> | what is this, HTML 4.01 https://www.haskell.org/onlinereport/haskell2010/ |
2023-10-08 20:15:05 +0200 | <EvanR> | a gentle introduction |
2023-10-08 20:15:16 +0200 | <monochrom> | Yeah I deliberately keep my web pages free of eye candies because I want to attract people who care more about content and semantics than eye candies. |
2023-10-08 20:15:34 +0200 | <EvanR> | get down from your ivory-themed tower! |
2023-10-08 20:15:58 +0200 | billchenchina | (~billchenc@2a0c:b641:7a2:320:ee3e:47ca:6070:d71a) |
2023-10-08 20:16:12 +0200 | <monochrom> | I don't make them ugly. I keep them tidy, organized, structured, navigatable. But not going to add round corners. |
2023-10-08 20:16:34 +0200 | <geekosaur> | although tbh I find the Report difficult to use; I am always trying to link to things and need to resort to building links from the page source |
2023-10-08 20:17:11 +0200 | <geekosaur> | there's more than just eye candy in RTD and friends |
2023-10-08 20:18:00 +0200 | billchenchina- | (~billchenc@103.152.35.21) (Ping timeout: 255 seconds) |
2023-10-08 20:18:45 +0200 | Simikando | (~Simikando@adsl-dyn230.91-127-81.t-com.sk) (Remote host closed the connection) |
2023-10-08 20:19:10 +0200 | <haskellbridge> | <Inst> monochrom: OCaml apparently had a ReasonML disaster where they tried OCaml in JS syntax, then had a huge fight |
2023-10-08 20:19:21 +0200 | <haskellbridge> | <Inst> between the OCaml-style programmers and JS-style programmers, and ReasonML split |
2023-10-08 20:19:39 +0200 | <haskellbridge> | <Inst> Relative to your point about "attracting people, you are changing them" |
2023-10-08 20:20:19 +0200 | <ph88> | can anyone tell me why the contents link top right doesn't work for this package? https://hackage.haskell.org/package/qm-0.1.0.0/candidate/docs/Qm.html i found it over google |
2023-10-08 20:20:20 +0200 | <EvanR> | if there is an OCaml with JS syntax, then that means there's an OCaml in coffeescript |
2023-10-08 20:21:27 +0200 | <geekosaur> | ph88, because there is only a candidate, it was never actually released |
2023-10-08 20:22:31 +0200 | <ph88> | got it |
2023-10-08 20:22:43 +0200 | <geekosaur> | arguably the "Contents" link in a candidate should point to the candidate, which is something you might file against hackage-server |
2023-10-08 20:24:05 +0200 | <geekosaur> | also one could argue that the whole handling of that case is confusing, the landing page should say there is no package but there are candidates |
2023-10-08 20:24:10 +0200 | <geekosaur> | but I have to run |
2023-10-08 20:29:46 +0200 | simendsjo | (~user@84.211.91.241) |
2023-10-08 20:32:16 +0200 | <haskellbridge> | <Inst> Also, I used to be in favor of that, but when I think about it, if you cut out what makes Haskell special, it diminishes Haskell's appeal, and people lose interest |
2023-10-08 20:33:52 +0200 | bilegeek | (~bilegeek@2600:1008:b058:7972:86bd:56d8:83ef:566f) |
2023-10-08 20:38:22 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 258 seconds) |
2023-10-08 20:40:58 +0200 | billchenchina | (~billchenc@2a0c:b641:7a2:320:ee3e:47ca:6070:d71a) (Ping timeout: 272 seconds) |
2023-10-08 20:43:28 +0200 | qqq | (~qqq@92.43.167.61) |
2023-10-08 20:51:39 +0200 | oo_miguel | (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Read error: Connection reset by peer) |
2023-10-08 20:57:08 +0200 | <haskellbridge> | <Inst> https://media.discordapp.net/attachments/968989726633779215/1160651979043909783/image.png?ex=65357… |
2023-10-08 20:57:10 +0200 | <haskellbridge> | <Inst> there we go |
2023-10-08 20:57:28 +0200 | <haskellbridge> | <Inst> EvanR: that's probably the details you were looking for |
2023-10-08 20:58:04 +0200 | <EvanR> | re: that I was looking for details, lets not get carried away |
2023-10-08 20:59:15 +0200 | sm | (~sm@plaintextaccounting/sm) (Quit: sm) |
2023-10-08 21:00:11 +0200 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) |
2023-10-08 21:01:10 +0200 | ania123 | (~ania123@wl-pool2-ont-004.uni-muenster.de) (Quit: Client closed) |
2023-10-08 21:01:39 +0200 | wroathe | (~wroathe@50.205.197.50) |
2023-10-08 21:01:40 +0200 | wroathe | (~wroathe@50.205.197.50) (Changing host) |
2023-10-08 21:01:40 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-10-08 21:02:32 +0200 | <haskellbridge> | <Inst> I misunderstood you, then. |
2023-10-08 21:02:55 +0200 | <EvanR> | unless you have an example of coffeescript-ocaml |
2023-10-08 21:03:51 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-10-08 21:03:56 +0200 | <tomsmeding> | ouch |
2023-10-08 21:04:37 +0200 | sm | (~sm@plaintextaccounting/sm) (Client Quit) |
2023-10-08 21:08:26 +0200 | <EvanR> | I just ran into a funny message in ghci |
2023-10-08 21:08:43 +0200 | <EvanR> | > let m | 5 < 4 = 'A' in m |
2023-10-08 21:08:45 +0200 | <lambdabot> | *Exception: <interactive>:3:5-19: Non-exhaustive patterns in function m |
2023-10-08 21:09:00 +0200 | <tomsmeding> | I mean, it's true |
2023-10-08 21:09:08 +0200 | <EvanR> | is it true that m is a function |
2023-10-08 21:09:21 +0200 | <tomsmeding> | it's a partial function |
2023-10-08 21:09:27 +0200 | <[exa]> | Inst: is there a link to that pls? (I can't see pics here :( ) |
2023-10-08 21:09:27 +0200 | <EvanR> | :thonk: |
2023-10-08 21:09:27 +0200 | <tomsmeding> | oh in that sense |
2023-10-08 21:09:34 +0200 | <tomsmeding> | yes, it's a function of zero arguments |
2023-10-08 21:09:38 +0200 | <EvanR> | lol |
2023-10-08 21:09:50 +0200 | Inst | (~Inst@120.244.192.250) |
2023-10-08 21:09:52 +0200 | <EvanR> | this is haskell, everything's a function |
2023-10-08 21:09:56 +0200 | <tomsmeding> | :t mempty |
2023-10-08 21:09:56 +0200 | <Inst> | https://media.discordapp.net/attachments/968989726633779215/1160651979043909783/image.png?ex=65357… |
2023-10-08 21:09:57 +0200 | <lambdabot> | Monoid a => a |
2023-10-08 21:10:05 +0200 | <tomsmeding> | EvanR: is that function |
2023-10-08 21:10:05 +0200 | <EvanR> | that's more plausibly a function |
2023-10-08 21:10:09 +0200 | <[exa]> | Inst: I mean to the text :D |
2023-10-08 21:10:23 +0200 | <tomsmeding> | :t undefined |
2023-10-08 21:10:23 +0200 | <haskellbridge> | <Inst> i'll pastebin it |
2023-10-08 21:10:24 +0200 | <lambdabot> | a |
2023-10-08 21:10:27 +0200 | <tomsmeding> | EvanR: is that a function :p |
2023-10-08 21:10:34 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer) |
2023-10-08 21:10:35 +0200 | <EvanR> | :t let m | 5 < 4 = 'A' in m |
2023-10-08 21:10:36 +0200 | <lambdabot> | Char |
2023-10-08 21:10:44 +0200 | <monochrom> | No, m is not a function. m is if 5<4 then 'A' else error "inexhaustive" |
2023-10-08 21:10:59 +0200 | <tomsmeding> | it's a _haskell_ function though |
2023-10-08 21:11:05 +0200 | <EvanR> | wat |
2023-10-08 21:11:09 +0200 | <monochrom> | Intead, generally all bindings and pattern matchings may use guard syntax. |
2023-10-08 21:11:31 +0200 | <monochrom> | i.e., you don't need a function to use guards. |
2023-10-08 21:11:32 +0200 | <probie> | It's not a function, it's a lifted value |
2023-10-08 21:11:34 +0200 | <haskellbridge> | <Inst> tbh, there's an obvious context |
2023-10-08 21:11:36 +0200 | <tomsmeding> | EvanR: monochrom means that it's not a mathematical function because it's partial -- I assume, otherwise monochrom, you're being unclear :p |
2023-10-08 21:11:46 +0200 | <EvanR> | it's not a function in any sense |
2023-10-08 21:11:49 +0200 | <haskellbridge> | <Inst> i.e, if it's in a closure |
2023-10-08 21:11:56 +0200 | <[exa]> | it thunks like a function |
2023-10-08 21:11:56 +0200 | <EvanR> | I'm not even on the fence just joshing you |
2023-10-08 21:11:59 +0200 | <monochrom> | Um the type is Char. That is not a function type. |
2023-10-08 21:12:15 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-10-08 21:12:35 +0200 | <monochrom> | I am not going to confirm or deny "partial". I have already wrote ` if 5<4 then 'A' else error "inexhaustive" `. Everyone knows what that is. |
2023-10-08 21:12:45 +0200 | <nshepper1> | everything's a function except the things that aren't |
2023-10-08 21:13:05 +0200 | <Inst> | https://pastebin.com/vhKxXEXA @[exa] |
2023-10-08 21:13:10 +0200 | <[exa]> | Inst: <3 |
2023-10-08 21:13:58 +0200 | <[exa]> | Inst: a cautionary tale about how much we need unix-ish modularized compilers |
2023-10-08 21:14:21 +0200 | <monochrom> | I don't oppose extending "partial" to cover all values and types though. |
2023-10-08 21:14:57 +0200 | <EvanR> | the value isn't partial, that would imply there is some piece of it that is defined xD |
2023-10-08 21:14:58 +0200 | Inst | (~Inst@120.244.192.250) (Quit: Leaving) |
2023-10-08 21:15:06 +0200 | <EvanR> | the type Char might be partial because it includes bottom |
2023-10-08 21:15:43 +0200 | <monochrom> | Yeah but then it's like everyone already accepts that almost every time has bottom. |
2023-10-08 21:15:48 +0200 | <monochrom> | err s/time/type/ |
2023-10-08 21:16:48 +0200 | <EvanR> | so anyway ghci's message is interfering with my blog post about guards xD |
2023-10-08 21:16:54 +0200 | <monochrom> | I think people just knee-jerked "I see a guard so it's a function, now I just reconcile the rest with that premise". |
2023-10-08 21:17:08 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
2023-10-08 21:17:26 +0200 | <EvanR> | if it were a real blog post it would seem that haskell things stuff like m is a function |
2023-10-08 21:18:01 +0200 | <EvanR> | a zero arg function, ok |
2023-10-08 21:18:02 +0200 | <monochrom> | whereas I have long written and enjoyed code like "f x = m + 1 where m | x < 0 = 5 | otherwise = 6" |
2023-10-08 21:18:13 +0200 | <haskellbridge> | <Inst> no, but if you're working with a let expression or where clause, you'll end up doing that, i.e, make a value use guards wherein the boolean check is based on data being passed into the function |
2023-10-08 21:19:18 +0200 | <EvanR> | filing that under haskell curio |
2023-10-08 21:19:47 +0200 | <haskellbridge> | <Inst> the let m| 5 < 4 = 'A' thing? |
2023-10-08 21:19:51 +0200 | <monochrom> | What were you wanting to claim about guards in your blog post? |
2023-10-08 21:20:02 +0200 | <probie> | What does it mean for Haskell to think something is a function? All lifted types are represented by functions, just not Haskell functions |
2023-10-08 21:20:17 +0200 | <EvanR> | demonstrating the expansion of guards into if-then-else (or into pattern matching) which ends in a message |
2023-10-08 21:20:20 +0200 | <ph88> | What does this list comprehension do? https://github.com/martinfinke/qm/blob/master/src/Qm.hs#L111 |
2023-10-08 21:20:21 +0200 | <EvanR> | error message |
2023-10-08 21:20:25 +0200 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 255 seconds) |
2023-10-08 21:20:25 +0200 | <EvanR> | and that message is wrong xD |
2023-10-08 21:20:30 +0200 | <probie> | monochrom: I think the complaint was about the error message GHCi gave |
2023-10-08 21:20:42 +0200 | <monochrom> | According to the Haskell Report, (->) is the sole function type. |
2023-10-08 21:20:53 +0200 | <[exa]> | probie: typical naming problem. it is a function in some contexts and not in other contexts :] |
2023-10-08 21:21:05 +0200 | <haskellbridge> | <Inst> EvanR: file a bug report? |
2023-10-08 21:21:26 +0200 | <monochrom> | You can say that a compiler compiles Int to functions too but that's an implementation detail and is not universal to all plausible compilers. |
2023-10-08 21:21:50 +0200 | <ph88> | is that not just the same as mconcat ? |
2023-10-08 21:22:08 +0200 | <monochrom> | You can also say you don't follow the Haskell Report, you follow some other logic textbook. |
2023-10-08 21:22:37 +0200 | <monochrom> | I'm in #haskell so I follow the Haskell Report whenever reasonable. |
2023-10-08 21:22:38 +0200 | <EvanR> | what should the final error message say, bikeshed time |
2023-10-08 21:22:58 +0200 | <monochrom> | In #ghc I would follow GHC implementation details. |
2023-10-08 21:23:03 +0200 | simendsjo | (~user@84.211.91.241) (Ping timeout: 240 seconds) |
2023-10-08 21:23:22 +0200 | <tomsmeding> | ph88: I guess so, as in the (...) stuff looks like (mconcat sigma) |
2023-10-08 21:23:26 +0200 | <monochrom> | In ##math I would ask the people I'm talking to for their preference. |
2023-10-08 21:23:58 +0200 | <ph88> | tomsmeding, thanks for looking with me |
2023-10-08 21:24:01 +0200 | <[exa]> | EvanR: I'd vote for "in definition of m" |
2023-10-08 21:24:04 +0200 | <haskellbridge> | <Inst> Vairable? |
2023-10-08 21:24:09 +0200 | <monochrom> | Oh wait, GHC error message? OK nevermind! |
2023-10-08 21:24:13 +0200 | <[exa]> | EvanR: (that's also used elsewhere, right?) |
2023-10-08 21:24:21 +0200 | <EvanR> | I'm using that |
2023-10-08 21:24:39 +0200 | <monochrom> | Well error messages are written by absent-minded humans. |
2023-10-08 21:25:08 +0200 | falafel | (~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 258 seconds) |
2023-10-08 21:25:29 +0200 | <monochrom> | And pretty much hardcoded instead of actually dynamically examining the type of the offending thing. |
2023-10-08 21:25:36 +0200 | <haskellbridge> | <Inst> I'm wondering how annoying this would be to fix |
2023-10-08 21:26:10 +0200 | <monochrom> | But this one, s/function/binding/ should be pretty safe. |
2023-10-08 21:26:21 +0200 | <[exa]> | ah yes +1 for binding |
2023-10-08 21:26:28 +0200 | <monochrom> | or even pattern. |
2023-10-08 21:26:50 +0200 | Nixkernal_ | (~Nixkernal@119.4.193.178.dynamic.wline.res.cust.swisscom.ch) |
2023-10-08 21:27:01 +0200 | <haskellbridge> | <Inst> Doesn't the Haskell Report call it a variable? |
2023-10-08 21:27:07 +0200 | <monochrom> | % case () of m | 5<4 -> 'A' |
2023-10-08 21:27:07 +0200 | <yahb2> | *** Exception: <interactive>:87:1-25: Non-exhaustive patterns in case |
2023-10-08 21:27:30 +0200 | <tomsmeding> | I'd go for 'definition of' or 'binding' |
2023-10-08 21:27:56 +0200 | Benzi-Junior | (~BenziJuni@88-149-64-112.du.xdsl.is) (Read error: No route to host) |
2023-10-08 21:27:56 +0200 | Nixkernal | (~Nixkernal@119.4.193.178.dynamic.wline.res.cust.swisscom.ch) (Ping timeout: 255 seconds) |
2023-10-08 21:28:57 +0200 | <monochrom> | m is a variable, but wait til you see a general "Just (x : y : []) | 5<4 = ..." |
2023-10-08 21:29:37 +0200 | <monochrom> | In the most generality you can have <pattern> | <guard> = ... for bindings. |
2023-10-08 21:30:05 +0200 | Benzi-Junior | (~BenziJuni@88-149-64-112.du.xdsl.is) |
2023-10-08 21:32:02 +0200 | <haskellbridge> | <Inst> Still, I'm wondering how hard this would be to fix |
2023-10-08 21:32:39 +0200 | <monochrom> | s/hard/long/ |
2023-10-08 21:32:42 +0200 | iteratee_ | (~kyle@162.218.222.207) (Read error: Connection reset by peer) |
2023-10-08 21:32:48 +0200 | <haskellbridge> | <Inst> I guess Non-exhaustive patterns in case suggests that the error message isn't hardcoded only for a single case |
2023-10-08 21:32:52 +0200 | iteratee | (~kyle@162.218.222.207) |
2023-10-08 21:33:22 +0200 | <[Leary]> | You can probably fix it with sed. |
2023-10-08 21:33:35 +0200 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) |
2023-10-08 21:34:18 +0200 | <monochrom> | The PR would be literally just one word. But it takes forever to be accepted. Then forever to be scheduled for a concrete version. Then that concrete version will have to go through 10 alphas, 5 previews, and 3 release-candidates... |
2023-10-08 21:35:15 +0200 | <haskellbridge> | <Inst> No, because I'm wondering about whether there's already code to detect whether or not the guard is being called by a value or a function. |
2023-10-08 21:35:24 +0200 | <monochrom> | Oh how about two hardcoded messages, one for bindings, one for case. >:) |
2023-10-08 21:36:03 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-10-08 21:39:34 +0200 | notzmv | (~zmv@user/notzmv) |
2023-10-08 21:41:16 +0200 | <mauke> | > let m | 5<4 = length in m |
2023-10-08 21:41:17 +0200 | <lambdabot> | error: |
2023-10-08 21:41:17 +0200 | <lambdabot> | • No instance for (Typeable a0) |
2023-10-08 21:41:17 +0200 | <lambdabot> | arising from a use of ‘show_M59663708450690736198’ |
2023-10-08 21:41:24 +0200 | <mauke> | > let m | 5<4 = length in m "" |
2023-10-08 21:41:25 +0200 | <lambdabot> | *Exception: <interactive>:3:5-20: Non-exhaustive patterns in function m |
2023-10-08 21:45:04 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2023-10-08 21:45:27 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2023-10-08 21:46:21 +0200 | falafel | (~falafel@62.175.113.194.dyn.user.ono.com) |
2023-10-08 21:52:20 +0200 | emmanuelux_ | (~emmanuelu@user/emmanuelux) |
2023-10-08 21:54:52 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) (Ping timeout: 248 seconds) |
2023-10-08 21:55:19 +0200 | <haskellbridge> | <Inst> curious, though, but what do you call use of kleisli arrows and binds in monadic code? Are there blog posts for this? |
2023-10-08 21:56:48 +0200 | <haskellbridge> | <Inst> i.e, there's a pseudo imperative style possible with do notation, lots of let use, lots of bindings, etc. There's also a pseudo-functional style possible with more point free, use of where when possible, and so on |
2023-10-08 21:57:40 +0200 | fweht | (uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2023-10-08 21:57:40 +0200 | myyo | (~myyo@75-166-145-203.hlrn.qwest.net) |
2023-10-08 21:58:40 +0200 | emmanuelux_ | (~emmanuelu@user/emmanuelux) (Ping timeout: 255 seconds) |
2023-10-08 22:01:09 +0200 | <monochrom> | I call using >>= "using >>=". |
2023-10-08 22:01:41 +0200 | <monochrom> | I haven't used >=> much, but I would call it "using >=>". |
2023-10-08 22:02:31 +0200 | <monochrom> | And it is not like using do-notation got a more fancy name than "using do-notation". |
2023-10-08 22:03:37 +0200 | <monochrom> | This is where I agree with Feynman. If someone reads "things fall down, this is called gravity" one has learned nothing. |
2023-10-08 22:05:53 +0200 | <haskellbridge> | <Inst> i'm just asking how to search on it, see what the discussion of the topic is like |
2023-10-08 22:06:09 +0200 | <haskellbridge> | <Inst> this is the closest thing i've been able to find |
2023-10-08 22:06:10 +0200 | <haskellbridge> | <Inst> http://wiki.haskell.org/Declaration_vs._expression_style |
2023-10-08 22:06:32 +0200 | <monochrom> | Perhaps there has been no discussion. |
2023-10-08 22:07:15 +0200 | <haskellbridge> | <Inst> i can't initiate one, though; i think you'll find some people like having let everywhere for accessibility purposes, others would prefer using bind operators |
2023-10-08 22:08:22 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2023-10-08 22:08:47 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2023-10-08 22:09:03 +0200 | tv | (~tv@user/tv) (Ping timeout: 240 seconds) |
2023-10-08 22:09:27 +0200 | <Rembane> | Pointfree? do-notation considered harmful? |
2023-10-08 22:11:38 +0200 | epolanski | (uid312403@id-312403.helmsley.irccloud.com) |
2023-10-08 22:12:06 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
2023-10-08 22:13:11 +0200 | <haskellbridge> | <Inst> thanks for the suggestions |
2023-10-08 22:13:17 +0200 | RSCASTILHO | (~RSCASTILH@187.40.126.47) () |
2023-10-08 22:21:28 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:21c9:e2cd:7450:1f71) (Remote host closed the connection) |
2023-10-08 22:22:24 +0200 | tv | (~tv@user/tv) |
2023-10-08 22:23:55 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:21c9:e2cd:7450:1f71) |
2023-10-08 22:25:57 +0200 | oo_miguel | (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) |
2023-10-08 22:29:47 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2023-10-08 22:30:56 +0200 | myyo | (~myyo@75-166-145-203.hlrn.qwest.net) (Remote host closed the connection) |
2023-10-08 22:31:35 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 240 seconds) |
2023-10-08 22:35:05 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 240 seconds) |
2023-10-08 22:36:14 +0200 | Jackneill | (~Jackneill@20014C4E1E1DF200F8969E0EBEAF265A.dsl.pool.telekom.hu) (Ping timeout: 255 seconds) |
2023-10-08 22:44:51 +0200 | michalz | (~michalz@185.246.207.221) (Remote host closed the connection) |
2023-10-08 22:47:05 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2023-10-08 22:47:38 +0200 | myyo | (~myyo@75-166-145-203.hlrn.qwest.net) |
2023-10-08 22:48:06 +0200 | notzmv | (~zmv@user/notzmv) |
2023-10-08 22:49:59 +0200 | myxos | (~myxos@cpe-65-28-251-121.cinci.res.rr.com) (Remote host closed the connection) |
2023-10-08 22:51:54 +0200 | myyo | (~myyo@75-166-145-203.hlrn.qwest.net) (Ping timeout: 255 seconds) |
2023-10-08 23:03:31 +0200 | myyo | (~myyo@75-166-145-203.hlrn.qwest.net) |
2023-10-08 23:04:06 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 272 seconds) |
2023-10-08 23:04:45 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:21c9:e2cd:7450:1f71) (Remote host closed the connection) |
2023-10-08 23:04:57 +0200 | pavonia | (~user@user/siracusa) |
2023-10-08 23:08:32 +0200 | myyo | (~myyo@75-166-145-203.hlrn.qwest.net) (Ping timeout: 272 seconds) |
2023-10-08 23:09:55 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2023-10-08 23:10:16 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2023-10-08 23:10:27 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Read error: Connection reset by peer) |
2023-10-08 23:10:39 +0200 | falafel | (~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 240 seconds) |
2023-10-08 23:10:48 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2023-10-08 23:11:19 +0200 | acidjnk | (~acidjnk@p200300d6e7072f71a0e70c533425b336.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2023-10-08 23:14:35 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:21c9:e2cd:7450:1f71) |
2023-10-08 23:20:36 +0200 | myyo | (~myyo@75-166-145-203.hlrn.qwest.net) |
2023-10-08 23:25:05 +0200 | myyo | (~myyo@75-166-145-203.hlrn.qwest.net) (Ping timeout: 240 seconds) |
2023-10-08 23:26:05 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 240 seconds) |
2023-10-08 23:33:57 +0200 | vglfr | (~vglfr@88.155.165.25) (Remote host closed the connection) |
2023-10-08 23:34:16 +0200 | vglfr | (~vglfr@88.155.165.25) |
2023-10-08 23:36:57 +0200 | myyo | (~myyo@75-166-145-203.hlrn.qwest.net) |
2023-10-08 23:37:06 +0200 | vglfr | (~vglfr@88.155.165.25) (Read error: Connection reset by peer) |
2023-10-08 23:37:25 +0200 | vglfr | (vglfr@gateway/vpn/protonvpn/vglfr) |
2023-10-08 23:38:34 +0200 | sabino | (~sabino@user/sabino) (Ping timeout: 255 seconds) |
2023-10-08 23:38:56 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-10-08 23:38:56 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-10-08 23:38:56 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-10-08 23:39:18 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-10-08 23:41:24 +0200 | myyo | (~myyo@75-166-145-203.hlrn.qwest.net) (Ping timeout: 255 seconds) |
2023-10-08 23:43:22 +0200 | aliosablack | (~chomwitt@2a02:587:7a24:b000:1ac0:4dff:fedb:a3f1) (Ping timeout: 272 seconds) |
2023-10-08 23:51:47 +0200 | sabino | (~sabino@user/sabino) |
2023-10-08 23:53:12 +0200 | myyo | (~myyo@75-166-145-203.hlrn.qwest.net) |
2023-10-08 23:54:46 +0200 | vglfr | (vglfr@gateway/vpn/protonvpn/vglfr) (Ping timeout: 272 seconds) |
2023-10-08 23:57:32 +0200 | myyo | (~myyo@75-166-145-203.hlrn.qwest.net) (Ping timeout: 248 seconds) |