2025/02/08

2025-02-08 00:02:56 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds)
2025-02-08 00:07:10 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-08 00:08:08 +0100 <EvanR> >3rd rate college grad
2025-02-08 00:08:12 +0100 <EvanR> I resemble that remark
2025-02-08 00:08:33 +0100 <EvanR> but also not only do I understand recursion it was actually on the syllabus once
2025-02-08 00:11:20 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 252 seconds)
2025-02-08 00:12:21 +0100foul_owl(~kerry@193.42.0.126) foul_owl
2025-02-08 00:14:28 +0100 <c_wraith> I'm still unsure if understanding recursion was made easier by simultaneously learning how compilers implement it or not.
2025-02-08 00:15:09 +0100michalz(~michalz@185.246.207.197) (Remote host closed the connection)
2025-02-08 00:17:21 +0100 <haskellbridge> <Bowuigi> Knowing about the stack is good for imperative languages but bad for functional languages IMHO
2025-02-08 00:17:50 +0100 <geekosaur> I'm… not sure I ever didn't understand recursion. I recall being annoyed that there was no way to do it in MS-BASIC
2025-02-08 00:19:48 +0100MyNetAz(~MyNetAz@user/MyNetAz) (Remote host closed the connection)
2025-02-08 00:25:33 +0100 <Leary> Yeah, for me recursion was an obvious, intuitive tool for simplifying problems; I'd instead stuggle to solve them /without/ it. Though I may have understood it via the principle of induction.
2025-02-08 00:26:48 +0100MyNetAz(~MyNetAz@user/MyNetAz) MyNetAz
2025-02-08 00:32:13 +0100 <geekosaur> yeh, I can't say whether I'd encountered that by that point or not
2025-02-08 00:32:35 +0100 <geekosaur> but even so, the notion of reducing a problem to a simpler version seemed pretty obvious to me
2025-02-08 00:46:51 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2025-02-08 00:47:44 +0100 <hololeap> I asked this a year back because for some reason this package is hard for me to remember and it's surprisingly difficult to search for
2025-02-08 00:48:13 +0100 <hololeap> but what is the name of the package that contains an Either like data type that accumulates errors?
2025-02-08 00:49:01 +0100 <Leary> @hackage validation
2025-02-08 00:49:01 +0100 <lambdabot> https://hackage.haskell.org/package/validation
2025-02-08 00:49:24 +0100otbergsten(~otbergste@user/otbergsten) ()
2025-02-08 00:49:37 +0100 <hololeap> thanks
2025-02-08 00:51:20 +0100 <hololeap> I also remember there was a related typeclass that was considered to be "between" Applicative and Monad
2025-02-08 00:51:39 +0100 <Leary> @hackage selective
2025-02-08 00:51:39 +0100 <lambdabot> https://hackage.haskell.org/package/selective
2025-02-08 00:53:36 +0100 <hololeap> thank you
2025-02-08 00:55:14 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-08 00:59:22 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 252 seconds)
2025-02-08 01:03:24 +0100foul_owl(~kerry@193.42.0.126) (Ping timeout: 252 seconds)
2025-02-08 01:16:36 +0100robobub(uid248673@id-248673.uxbridge.irccloud.com) robobub
2025-02-08 01:17:50 +0100foul_owl(~kerry@174-21-138-88.tukw.qwest.net) foul_owl
2025-02-08 01:19:25 +0100Square(~Square@user/square) Square
2025-02-08 01:19:43 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-02-08 01:23:24 +0100sprotte24(~sprotte24@p200300d16f162e00a0abf896d629d189.dip0.t-ipconnect.de) (Quit: Leaving)
2025-02-08 01:40:33 +0100 <haskellbridge> <Preetham Gujjula> Is there any way to infer "Eq (f a)" from "(Eq a, Eq1 f)"? Here's a small example:
2025-02-08 01:40:33 +0100 <haskellbridge> ... long message truncated: https://kf8nh.com/_heisenbridge/media/kf8nh.com/txkgrmSDUVjUVWVJRVXKYhNi/LYPi2Ize3LU (21 lines)
2025-02-08 01:41:23 +0100 <haskellbridge> <Preetham Gujjula> Is there any way to infer "Eq (f a)" from "(Eq a, Eq1 f)"? Here's a small example:
2025-02-08 01:41:23 +0100 <haskellbridge> ... long message truncated: https://kf8nh.com/_heisenbridge/media/kf8nh.com/IWoCXjVZUXtnETfIMFBBSOuB/v7p8RIuNF04 (21 lines)
2025-02-08 01:43:58 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-08 01:45:01 +0100 <haskellbridge> <Preetham Gujjula> My apologies everyone, I meant to post this in the Haskell matrix channel
2025-02-08 01:48:08 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 252 seconds)
2025-02-08 01:49:49 +0100 <Leary> Preetham: You can write `newtype F1 f a = F1 (f a); instance (Eq1 f, Eq a) => Eq (F1 f a)` and use `coerce @[f a] @[F1 f a]`.
2025-02-08 01:51:20 +0100 <haskellbridge> <sm> Preetham Gujjula: worked perfectly in my matrix client. :) And in IRC client, it was also readable, with two pastebin links
2025-02-08 01:52:53 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2025-02-08 01:54:50 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2025-02-08 01:55:40 +0100 <haskellbridge> <Preetham Gujjula> Oh good to hear sm :)
2025-02-08 02:02:02 +0100 <haskellbridge> <Preetham Gujjula> Leary: I don't think that idea works, GHC warns:
2025-02-08 02:02:02 +0100 <haskellbridge> ... long message truncated: https://kf8nh.com/_heisenbridge/media/kf8nh.com/AmMeFJGdLlJCilBtJKDYAhqG/0S1DLbftubs (10 lines)
2025-02-08 02:02:46 +0100 <haskellbridge> <Preetham Gujjula> Also why can't I just use the "F1" constructor instead of "coerce"?
2025-02-08 02:08:00 +0100 <haskellbridge> <Preetham Gujjula> Oh wait I see, I can write an implementation for "(==)" using "eq1":
2025-02-08 02:08:00 +0100 <haskellbridge> ... long message truncated: https://kf8nh.com/_heisenbridge/media/kf8nh.com/SGoxowAGeEDwOguEHnahrMWL/IttEtTK99nU (11 lines)
2025-02-08 02:08:18 +0100 <Leary> Preetham: You still have to define `(==)`, but you can do that with `eq1`. Using `coerce` over `map F1` may avoid a needless traversal of the list, though rewrite rules would likely evade it anyway.
2025-02-08 02:10:39 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-02-08 02:13:11 +0100 <haskellbridge> <Preetham Gujjula> I see, thanks Leary!
2025-02-08 02:15:21 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2025-02-08 02:15:44 +0100cheater(~Username@user/cheater) (Ping timeout: 272 seconds)
2025-02-08 02:16:29 +0100 <haskellbridge> <Preetham Gujjula> It does feel a little clunky. The current definition of "Eq1" is "class (forall a. Eq a => Eq (f a)) => Eq1 (f :: Type -> Type)", but I noticed that if we write
2025-02-08 02:16:32 +0100 <haskellbridge> ... long message truncated: https://kf8nh.com/_heisenbridge/media/kf8nh.com/KekKHFuFggARKJEfWBCnMgyf/rXzjao_nHrA (6 lines)
2025-02-08 02:17:13 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2025-02-08 02:21:14 +0100 <Leary> You're probably using a version of GHC/base from before that quantified superclass was added, otherwise it should work the same.
2025-02-08 02:22:30 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2025-02-08 02:22:58 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2025-02-08 02:23:30 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2025-02-08 02:24:46 +0100acidjnk_new3(~acidjnk@p200300d6e7283f9788a4d7c575081360.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2025-02-08 02:30:29 +0100zwro(~z@user/zero) (Ping timeout: 248 seconds)
2025-02-08 02:30:50 +0100zero(~z@user/zero) zero
2025-02-08 02:32:02 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-08 02:36:34 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 265 seconds)
2025-02-08 02:45:00 +0100 <haskellbridge> <Preetham Gujjula> Ah yes, you're right it works on later GHCs. Thank you again!
2025-02-08 02:52:10 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2025-02-08 02:53:08 +0100terrorjack(~terrorjac@2a01:4f8:c17:a66e::) (The Lounge - https://thelounge.chat)
2025-02-08 02:54:44 +0100aaronv(~aaronv@user/aaronv) aaronv
2025-02-08 02:55:11 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2025-02-08 02:58:07 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2025-02-08 02:59:43 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2025-02-08 03:09:38 +0100zero(~z@user/zero) (Read error: Connection reset by peer)
2025-02-08 03:13:03 +0100zero(~z@user/zero) zero
2025-02-08 03:14:36 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 264 seconds)
2025-02-08 03:19:46 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-08 03:21:24 +0100dostoevsky(~dostoevsk@user/dostoevsky) (Remote host closed the connection)
2025-02-08 03:21:43 +0100dostoevsky(~dostoevsk@user/dostoevsky) dostoevsky
2025-02-08 03:23:56 +0100erdem(~erdem@user/erdem) (Quit: ZNC 1.9.1 - https://znc.in)
2025-02-08 03:24:35 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 268 seconds)
2025-02-08 03:27:03 +0100xff0x(~xff0x@2405:6580:b080:900:a44a:d727:8d11:d274) (Ping timeout: 252 seconds)
2025-02-08 03:28:53 +0100Jeanne-Kamikaze(~Jeanne-Ka@c-73-93-78-113.hsd1.ca.comcast.net) Jeanne-Kamikaze
2025-02-08 03:29:32 +0100emergence7(emergence@vm0.max-p.me) emergence
2025-02-08 03:29:51 +0100emergence(emergence@vm0.max-p.me) (Read error: Connection reset by peer)
2025-02-08 03:29:51 +0100emergence7emergence
2025-02-08 03:30:06 +0100xff0x(~xff0x@2405:6580:b080:900:a44a:d727:8d11:d274)
2025-02-08 03:38:24 +0100erdem(~erdem@user/erdem) erdem
2025-02-08 03:40:13 +0100ColinRobinson(~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org))
2025-02-08 03:41:34 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-02-08 03:49:58 +0100cheater(~Username@user/cheater) cheater
2025-02-08 03:53:33 +0100aaronv(~aaronv@user/aaronv) (Remote host closed the connection)
2025-02-08 03:53:57 +0100aaronv(~aaronv@user/aaronv) aaronv
2025-02-08 04:00:17 +0100aaronv(~aaronv@user/aaronv) (Remote host closed the connection)
2025-02-08 04:00:42 +0100aaronv(~aaronv@user/aaronv) aaronv
2025-02-08 04:00:55 +0100tavare(~tavare@150.129.88.189)
2025-02-08 04:00:55 +0100tavare(~tavare@150.129.88.189) (Changing host)
2025-02-08 04:00:55 +0100tavare(~tavare@user/tavare) tavare
2025-02-08 04:02:53 +0100Guest42(~Guest42@220-233-36-23.ip4.exetel.com.au)
2025-02-08 04:04:14 +0100Guest42(~Guest42@220-233-36-23.ip4.exetel.com.au) (Client Quit)
2025-02-08 04:08:22 +0100vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 268 seconds)
2025-02-08 04:08:52 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-08 04:09:53 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2025-02-08 04:13:18 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 268 seconds)
2025-02-08 04:15:48 +0100fmira(~user@user/fmira) (Ping timeout: 264 seconds)
2025-02-08 04:15:58 +0100 <monochrom> c_wraith: I am arrogant, I say that I am sure recursion is not more easily learned by see how to compile. In fact, has anything been made easier to learn by seeing how to compile it?
2025-02-08 04:16:42 +0100 <c_wraith> for some people, yes.
2025-02-08 04:17:08 +0100 <monochrom> I even go as far as making this joke. (Context: Everyone except me teach recursion by teaching how to execute by hand.) Your computer has been executing recursion for years. Has it learned anything yet?
2025-02-08 04:18:02 +0100 <c_wraith> I have absolutely seen some people go "oh, it's just using a stack" and never have an issue with it again.
2025-02-08 04:18:43 +0100 <monochrom> Have they gone one step further and go "and the stack is just an optimization"?
2025-02-08 04:19:08 +0100 <monochrom> Because if you don't mind a quadratic slowdown, you don't need a stack.
2025-02-08 04:21:42 +0100 <monochrom> (It is still not O(1) space. Every procedure call becomes an inline expansion of the procedure text.)
2025-02-08 04:27:29 +0100 <geekosaur> how well does that work for a non-fixed number of calls?
2025-02-08 04:27:58 +0100 <monochrom> Equally well. I never assumed a fixed number.
2025-02-08 04:29:27 +0100 <monochrom> A functional example goes like this. To execute f(5), it goes: f(5) -> 5 * f(4) -> 5 * (4 * f(3)) -> 5 * (4 * (3 * f(2))) -> ...
2025-02-08 04:30:50 +0100 <monochrom> If I don't have a stack, I just have to scan the long expression "5 * (4 * (3 * f(2)))" for the redex, f(2). This is slow, but I don't need a stack. A stack is there to save a pointer to the f(2) subexpr so I don't have to search.
2025-02-08 04:34:42 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2025-02-08 04:35:26 +0100 <monochrom> (And also a pointer to the 3*f(2) so I don't have to search in the future when I'm ready for it. And so on so forth.)
2025-02-08 04:36:58 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2025-02-08 04:45:23 +0100MyNetAz(~MyNetAz@user/MyNetAz) (Remote host closed the connection)
2025-02-08 04:46:36 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds)
2025-02-08 04:51:10 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2025-02-08 04:52:23 +0100MyNetAz(~MyNetAz@user/MyNetAz) MyNetAz
2025-02-08 04:54:49 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2025-02-08 04:58:37 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-08 05:03:15 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 268 seconds)
2025-02-08 05:04:52 +0100Jeanne-Kamikaze(~Jeanne-Ka@c-73-93-78-113.hsd1.ca.comcast.net) (Quit: Leaving)
2025-02-08 05:07:16 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2025-02-08 05:11:25 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2025-02-08 05:13:00 +0100cheater_(~Username@user/cheater) cheater
2025-02-08 05:16:33 +0100cheater(~Username@user/cheater) (Ping timeout: 265 seconds)
2025-02-08 05:16:37 +0100cheater_cheater
2025-02-08 05:24:27 +0100gabiruh(~gabiruh@vps19177.publiccloud.com.br) (Ping timeout: 252 seconds)
2025-02-08 05:32:10 +0100gabiruh(~gabiruh@vps19177.publiccloud.com.br) gabiruh
2025-02-08 05:41:09 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2025-02-08 05:44:52 +0100emergence7(emergence@vm0.max-p.me) emergence
2025-02-08 05:46:50 +0100emergence(emergence@vm0.max-p.me) (Ping timeout: 252 seconds)
2025-02-08 05:46:50 +0100emergence7emergence
2025-02-08 05:47:42 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-08 05:51:46 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2025-02-08 05:52:45 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 276 seconds)
2025-02-08 05:55:03 +0100aforemny(~aforemny@i577B1279.versanet.de) (Ping timeout: 268 seconds)
2025-02-08 05:55:34 +0100aforemny(~aforemny@2001:9e8:6cc0:9f00:f26a:4821:630d:3b0c) aforemny
2025-02-08 05:57:52 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-02-08 06:01:52 +0100aaronv(~aaronv@user/aaronv) (Remote host closed the connection)
2025-02-08 06:02:34 +0100capslair^(~capslair@108.192.66.114) (Remote host closed the connection)
2025-02-08 06:02:47 +0100MyNetAz(~MyNetAz@user/MyNetAz) (Remote host closed the connection)
2025-02-08 06:04:29 +0100aaronv(~aaronv@user/aaronv) aaronv
2025-02-08 06:09:25 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2025-02-08 06:09:47 +0100MyNetAz(~MyNetAz@user/MyNetAz) MyNetAz
2025-02-08 06:12:04 +0100rvalue(~rvalue@user/rvalue) (Read error: Connection reset by peer)
2025-02-08 06:12:37 +0100rvalue(~rvalue@user/rvalue) rvalue
2025-02-08 06:13:46 +0100duckworld(~duckworld@user/duckworld) (Remote host closed the connection)
2025-02-08 06:16:10 +0100euphores(~SASL_euph@user/euphores) (Ping timeout: 252 seconds)
2025-02-08 06:16:57 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2025-02-08 06:18:39 +0100duckworld(~duckworld@user/duckworld) duckworld
2025-02-08 06:19:47 +0100duckworld(~duckworld@user/duckworld) (Remote host closed the connection)
2025-02-08 06:20:23 +0100duckworld(~duckworld@user/duckworld) duckworld
2025-02-08 06:35:46 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-08 06:40:41 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 268 seconds)
2025-02-08 06:40:52 +0100prasad(~Thunderbi@2601:243:c001:3f07::53) (Quit: prasad)
2025-02-08 06:46:18 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 246 seconds)
2025-02-08 06:48:25 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2025-02-08 06:48:45 +0100chexum(~quassel@gateway/tor-sasl/chexum) chexum
2025-02-08 07:01:58 +0100elnegro(elnegro@r186-54-42-10.dialup.adsl.anteldata.net.uy) elnegro
2025-02-08 07:08:50 +0100tabaqui1(~root@87.200.129.102) tabaqui
2025-02-08 07:09:13 +0100elnegro(elnegro@r186-54-42-10.dialup.adsl.anteldata.net.uy) ()
2025-02-08 07:09:42 +0100tavare(~tavare@user/tavare) (Ping timeout: 252 seconds)
2025-02-08 07:09:58 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2025-02-08 07:12:23 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2025-02-08 07:12:46 +0100euphores(~SASL_euph@user/euphores) euphores
2025-02-08 07:16:27 +0100foul_owl(~kerry@174-21-138-88.tukw.qwest.net) (Ping timeout: 268 seconds)
2025-02-08 07:17:21 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2025-02-08 07:18:11 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2025-02-08 07:20:00 +0100tavare(~tavare@150.129.88.189)
2025-02-08 07:20:00 +0100tavare(~tavare@150.129.88.189) (Changing host)
2025-02-08 07:20:00 +0100tavare(~tavare@user/tavare) tavare
2025-02-08 07:23:51 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-08 07:24:41 +0100tnt2(~Thunderbi@user/tnt1) tnt1
2025-02-08 07:25:09 +0100tnt1(~Thunderbi@user/tnt1) (Ping timeout: 246 seconds)
2025-02-08 07:25:09 +0100tnt2tnt1
2025-02-08 07:28:02 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 252 seconds)
2025-02-08 07:28:30 +0100foul_owl(~kerry@193.42.0.122) foul_owl
2025-02-08 07:32:17 +0100igemnace(~igemnace@user/igemnace) (Quit: ZNC 1.9.0+deb2build3 - https://znc.in)
2025-02-08 07:33:15 +0100igemnace(~igemnace@user/igemnace) igemnace
2025-02-08 07:35:20 +0100tnt2(~Thunderbi@user/tnt1) tnt1
2025-02-08 07:36:34 +0100tnt1(~Thunderbi@user/tnt1) (Ping timeout: 260 seconds)
2025-02-08 07:36:34 +0100tnt2tnt1
2025-02-08 07:38:12 +0100takuan(~takuan@d8D86B601.access.telenet.be)
2025-02-08 07:47:13 +0100tnt2(~Thunderbi@user/tnt1) tnt1
2025-02-08 07:47:19 +0100tnt1(~Thunderbi@user/tnt1) (Ping timeout: 244 seconds)
2025-02-08 07:47:19 +0100tnt2tnt1
2025-02-08 07:47:59 +0100arahael(~arahael@user/arahael) (Quit: leaving)
2025-02-08 07:56:52 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-02-08 08:00:31 +0100JamesMowery4395(~JamesMowe@ip68-228-212-232.ph.ph.cox.net) JamesMowery
2025-02-08 08:05:03 +0100duckworld(~duckworld@user/duckworld) (Remote host closed the connection)
2025-02-08 08:06:32 +0100duckworld(~duckworld@user/duckworld) duckworld
2025-02-08 08:09:04 +0100tnt2(~Thunderbi@user/tnt1) tnt1
2025-02-08 08:10:03 +0100tnt1(~Thunderbi@user/tnt1) (Ping timeout: 244 seconds)
2025-02-08 08:10:03 +0100tnt2tnt1
2025-02-08 08:12:15 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-08 08:15:02 +0100vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 268 seconds)
2025-02-08 08:16:26 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 252 seconds)
2025-02-08 08:16:33 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2025-02-08 08:18:34 +0100tavare(~tavare@user/tavare) (Ping timeout: 260 seconds)
2025-02-08 08:21:10 +0100tavare(~tavare@user/tavare) tavare
2025-02-08 08:36:40 +0100nitrix(~nitrix@user/meow/nitrix) (Quit: ZNC 1.8.2 - https://znc.in)
2025-02-08 08:38:01 +0100nitrix(~nitrix@user/meow/nitrix) nitrix
2025-02-08 08:53:28 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2025-02-08 09:00:01 +0100caconym(~caconym@user/caconym) (Quit: bye)
2025-02-08 09:00:19 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-08 09:01:03 +0100caconym(~caconym@user/caconym) caconym
2025-02-08 09:04:41 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 265 seconds)
2025-02-08 09:07:06 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2025-02-08 09:09:04 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2025-02-08 09:17:03 +0100jrm(~jrm@user/jrm) (Quit: ciao)
2025-02-08 09:17:27 +0100jrm(~jrm@user/jrm) jrm
2025-02-08 09:19:03 +0100aaronv(~aaronv@user/aaronv) (Ping timeout: 252 seconds)
2025-02-08 09:22:50 +0100arahael(~arahael@user/arahael) arahael
2025-02-08 09:23:06 +0100tabaqui1(~root@87.200.129.102) (Ping timeout: 246 seconds)
2025-02-08 09:24:49 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2025-02-08 09:31:14 +0100michalz(~michalz@185.246.207.193)
2025-02-08 09:31:32 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2025-02-08 09:34:17 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2025-02-08 09:48:43 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-08 09:50:09 +0100michalz(~michalz@185.246.207.193) (Remote host closed the connection)
2025-02-08 09:52:51 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 246 seconds)
2025-02-08 09:55:44 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2025-02-08 09:56:29 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2025-02-08 10:02:10 +0100tabaqui1(~root@87.200.129.102) tabaqui
2025-02-08 10:02:23 +0100acidjnk_new3(~acidjnk@p200300d6e7283f0588a4d7c575081360.dip0.t-ipconnect.de)
2025-02-08 10:18:42 +0100 <tomsmeding> monochrom: disclaimer I didn't follow the discussion, just saw stuff in the scrollback
2025-02-08 10:18:56 +0100 <tomsmeding> your functional example is precisely that: a functional example, and it will work well for functionally-minded people
2025-02-08 10:20:31 +0100 <tomsmeding> without prior exposure to either mathematics or functional programming, people tend to be more comfortable with sequential recipes than hierarchical procedures, and learning an imperative language first (before getting to recursion, that is) will only reinforce that
2025-02-08 10:21:37 +0100 <tomsmeding> if you show that execution of a recursive procedure (with the right (rough) complexity! This is important) can be expressed rather simply in terms of a sequential recipe (doing stuff to a stack), then for some people that will map nicely to their mental model
2025-02-08 10:22:31 +0100 <tomsmeding> then they may still lack a good intuition for how to _apply_ recursion, but they can at least reason about what a particular recursive function _does_ -- and that's a very useful stepping stone to understanding how to apply recursion
2025-02-08 10:23:50 +0100 <tomsmeding> the reason why it's important that the operational equivalent has roughly the right complexity is that this hypothetical imperative programmer is probably willing to accept that a recipe that between each step instructs the cook to pet their dog, achieves the same as the recipe that doesn't -- albeit a bit slower
2025-02-08 10:25:11 +0100 <tomsmeding> but if you show them a recipe that, between each step, instructs them (step-by-step) to go over each of the steps they did already and check and make adjustments where necessary (resulting in a quadratically-sized recipe), they'll be confused and be blocked by "why would anyone ever write anything like this" from understanding what's actually going on
2025-02-08 10:25:49 +0100 <tomsmeding> (and if they get past that, they'll question whether those "adjustments where necessary" ever actually change anything -- you'll assure them that they don't, but then they'll just be more confused why the steps are there)
2025-02-08 10:26:02 +0100 <tomsmeding> (this refers to scanning the long expression looking for the redex)
2025-02-08 10:26:12 +0100eL_Bart0(eL_Bart0@dietunichtguten.org)
2025-02-08 10:27:45 +0100euleritian(~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds)
2025-02-08 10:27:51 +0100 <peutri> I'm trying to get this line to compile without warnings (I feel it gives all the relevant context): let size = Relude.length xs * Foreign.Storable.sizeOf(Prelude.head xs)
2025-02-08 10:28:15 +0100 <peutri> warning is: head is partial
2025-02-08 10:28:24 +0100 <peutri> which is fair, but also sizeOf doesn't consume it
2025-02-08 10:28:26 +0100 <tomsmeding> side note: not getting blocked by "why would anyone ever write this" and accepting ridiculous inputs and just rolling with them, is part of mathematical maturity, I think -- i.e. this hypothetical programmer does not have that
2025-02-08 10:28:31 +0100euleritian(~euleritia@dynamic-176-006-128-136.176.6.pool.telefonica.de)
2025-02-08 10:28:48 +0100misterfish(~misterfis@84.53.85.146) misterfish
2025-02-08 10:28:55 +0100 <tomsmeding> monochrom: end of rant
2025-02-08 10:28:55 +0100 <peutri> I could put some (undefined :: a), but then Relude yells at me
2025-02-08 10:29:12 +0100 <tomsmeding> peutri: you're running into the unfortunate design of sizeOf
2025-02-08 10:29:16 +0100 <peutri> yup
2025-02-08 10:29:22 +0100 <peutri> any common solution out there?
2025-02-08 10:29:26 +0100 <tomsmeding> undefined :: a
2025-02-08 10:29:33 +0100 <tomsmeding> (for the right a, that is)
2025-02-08 10:29:39 +0100 <peutri> “but then Relude yells at me”
2025-02-08 10:29:42 +0100 <tomsmeding> in what way?
2025-02-08 10:29:51 +0100 <peutri> but I can use Prelude's I guess
2025-02-08 10:30:07 +0100 <peutri> in a “You have undefineds remaining in your code” kind of way
2025-02-08 10:30:21 +0100 <tomsmeding> sizeOf' :: forall a. Proxy a -> Int ; sizeOf' _ = sizeOf (Prelude.undefined :: a)
2025-02-08 10:30:32 +0100 <peutri> I think I'm going to end up defining some term proxy alias in the end
2025-02-08 10:30:45 +0100 <peutri> oh your thing too
2025-02-08 10:30:45 +0100 <tomsmeding> ooh
2025-02-08 10:30:50 +0100 <tomsmeding> sizeOf' :: forall a. proxy a -> Int ; sizeOf' _ = sizeOf (Prelude.undefined :: a)
2025-02-08 10:30:53 +0100 <tomsmeding> note the P -> p
2025-02-08 10:30:59 +0100 <tomsmeding> now you can pass in your list directly to this sizeOf'
2025-02-08 10:31:18 +0100 <tomsmeding> and retain the connection between the list elements and the sizeOf call that your head code had, but the undefined code lost
2025-02-08 10:32:46 +0100tomsmedingpersonally feels that this head-is-partial warning is not helpful -- indeed, head is partial, but the programmer knows that, and the sign that something is off (or to be manually checked) is right there in the code: "head"
2025-02-08 10:33:19 +0100 <tomsmeding> if you don't know 'head' is partial, you should think about what it does :p
2025-02-08 10:33:47 +0100AlexZenon(~alzenon@178.34.151.30) (Ping timeout: 268 seconds)
2025-02-08 10:33:49 +0100 <peutri> I mean, I'm not using it for the function at all, it's just the only [a]->a function I could think of
2025-02-08 10:34:24 +0100 <tomsmeding> I would accept your sizeOf (head) code in code review :p
2025-02-08 10:34:30 +0100 <peutri> “function” overload. That's 1) functionality 2) signature match
2025-02-08 10:34:33 +0100 <tomsmeding> and probably add -Wno-x-partial (or what was it) to the cabal file
2025-02-08 10:34:46 +0100 <peutri> I want localized warning shunning :'(
2025-02-08 10:35:02 +0100 <tomsmeding> in what situation is this warning going to help you?
2025-02-08 10:35:11 +0100 <peutri> no, but it's a big file
2025-02-08 10:35:50 +0100 <peutri> oh sorry misread
2025-02-08 10:35:55 +0100 <tomsmeding> put `sizeOfListElt :: [a] -> Int ; sizeOfListElt = sizeOf . head` in a file with -Wno-x-partial?
2025-02-08 10:35:58 +0100 <peutri> mmm good point actually
2025-02-08 10:36:15 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2025-02-08 10:36:43 +0100sprotte24(~sprotte24@p200300d16f1e3a00501959556750eb7a.dip0.t-ipconnect.de)
2025-02-08 10:37:05 +0100 <tomsmeding> you could even defend this sizeOfListElt as "I'm only turning off the partiality warning in this separate file, so I have to watch out more here, but there's little code so it's easy to audit"
2025-02-08 10:37:07 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-08 10:37:25 +0100 <tomsmeding> never mind the leagues of other partial functions in not-Prelude that don't have an x-partial warning
2025-02-08 10:37:49 +0100AlexZenon(~alzenon@178.34.151.30)
2025-02-08 10:38:00 +0100 <tomsmeding> I want an exception effect system so that I can statically determine whether an IO operation can throw
2025-02-08 10:41:07 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2025-02-08 10:41:29 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 260 seconds)
2025-02-08 10:48:53 +0100paddymahoney(~paddymaho@pool-99-250-10-137.cpe.net.cable.rogers.com)
2025-02-08 10:53:07 +0100__monty__(~toonn@user/toonn) toonn
2025-02-08 10:56:21 +0100JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2025-02-08 11:01:47 +0100gabiruh(~gabiruh@vps19177.publiccloud.com.br) (Ping timeout: 252 seconds)
2025-02-08 11:03:04 +0100gabiruh(~gabiruh@vps19177.publiccloud.com.br) gabiruh
2025-02-08 11:03:49 +0100euleritian(~euleritia@dynamic-176-006-128-136.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2025-02-08 11:04:07 +0100euleritian(~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de)
2025-02-08 11:12:19 +0100lxsameer(~lxsameer@Serene/lxsameer) lxsameer
2025-02-08 11:12:52 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2025-02-08 11:15:38 +0100JuanDaughertyColinRobinson
2025-02-08 11:17:25 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla
2025-02-08 11:24:51 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-08 11:25:05 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2025-02-08 11:25:17 +0100ColinRobinson(~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org))
2025-02-08 11:26:29 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2025-02-08 11:29:18 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 252 seconds)
2025-02-08 11:32:56 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2025-02-08 11:36:39 +0100euouae(~euouae@user/euouae) euouae
2025-02-08 11:36:59 +0100ss4(~wootehfoo@user/wootehfoot) wootehfoot
2025-02-08 11:37:01 +0100 <euouae> Hello I'm reading the 1992 STG paper by Jones and I'm wondering if it's worthwhile paying attention to all the technical aspects of the STG language
2025-02-08 11:37:08 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2025-02-08 11:37:26 +0100 <euouae> I noticed that GHC has a -ddump-stg-from-core that looks a lot like what the paper discusses. Is it a good idea to look at this or has it mutated a lot since 1992?
2025-02-08 11:37:44 +0100hazmat_237(~hazmat_23@2406:7400:56:f19f:793f:9847:668d:4a12)
2025-02-08 11:37:46 +0100 <euouae> (including the semantics)
2025-02-08 11:37:54 +0100hazmat_237(~hazmat_23@2406:7400:56:f19f:793f:9847:668d:4a12) (Changing host)
2025-02-08 11:37:54 +0100hazmat_237(~hazmat_23@user/Monospace) Monospace
2025-02-08 11:38:02 +0100ss4(~wootehfoo@user/wootehfoot) (Client Quit)
2025-02-08 11:38:20 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2025-02-08 11:39:57 +0100 <__monty__> That depends rather more on your goals than anything.
2025-02-08 11:41:49 +0100 <euouae> I
2025-02-08 11:41:58 +0100 <euouae> I'm just messing around with the lower parts I don't have explicit goals
2025-02-08 11:42:30 +0100 <euouae> But if I should say something I guess my goal is to write optimized & parallel code
2025-02-08 11:42:36 +0100 <geekosaur> IMO if you want to know how to implement it, read SPJ's paper. If you want to understamnd what's going on down there, see Csaba Hruska's STGi
2025-02-08 11:43:00 +0100 <geekosaur> even though that is imcomplete (e.g. doesn't support update frames)
2025-02-08 11:43:07 +0100 <geekosaur> *incomplete
2025-02-08 11:43:41 +0100 <geekosaur> if you want to write optimized and parallel code, stick to Core
2025-02-08 11:43:48 +0100 <euouae> Are you talking about <https://github.com/grin-compiler/ghc-whole-program-compiler-project>?
2025-02-08 11:43:52 +0100 <int-e> Hmm there's the more recent "making a fast curry: push/enter vs. eval/apply" paper as well. And another implementation: https://hackage.haskell.org/package/ministg
2025-02-08 11:45:32 +0100 <geekosaur> not the while thing, just the external STG interpreter
2025-02-08 11:45:51 +0100 <int-e> I don't really know which one comes closest to current GHC in terms of syntax and semantics.
2025-02-08 11:46:02 +0100 <geekosaur> https://github.com/grin-compiler/ghc-whole-program-compiler-project/tree/master/external-stg-inter…
2025-02-08 11:46:47 +0100 <euouae> nice thanks
2025-02-08 11:47:02 +0100 <euouae> when you say stick to Core for optimizations & parallel what do you mean?
2025-02-08 11:47:25 +0100 <geekosaur> GRIN itself seems to be kinda stuck, but STGi will show you how STG works without requiring you to delve into implementation details (SPJ's paper talks a lot about register allocation etc.)
2025-02-08 11:47:46 +0100 <euouae> I've read that Core does not capture certain issues with memory use & other benchmarking analysis
2025-02-08 11:47:50 +0100 <geekosaur> almost all optimizations in ghc are done at the level of Core
2025-02-08 11:48:19 +0100 <euouae> Ah, hm... I meant that I want to write code that is fast, not to study the optimizations of GHC
2025-02-08 11:48:28 +0100 <geekosaur> there are a few things at Cmm and STG levels but you won't find anything except the ghc source to help with those
2025-02-08 11:53:47 +0100 <geekosaur> (certainly old implementation papers will be too old to help, especially since none of them will know about amd64 or aarch64)
2025-02-08 11:59:28 +0100 <euouae> does ghc still target C? because tahts' what STG targets in SPJs paper
2025-02-08 11:59:56 +0100 <geekosaur> not since 7.2
2025-02-08 12:00:58 +0100 <geekosaur> unless you mean unregisterised mode, but you absolutely don't want that if you want speed; it's intended for porting and produces extremely slow but extremely portable ANSI C
2025-02-08 12:02:24 +0100 <euouae> no that's not what I meant
2025-02-08 12:02:40 +0100 <euouae> I can't find a changelog file, how can I read the GHC notes for 7.2?
2025-02-08 12:03:23 +0100 <int-e> https://downloads.haskell.org/~ghc/7.2.1/docs/html/users_guide/release-7-2-1.html
2025-02-08 12:03:51 +0100 <int-e> (more generally you can start from https://www.haskell.org/ghc/download.html and select the version and that'll have a release notes link)
2025-02-08 12:04:01 +0100 <euouae> ah thank you
2025-02-08 12:06:27 +0100 <geekosaur> section 1.5.6 in particular, second entry
2025-02-08 12:07:04 +0100 <euouae> yup; although it doesn't explain how the code is natively generated
2025-02-08 12:07:24 +0100 <geekosaur> it generates assembly language and calls `as` on it
2025-02-08 12:07:41 +0100 <geekosaur> unless you're in LLVM mode where it outputs LLVM IR and calls `opt` and `llc`
2025-02-08 12:07:49 +0100 <euouae> very nice
2025-02-08 12:08:17 +0100 <euouae> I'm realizing the GHC docs are a valuable source to learn stuff from
2025-02-08 12:08:34 +0100acidjnk_new3(~acidjnk@p200300d6e7283f0588a4d7c575081360.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2025-02-08 12:08:49 +0100 <geekosaur> this happens post-Cmm in the compile pipeline
2025-02-08 12:09:22 +0100 <geekosaur> https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary is another very good place to look
2025-02-08 12:09:39 +0100 <euouae> nice, thank you
2025-02-08 12:12:21 +0100hazmat_237(~hazmat_23@user/Monospace) (Ping timeout: 276 seconds)
2025-02-08 12:12:55 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-08 12:17:24 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 272 seconds)
2025-02-08 12:27:29 +0100emmanuelux(~emmanuelu@user/emmanuelux) emmanuelux
2025-02-08 12:31:33 +0100tavare(~tavare@user/tavare) (Ping timeout: 252 seconds)
2025-02-08 12:32:03 +0100tavare(~tavare@user/tavare) tavare
2025-02-08 12:34:50 +0100dostoevsky(~dostoevsk@user/dostoevsky) (Remote host closed the connection)
2025-02-08 12:53:38 +0100euleritian(~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2025-02-08 12:53:59 +0100euleritian(~euleritia@dynamic-176-006-128-136.176.6.pool.telefonica.de)
2025-02-08 13:00:04 +0100caconym(~caconym@user/caconym) (Quit: bye)
2025-02-08 13:00:59 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-08 13:02:14 +0100caconym(~caconym@user/caconym) caconym
2025-02-08 13:05:06 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 252 seconds)
2025-02-08 13:06:51 +0100paddymahoney(~paddymaho@pool-99-250-10-137.cpe.net.cable.rogers.com) (Quit: Leaving)
2025-02-08 13:08:29 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2025-02-08 13:09:47 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2025-02-08 13:09:57 +0100acidjnk_new3(~acidjnk@p200300d6e7283f0539c4118aaa9fc29f.dip0.t-ipconnect.de) acidjnk
2025-02-08 13:18:26 +0100tavare(~tavare@user/tavare) (Remote host closed the connection)
2025-02-08 13:18:41 +0100tavare(~tavare@user/tavare) tavare
2025-02-08 13:21:56 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2025-02-08 13:28:36 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2025-02-08 13:31:57 +0100euleritian(~euleritia@dynamic-176-006-128-136.176.6.pool.telefonica.de) (Ping timeout: 246 seconds)
2025-02-08 13:49:25 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-08 13:53:38 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 244 seconds)
2025-02-08 13:54:56 +0100tnt2(~Thunderbi@user/tnt1) tnt1
2025-02-08 13:55:14 +0100tnt1(~Thunderbi@user/tnt1) (Ping timeout: 252 seconds)
2025-02-08 13:57:54 +0100tnt1(~Thunderbi@user/tnt1) tnt1
2025-02-08 13:59:05 +0100euleritian(~euleritia@dynamic-176-006-130-143.176.6.pool.telefonica.de)
2025-02-08 13:59:19 +0100tnt2(~Thunderbi@user/tnt1) (Ping timeout: 244 seconds)
2025-02-08 14:07:30 +0100michalz(~michalz@185.246.207.203)
2025-02-08 14:13:19 +0100califax(~califax@user/califx) (Quit: ZNC 1.8.2 - https://znc.in)
2025-02-08 14:13:35 +0100califax(~califax@user/califx) califx
2025-02-08 14:25:01 +0100euouae(~euouae@user/euouae) (Remote host closed the connection)
2025-02-08 14:25:24 +0100acidjnk_new3(~acidjnk@p200300d6e7283f0539c4118aaa9fc29f.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2025-02-08 14:33:06 +0100zfnmxt(~zfnmxt@user/zfnmxt) (Remote host closed the connection)
2025-02-08 14:33:51 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2025-02-08 14:34:29 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2025-02-08 14:35:15 +0100Square2(~Square@user/square) Square
2025-02-08 14:36:58 +0100michalz(~michalz@185.246.207.203) (Remote host closed the connection)
2025-02-08 14:37:59 +0100misterfish(~misterfis@84.53.85.146) (Ping timeout: 268 seconds)
2025-02-08 14:38:09 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-08 14:42:32 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 252 seconds)
2025-02-08 14:44:14 +0100YoungFrog(~youngfrog@2a02:a03f:c9db:fc00:8f51:9cf5:7d14:1330) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in)
2025-02-08 14:44:34 +0100YoungFrog(~youngfrog@2a02:a03f:c9db:fc00:53f0:e7df:9f6c:feb2) youngfrog
2025-02-08 15:03:01 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Ping timeout: 248 seconds)
2025-02-08 15:08:33 +0100zfnmxt(~zfnmxt@user/zfnmxt) zfnmxt
2025-02-08 15:11:57 +0100weary-traveler(~user@user/user363627) user363627
2025-02-08 15:14:14 +0100m1dnight(~m1dnight@d8D861908.access.telenet.be) (Ping timeout: 244 seconds)
2025-02-08 15:19:47 +0100target_i(~target_i@user/target-i/x-6023099) target_i
2025-02-08 15:27:13 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-08 15:29:34 +0100monadic(~ethanmorg@82.18.82.103) sixfourtwelve
2025-02-08 15:31:50 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 265 seconds)
2025-02-08 15:35:36 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2025-02-08 15:41:27 +0100monadicsixfourtwelve
2025-02-08 15:41:42 +0100sixfourtwelve(~ethanmorg@82.18.82.103) (Remote host closed the connection)
2025-02-08 15:42:33 +0100sixfourtwelve(~ethanmorg@82.18.82.103)
2025-02-08 15:43:13 +0100sixfourtwelve(~ethanmorg@82.18.82.103) (Client Quit)
2025-02-08 15:45:49 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2025-02-08 15:46:02 +0100chexum(~quassel@gateway/tor-sasl/chexum) chexum
2025-02-08 15:46:26 +0100sixfourtwelve(~ethanmorg@82.18.82.103) sixfourtwelve
2025-02-08 15:48:19 +0100sixfourtwelve(~ethanmorg@82.18.82.103) (Client Quit)
2025-02-08 15:48:45 +0100sixfourtwelve(~ethanmorg@82.18.82.103) sixfourtwelve
2025-02-08 15:49:02 +0100sixfourtwelve(~ethanmorg@82.18.82.103) (Client Quit)
2025-02-08 15:50:23 +0100sixfourtwelve(~ethanmorg@82.18.82.103) sixfourtwelve
2025-02-08 15:50:31 +0100sixfourtwelve(~ethanmorg@82.18.82.103) (Client Quit)
2025-02-08 15:51:00 +0100sixfourtwelve(~ethanmorg@82.18.82.103)
2025-02-08 15:51:06 +0100sixfourtwelve(~ethanmorg@82.18.82.103) (Client Quit)
2025-02-08 15:51:28 +0100sixfourtwelve(~ethanmorg@82.18.82.103) sixfourtwelve
2025-02-08 15:51:33 +0100sixfourtwelve(~ethanmorg@82.18.82.103) (Client Quit)
2025-02-08 16:03:49 +0100Square2(~Square@user/square) (Ping timeout: 248 seconds)
2025-02-08 16:03:50 +0100Square(~Square@user/square) (Ping timeout: 244 seconds)
2025-02-08 16:16:18 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-08 16:20:58 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 268 seconds)
2025-02-08 16:25:00 +0100tnt1(~Thunderbi@user/tnt1) (Ping timeout: 265 seconds)
2025-02-08 16:25:12 +0100tnt2(~Thunderbi@user/tnt1) tnt1
2025-02-08 16:28:07 +0100tnt1(~Thunderbi@user/tnt1) tnt1
2025-02-08 16:28:59 +0100vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 268 seconds)
2025-02-08 16:29:21 +0100tnt2(~Thunderbi@user/tnt1) (Ping timeout: 248 seconds)
2025-02-08 16:30:16 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2025-02-08 16:30:39 +0100sixfourtwelve(~ethanmorg@82.18.82.103) sixfourtwelve
2025-02-08 16:31:00 +0100tnt2(~Thunderbi@user/tnt1) tnt1
2025-02-08 16:32:32 +0100tnt1(~Thunderbi@user/tnt1) (Ping timeout: 252 seconds)
2025-02-08 16:32:32 +0100tnt2tnt1
2025-02-08 16:42:24 +0100vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 265 seconds)
2025-02-08 16:44:05 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2025-02-08 16:51:37 +0100sixfourtwelve(~ethanmorg@82.18.82.103) (Quit: leaving)
2025-02-08 16:58:56 +0100vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 252 seconds)
2025-02-08 17:00:58 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2025-02-08 17:01:37 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2025-02-08 17:04:23 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-08 17:08:36 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 246 seconds)
2025-02-08 17:19:46 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2025-02-08 17:22:49 +0100euleritian(~euleritia@dynamic-176-006-130-143.176.6.pool.telefonica.de) (Ping timeout: 260 seconds)
2025-02-08 17:26:31 +0100Guest46(~Guest46@149.40.58.147)
2025-02-08 17:26:31 +0100ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2025-02-08 17:27:29 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 248 seconds)
2025-02-08 17:27:29 +0100ljdarj1ljdarj
2025-02-08 17:33:28 +0100tavare(~tavare@user/tavare) (Remote host closed the connection)
2025-02-08 17:36:49 +0100lxsameer(~lxsameer@Serene/lxsameer) (Ping timeout: 268 seconds)
2025-02-08 17:40:48 +0100Guest46(~Guest46@149.40.58.147) (Quit: Client closed)
2025-02-08 17:43:11 +0100Guest46(~Guest46@149.40.58.147)
2025-02-08 17:43:49 +0100acidjnk_new3(~acidjnk@p200300d6e7283f05f1993237be87f095.dip0.t-ipconnect.de) acidjnk
2025-02-08 17:48:46 +0100Guest46(~Guest46@149.40.58.147) (Quit: Client closed)
2025-02-08 17:49:50 +0100dolio(~dolio@130.44.140.168) (Quit: ZNC 1.9.1 - https://znc.in)
2025-02-08 17:51:17 +0100Someone48(~Someone@2405:201:e001:61c7:4c32:d8b0:e5e8:78c0)
2025-02-08 17:51:22 +0100 <Someone48> Hi haskellers!
2025-02-08 17:51:25 +0100dolio(~dolio@130.44.140.168) dolio
2025-02-08 17:52:07 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-02-08 17:55:36 +0100weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-02-08 17:55:56 +0100dolio(~dolio@130.44.140.168) (Client Quit)
2025-02-08 17:56:51 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 276 seconds)
2025-02-08 18:01:06 +0100dolio(~dolio@130.44.140.168) dolio
2025-02-08 18:01:16 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 252 seconds)
2025-02-08 18:01:22 +0100otbergsten(~otbergste@user/otbergsten) otbergsten
2025-02-08 18:03:51 +0100Someone48(~Someone@2405:201:e001:61c7:4c32:d8b0:e5e8:78c0) (Quit: Client closed)
2025-02-08 18:07:40 +0100hgolden(~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363) (Remote host closed the connection)
2025-02-08 18:11:47 +0100 <spew> hello
2025-02-08 18:27:09 +0100gutszu(~gutszu@187.85.204.144)
2025-02-08 18:39:51 +0100alfiee(~alfiee@user/alfiee) alfiee