2026/03/11

2026-03-11 00:03:30 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-03-11 00:14:23 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 00:14:23 +0100Sgeo(~Sgeo@user/sgeo) Sgeo
2026-03-11 00:19:07 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-03-11 00:30:10 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 00:35:08 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-03-11 00:37:58 +0100Tuplanolla(~Tuplanoll@88-114-89-88.elisa-laajakaista.fi) Tuplanolla
2026-03-11 00:45:57 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 00:49:05 +0100mmaruseacph2(~mihai@mihai.page) (Ping timeout: 265 seconds)
2026-03-11 00:49:30 +0100prdak(~Thunderbi@user/prdak) prdak
2026-03-11 00:49:36 +0100mmaruseacph2(~mihai@mihai.page) mmaruseacph2
2026-03-11 00:51:00 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-03-11 00:51:46 +0100emmanuelux(~em@user/emmanuelux) emmanuelux
2026-03-11 00:53:01 +0100bionade24(~quassel@server2.oscloud.info) (Quit: Apocalypse Incoming!)
2026-03-11 00:53:13 +0100bionade24(~quassel@server2.oscloud.info) bionade24
2026-03-11 00:54:09 +0100prdak(~Thunderbi@user/prdak) (Ping timeout: 255 seconds)
2026-03-11 01:17:18 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 01:19:59 +0100Square(~Square4@user/square) Square
2026-03-11 01:20:18 +0100Square2(~Square4@user/square) (Ping timeout: 246 seconds)
2026-03-11 01:22:08 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-03-11 01:22:23 +0100acidjnk_new(~acidjnk@p200300d6e700e547f0589d3e513577e0.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2026-03-11 01:32:43 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 01:37:48 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-03-11 01:48:29 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 01:55:14 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-03-11 01:59:49 +0100Googulator(~Googulato@2a01-036d-0106-0119-01e8-0aed-2fac-7c8a.pool6.digikabel.hu) (Quit: Client closed)
2026-03-11 02:00:04 +0100Googulator(~Googulato@2a01-036d-0106-0119-01e8-0aed-2fac-7c8a.pool6.digikabel.hu)
2026-03-11 02:02:19 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 258 seconds)
2026-03-11 02:06:04 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 02:10:43 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-03-11 02:15:24 +0100czan(~czan@user/mange) czan
2026-03-11 02:21:51 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 02:26:25 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-03-11 02:28:21 +0100AlexNoo_(~AlexNoo@5.139.232.240)
2026-03-11 02:29:50 +0100Alex_delenda_est(~al_test@178.34.160.184) (Ping timeout: 244 seconds)
2026-03-11 02:31:00 +0100AlexZenon(~alzenon@178.34.160.184) (Ping timeout: 264 seconds)
2026-03-11 02:32:12 +0100AlexNoo(~AlexNoo@178.34.160.184) (Ping timeout: 264 seconds)
2026-03-11 02:32:22 +0100califax(~califax@user/califx) (Remote host closed the connection)
2026-03-11 02:33:06 +0100Tuplanolla(~Tuplanoll@88-114-89-88.elisa-laajakaista.fi) (Ping timeout: 248 seconds)
2026-03-11 02:33:23 +0100califax(~califax@user/califx) califx
2026-03-11 02:34:26 +0100peterbecich(~Thunderbi@71.84.33.135) peterbecich
2026-03-11 02:34:49 +0100AlexZenon(~alzenon@5.139.232.240)
2026-03-11 02:37:38 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 02:41:03 +0100ChaiTRex(~ChaiTRex@user/chaitrex) ChaiTRex
2026-03-11 02:44:24 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-03-11 02:47:03 +0100img(~img@user/img) (Quit: ZNC 1.10.1 - https://znc.in)
2026-03-11 02:48:18 +0100img(~img@user/img) img
2026-03-11 02:55:40 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 03:00:54 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-03-11 03:02:49 +0100confusedalex_(~confuseda@user/confusedalex) confusedalex
2026-03-11 03:03:14 +0100confusedalex(~confuseda@user/confusedalex) (Ping timeout: 245 seconds)
2026-03-11 03:03:14 +0100confusedalex_confusedalex
2026-03-11 03:03:28 +0100czan`(~czan@user/mange) czan
2026-03-11 03:03:59 +0100czan(~czan@user/mange) (Killed (NickServ (GHOST command used by czan`)))
2026-03-11 03:04:05 +0100czan`czan
2026-03-11 03:04:59 +0100rekahsoft(~rekahsoft@76.67.111.168) (Read error: Connection reset by peer)
2026-03-11 03:07:06 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 258 seconds)
2026-03-11 03:11:28 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 03:15:49 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-03-11 03:22:26 +0100ChaiTRex(~ChaiTRex@user/chaitrex) ChaiTRex
2026-03-11 03:27:01 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 03:31:33 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-03-11 03:42:23 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 03:44:01 +0100pabs3Guest1123
2026-03-11 03:44:01 +0100Guest1123(~pabs3@user/pabs3) (Killed (uranium.libera.chat (Nickname regained by services)))
2026-03-11 03:44:18 +0100pabs3(~pabs3@user/pabs3) pabs3
2026-03-11 03:44:24 +0100Googulator(~Googulato@2a01-036d-0106-0119-01e8-0aed-2fac-7c8a.pool6.digikabel.hu) (Quit: Client closed)
2026-03-11 03:46:59 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-03-11 03:55:30 +0100peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 255 seconds)
2026-03-11 03:58:09 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 03:59:42 +0100stackdroid18(~stackdroi@user/stackdroid) ()
2026-03-11 04:02:24 +0100terrorjack(~terrorjac@2a01:4f8:271:2d98::2) (Quit: The Lounge - https://thelounge.chat)
2026-03-11 04:02:50 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-03-11 04:07:57 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2026-03-11 04:08:19 +0100ChaiTRex(~ChaiTRex@user/chaitrex) ChaiTRex
2026-03-11 04:10:08 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 04:11:18 +0100gabiruh(~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in)
2026-03-11 04:11:35 +0100gabiruh(~gabiruh@vps19177.publiccloud.com.br) gabiruh
2026-03-11 04:12:42 +0100rekahsoft(~rekahsoft@76.67.111.168) rekahsoft
2026-03-11 04:14:59 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-03-11 04:22:28 +0100rekahsoft(~rekahsoft@76.67.111.168) (Read error: Connection reset by peer)
2026-03-11 04:25:33 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 04:32:17 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-03-11 04:37:33 +0100rekahsoft(~rekahsoft@bras-base-orllon1103w-grc-20-76-67-111-168.dsl.bell.ca) rekahsoft
2026-03-11 04:37:44 +0100peterbecich(~Thunderbi@71.84.33.135) peterbecich
2026-03-11 04:41:12 +0100jmcantrell_(~weechat@user/jmcantrell) jmcantrell
2026-03-11 04:43:36 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 04:46:45 +0100Square(~Square4@user/square) (Ping timeout: 244 seconds)
2026-03-11 04:47:00 +0100tusko(~uwu@user/tusko) (Remote host closed the connection)
2026-03-11 04:48:11 +0100machinedgod(~machinedg@d172-219-48-230.abhsia.telus.net) (Ping timeout: 268 seconds)
2026-03-11 04:48:36 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-03-11 04:52:17 +0100tusko(~uwu@user/tusko) tusko
2026-03-11 04:54:42 +0100rekahsoft(~rekahsoft@bras-base-orllon1103w-grc-20-76-67-111-168.dsl.bell.ca) (Remote host closed the connection)
2026-03-11 04:55:00 +0100haritz(~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
2026-03-11 04:59:22 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 05:00:15 +0100jmcantrell_(~weechat@user/jmcantrell) (Ping timeout: 272 seconds)
2026-03-11 05:03:55 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-03-11 05:06:10 +0100pandeyan(~pandeyan@192-184-248-122.fiber.dynamic.sonic.net) (Ping timeout: 248 seconds)
2026-03-11 05:06:34 +0100terrorjack(~terrorjac@2a01:4f8:271:2d98::2) terrorjack
2026-03-11 05:12:46 +0100terrorjack(~terrorjac@2a01:4f8:271:2d98::2) (Quit: The Lounge - https://thelounge.chat)
2026-03-11 05:14:48 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 05:14:49 +0100peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 272 seconds)
2026-03-11 05:16:04 +0100terrorjack(~terrorjac@2a01:4f8:271:2d98::2) terrorjack
2026-03-11 05:19:44 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-03-11 05:30:35 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 05:35:27 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-03-11 05:36:19 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 264 seconds)
2026-03-11 05:51:27 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2026-03-11 05:58:03 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 244 seconds)
2026-03-11 06:00:50 +0100takuan(~takuan@d8D86B9E9.access.telenet.be)
2026-03-11 06:00:57 +0100arandombit(~arandombi@2a02:2455:8656:7100:49ae:b06e:43ec:7652)
2026-03-11 06:00:57 +0100arandombit(~arandombi@2a02:2455:8656:7100:49ae:b06e:43ec:7652) (Changing host)
2026-03-11 06:00:57 +0100arandombit(~arandombi@user/arandombit) arandombit
2026-03-11 06:02:10 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 06:05:28 +0100Gravifer(~Gravifer@user/Gravifer) Gravifer
2026-03-11 06:06:19 +0100arandombit(~arandombi@user/arandombit) (Ping timeout: 244 seconds)
2026-03-11 06:09:21 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2026-03-11 06:11:10 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 06:16:28 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2026-03-11 06:26:41 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 06:31:31 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-03-11 06:33:10 +0100peterbecich(~Thunderbi@71.84.33.135) peterbecich
2026-03-11 06:36:05 +0100anpad(~pandeyan@user/anpad) anpad
2026-03-11 06:37:34 +0100michalz(~michalz@185.246.207.221)
2026-03-11 06:39:28 +0100Gravifer(~Gravifer@user/Gravifer) (Ping timeout: 240 seconds)
2026-03-11 06:42:09 +0100divlamir(~divlamir@user/divlamir) (Read error: Connection reset by peer)
2026-03-11 06:42:25 +0100divlamir(~divlamir@user/divlamir) divlamir
2026-03-11 06:44:36 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 06:47:38 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2026-03-11 06:49:06 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-03-11 06:51:46 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 248 seconds)
2026-03-11 06:59:54 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 07:05:12 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-03-11 07:06:51 +0100arandombit(~arandombi@2a02:2455:8656:7100:cd70:20e7:538d:131c)
2026-03-11 07:06:51 +0100arandombit(~arandombi@2a02:2455:8656:7100:cd70:20e7:538d:131c) (Changing host)
2026-03-11 07:06:51 +0100arandombit(~arandombi@user/arandombit) arandombit
2026-03-11 07:12:08 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 07:16:00 +0100jreicher(~joelr@user/jreicher) (Quit: brb)
2026-03-11 07:16:25 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-03-11 07:26:24 +0100peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 246 seconds)
2026-03-11 07:26:43 +0100jreicher(~joelr@user/jreicher) jreicher
2026-03-11 07:27:30 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 07:32:50 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2026-03-11 07:42:47 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2026-03-11 07:43:16 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 07:47:15 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 255 seconds)
2026-03-11 07:48:12 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-03-11 07:53:45 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2026-03-11 07:59:04 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 08:03:46 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-03-11 08:10:21 +0100 <gentauro> Can `BangPatterns` be used in do-notation? Like: `do foo! <- readFile "bar.txt"`.
2026-03-11 08:10:44 +0100 <gentauro> ups
2026-03-11 08:10:57 +0100 <gentauro> should be `do !foo <- readFile "bar.txt"`
2026-03-11 08:10:59 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2026-03-11 08:13:08 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 08:15:17 +0100gentauroI mean it compiles. I just want to be use that the `bang` forces the `readFile` to go from lazy to strict
2026-03-11 08:15:49 +0100 <[exa]> gentauro: I'd suspect it only forces the first cons of the list
2026-03-11 08:16:16 +0100 <[exa]> there's some strict variant of readFile for this use
2026-03-11 08:16:24 +0100 <[exa]> (or use deepseq)
2026-03-11 08:18:38 +0100 <mesaoptimizer> What is the current set of recommended beginner's books to learn Haskell (that enables understanding of the following concepts: Functor, Applicatives, Monads, record syntax)? I find my lack of fluency with the following things to be getting in the way of growing the small set of personal applications I use that are written in Haskell
2026-03-11 08:19:28 +0100 <opqdonut> mesaoptimizer: I'm not sure what the community at large is recommending, but students have been giving good feedbakc on my open online course haskell.mooc.fi
2026-03-11 08:20:06 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-03-11 08:21:37 +0100 <mesaoptimizer> that's quite an interesting syllabus sequence, I might attempt that MOOC, and if I do, I'll give you feedback too :)
2026-03-11 08:21:38 +0100 <ski> iirc "Haskell: The Craft of Functional Programming" should cover that, apart from `Applicative'
2026-03-11 08:21:48 +0100 <ski> (by Simon Thompson)
2026-03-11 08:22:07 +0100 <ski> then there's stuff like
2026-03-11 08:22:12 +0100 <ski> @where Typeclassopedia
2026-03-11 08:22:13 +0100 <lambdabot> http://www.haskell.org/haskellwiki/Typeclassopedia
2026-03-11 08:22:50 +0100 <gentauro> [exa]: thx
2026-03-11 08:24:32 +0100 <[exa]> mesaoptimizer: the community LYAH is not bad if you know some coding already https://learnyouahaskell.github.io/
2026-03-11 08:24:50 +0100 <[exa]> gentauro: btw what's the usecase there? literally just forcing the file in?
2026-03-11 08:24:51 +0100 <mesaoptimizer> I read the first part of Graham Hutton's book two years ago btw
2026-03-11 08:25:36 +0100 <mesaoptimizer> I returned to it recently and didn't like it, and especially didn't appreciate the lack of a mention of record syntax anywhere, but perhaps that was after the publication of the 2016 book
2026-03-11 08:26:14 +0100 <mesaoptimizer> then again, Chris Allen and Julie Moronuki's https://haskellbook.com mentions record syntax (I did a search in the PDF) and it was published in 2017
2026-03-11 08:26:17 +0100 <gentauro> [exa]: last time I did this -> `LBS.readFile f >>= \bs -> LBS.length bs `seq` pure bs` :|
2026-03-11 08:26:37 +0100 <gentauro> I guess by forcing the length of the file and then returning the bytes
2026-03-11 08:26:39 +0100 <gentauro> :-\
2026-03-11 08:26:45 +0100humasect(~humasect@184.151.37.182) humasect
2026-03-11 08:27:23 +0100 <[exa]> gentauro: you might want to use the strict reader https://hackage-content.haskell.org/package/bytestring-0.12.2.0/docs/Data-ByteString.html#v:readFile and then thaw the string
2026-03-11 08:28:01 +0100 <[exa]> as in, `fromStrict <$> StrictBS.readFile`
2026-03-11 08:28:06 +0100 <gentauro> [exa]: use case is (files are small enough to be in mem) so yes, they need to be fully in mem
2026-03-11 08:28:19 +0100 <ski> preflex: xseen bitemyapp
2026-03-11 08:28:19 +0100 <preflex> Sorry, I haven't seen bitemyapp
2026-03-11 08:28:27 +0100 <mesaoptimizer> my current favorite resource has been https://leanpub.com/finding-success-in-haskell by Julie Moronuki and Chris Martin. It helped me ease into the use of Either and Maybe and `newtype` and introduced me to `Data.Coerce`
2026-03-11 08:28:32 +0100chele(~chele@user/chele) chele
2026-03-11 08:28:58 +0100 <dminuoso> If you're starting out Data.Coerce is most likely something you not should be wielding
2026-03-11 08:29:24 +0100 <mesaoptimizer> I did a PLT semantics course, its all right
2026-03-11 08:29:31 +0100 <gentauro> [exa]: yeah, my code import is -> `import qualified Data.ByteString.Lazy as LBS`. Kind of dump to import the `lazy` version if I want to do strict stuff
2026-03-11 08:30:02 +0100 <[exa]> well add the SBS and there you go
2026-03-11 08:30:02 +0100 <dminuoso> mesaoptimizer: I'm not sure how that module could help you on your path *shrugs*
2026-03-11 08:30:19 +0100 <gentauro> [exa]: got it
2026-03-11 08:30:25 +0100 <[exa]> :)
2026-03-11 08:31:11 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 08:31:23 +0100 <mesaoptimizer> dminuoso: hmm, perhaps you have a better idea than I do of how footgunny `Data.Coerce` is. I do know that I can't use it if I enable `Safe` language pragma
2026-03-11 08:31:27 +0100 <dminuoso> mesaoptimizer: It's not really about "understanding" coercions, just that they dont fit into *any* idiomatic code for when you bootstrap yourself into the language.
2026-03-11 08:31:56 +0100 <dminuoso> Oh it's not dangerous, but I'd be willing to say that almost any use of `coerce` in your first year is probably a smell
2026-03-11 08:32:15 +0100 <dminuoso> Explicit unpacking/repacking is just better most of the time.
2026-03-11 08:33:06 +0100 <mesaoptimizer> I see. I was using type applications with it
2026-03-11 08:33:31 +0100 <mesaoptimizer> `coerce` without enabling the `TypeApplication` extension seems almost unusable at least in my experience
2026-03-11 08:34:10 +0100 <dminuoso> Beginner trying to grasp Functor and Maybe already dabbling with TypeApplication :-)
2026-03-11 08:34:17 +0100 <dminuoso> This is how you know you're in #haskell
2026-03-11 08:34:38 +0100 <humasect> eh well. learn on the battlefield
2026-03-11 08:35:03 +0100 <[exa]> +1 for coercefield experience
2026-03-11 08:35:21 +0100 <[exa]> nothing explains that you don't want to use X better than using X
2026-03-11 08:35:51 +0100 <dminuoso> mesaoptimizer: But you're on a right track as far as coerce goes. If you're using it with TypeApplications it's as good as manual unpacking/repacking - albeit more unusual
2026-03-11 08:35:56 +0100 <mesaoptimizer> Functors are easy to wrap one's head around via just the type signature. Applicatives and Monad type signatures seem a bit harder to understand just by looking at it though
2026-03-11 08:35:57 +0100 <dminuoso> Forget what I said, then.
2026-03-11 08:36:03 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-03-11 08:36:12 +0100 <mesaoptimizer> dminuoso: I see, that's useful to know
2026-03-11 08:38:13 +0100arandombit(~arandombi@user/arandombit) (Ping timeout: 244 seconds)
2026-03-11 08:38:57 +0100 <dminuoso> mesaoptimizer: Some of the reasons that Applicative/Monad are difficult to understand are an obscure name and the fact that the pattern they abstract over something that has no "purpose" or "intent", just an observation that there's some things that just follow the same form and laws... I personally think that too much time is lost trying to focus around what they mean because it's almost entirely
2026-03-11 08:38:59 +0100 <dminuoso> irrelevant for learning haskell.
2026-03-11 08:39:25 +0100 <dminuoso> I'd be willing to bet you can learn Haskell just fine without understanding what Applicative or Monad "are"
2026-03-11 08:40:09 +0100 <humasect> yea; it clicks when it clicks
2026-03-11 08:40:26 +0100ski. o O ( "How to Replace Failure by a List of Successes: A method for exception handling, backtracking, and pattern matching in lazy functional languages" by Philip Wadler in 1985 at <http://www.rkrishnan.org/files/wadler-1985.pdf> )
2026-03-11 08:42:01 +0100 <dminuoso> mesaoptimizer: I mean most individual instances of Applicative/Monad are trivial enough to figure out in a minute or two as long as you have more than a week of programming experience - and that knowledge is likely enough to become competent in Haskell..
2026-03-11 08:42:46 +0100 <dminuoso> The biggest pedagogic mistake of Haskell.
2026-03-11 08:43:53 +0100 <humasect> depends where one starts after all
2026-03-11 08:44:07 +0100 <mesaoptimizer> I see. Sure, perhaps I figure it out via learning to be comfortable with actual instances of these type classes. I'll try that. I didn't have the misconception that it was directly related to the category theoretic concepts, of course
2026-03-11 08:44:19 +0100 <mesaoptimizer> nor that the laws necessarily hold if you define an instance of the classes
2026-03-11 08:44:44 +0100 <Axman6> There's a lot of external pressure to explain monads, because they're the big boogie man of Haskell people struggle to understand - but they'd be much better off starting to use things which are monads first, and then see that there's a common interface for them
2026-03-11 08:44:57 +0100 <opqdonut> yes, agreed
2026-03-11 08:46:48 +0100 <Axman6> It's basically how we taught things in the NICTA/Data61/System F FP course - here's a type, here's a function which uses that typew, implement the function that matches that type (hint there is 1/2/infinite ways to do that). Here's another type, here's a function's type: implement the function with that type... Hey, their types look really similar, can we do something with that?
2026-03-11 08:46:59 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 08:49:24 +0100Digit(~user@user/digit) (Ping timeout: 256 seconds)
2026-03-11 08:49:34 +0100Digitteknohippie(~user@user/digit) Digit
2026-03-11 08:49:37 +0100oskarw(~user@user/oskarw) oskarw
2026-03-11 08:51:50 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-03-11 08:53:38 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2026-03-11 08:53:56 +0100poscat0x04(~poscat@user/poscat) poscat
2026-03-11 08:54:43 +0100 <ski> mesaoptimizer : do note that most "monad tutorials" out there are bad (unhelpful, hinders comprehension)
2026-03-11 08:55:19 +0100poscat(~poscat@user/poscat) (Ping timeout: 245 seconds)
2026-03-11 08:55:20 +0100 <[exa]> +1000 ^
2026-03-11 08:55:41 +0100 <[exa]> who said that thing with "abstract complex are elucidated by throwing examples at them"
2026-03-11 08:59:39 +0100humasect(~humasect@184.151.37.182) (Quit: Leaving...)
2026-03-11 09:02:45 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 09:03:55 +0100sord937(~sord937@gateway/tor-sasl/sord937) sord937
2026-03-11 09:07:24 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-03-11 09:09:13 +0100 <probie> A monad is like a burrito, if you're a weirdo who uses smaller burritos as a filling for bigger burritos
2026-03-11 09:13:45 +0100humasect(~humasect@184.151.37.182) humasect
2026-03-11 09:14:08 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-11 09:16:42 +0100 <[exa]> burrito filling that spawns more burritos....y u m m y
2026-03-11 09:16:47 +0100 <Rembane> Gotta have all the burritos
2026-03-11 09:16:51 +0100 <Rembane> Infinite breakfast
2026-03-11 09:18:16 +0100 <[exa]> I find this useful analogy under-used at meetups
2026-03-11 09:18:27 +0100 <[exa]> people still do pizza and similar hard-to-wrap nonsense
2026-03-11 09:19:14 +0100 <[exa]> impure
2026-03-11 09:19:23 +0100 <Rembane> Hard agree
2026-03-11 09:19:36 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-03-11 09:21:06 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 244 seconds)
2026-03-11 09:21:39 +0100DigitteknohippieDigit
2026-03-11 09:24:04 +0100 <oskarw> probie: You forgot that you burritos are wraped on space and are send back to you on Earth
2026-03-11 09:24:16 +0100 <oskarw> *that your
2026-03-11 09:26:24 +0100tusko(~uwu@user/tusko) (Remote host closed the connection)
2026-03-11 09:26:39 +0100tusko(~uwu@user/tusko) tusko
2026-03-11 09:33:03 +0100humasect(~humasect@184.151.37.182) (Quit: Leaving...)
2026-03-11 09:34:39 +0100prdak(~Thunderbi@user/prdak) prdak
2026-03-11 09:38:58 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2026-03-11 09:39:11 +0100prdak(~Thunderbi@user/prdak) (Ping timeout: 244 seconds)
2026-03-11 09:39:22 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2026-03-11 09:44:04 +0100GdeVolpiano(~GdeVolpia@user/GdeVolpiano) (Quit: WeeChat 4.7.2)
2026-03-11 09:46:31 +0100emmanuelux(~em@user/emmanuelux) (Quit: bye)
2026-03-11 09:46:40 +0100GdeVolpiano(~GdeVolpia@user/GdeVolpiano) GdeVolpiano
2026-03-11 09:59:09 +0100acidjnk_new(~acidjnk@p200300d6e700e547e046c4ed9eed220a.dip0.t-ipconnect.de)
2026-03-11 10:07:30 +0100merijn(~merijn@77.242.116.146) merijn
2026-03-11 10:13:32 +0100lol__(~lol@2603:3016:1e01:b980:b5f8:9e30:8739:5bae)
2026-03-11 10:17:06 +0100lol_(~lol@2603:3016:1e01:b980:ddc8:52aa:8a26:613f) (Ping timeout: 248 seconds)
2026-03-11 10:17:38 +0100jcarpenter2(~lol@2603:3016:1e01:b980:ddc8:52aa:8a26:613f) (Ping timeout: 248 seconds)
2026-03-11 10:18:04 +0100jcarpenter2(~lol@2603:3016:1e01:b980:b5f8:9e30:8739:5bae)
2026-03-11 10:22:22 +0100anpad(~pandeyan@user/anpad) (Quit: ZNC 1.10.1 - https://znc.in)
2026-03-11 10:23:33 +0100vpan(~vpan@212.117.1.172)
2026-03-11 10:23:52 +0100vpanGuest4862
2026-03-11 10:24:08 +0100Guest4862vpan
2026-03-11 10:24:48 +0100anpad(~pandeyan@user/anpad) anpad
2026-03-11 10:32:06 +0100__monty__(~toonn@user/toonn) toonn
2026-03-11 10:32:44 +0100danza(~danza@user/danza) danza
2026-03-11 10:43:15 +0100dhil(~dhil@5.151.29.140) dhil
2026-03-11 10:52:15 +0100prdak(~Thunderbi@user/prdak) prdak
2026-03-11 10:53:07 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 264 seconds)
2026-03-11 10:55:06 +0100comerijn(~merijn@77.242.116.146) merijn
2026-03-11 10:58:34 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 268 seconds)
2026-03-11 11:30:47 +0100 <gentauro> oskarw: speaking of space, how do you handle (securely) space gamma rays that bit-flips memory
2026-03-11 11:31:02 +0100 <gentauro> you suddently have invalid state in Haskell which normally doesn't allow for invalid states
2026-03-11 11:36:53 +0100 <oskarw> gentauro: Haskell programs are protected by math gods, otherwise it would be impossible for _true_ pure functions
2026-03-11 11:37:50 +0100 <comerijn> gentauro: You buy ECC memory and stop thinking about it
2026-03-11 11:38:17 +0100 <comerijn> Assuming you can get a new mortgage to afford said memory
2026-03-11 11:38:21 +0100comerijnmerijn
2026-03-11 11:49:36 +0100somemathguy(~somemathg@user/somemathguy) (Ping timeout: 264 seconds)
2026-03-11 11:50:41 +0100acidjnk_new3(~acidjnk@p200300d6e700e503f643e9bea9c15385.dip0.t-ipconnect.de)
2026-03-11 11:53:43 +0100 <mesaoptimizer> Haskell doesn't have a defined operational semantics, but does it have a well-defined denotational semantics?
2026-03-11 11:54:04 +0100acidjnk_new(~acidjnk@p200300d6e700e547e046c4ed9eed220a.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2026-03-11 12:01:50 +0100fun-safe-math(~fun-safe-@97.115.234.213) ()
2026-03-11 12:02:51 +0100 <gentauro> comonad: even ECC mem can be impacted
2026-03-11 12:03:49 +0100 <mesaoptimizer> seems like https://ircbrowse.net/ is dead?
2026-03-11 12:03:59 +0100fun-safe-math(~fun-safe-@97.115.234.213) fun-safe-math
2026-03-11 12:04:05 +0100gentaurothx abailly for -> https://abailly.github.io/posts/a-modern-haskell-env.html (just copy/pasta and it worked. Now I get `red` if any error <3)
2026-03-11 12:04:52 +0100 <mesaoptimizer> oh there's a new logs link in the topic, never mind
2026-03-11 12:08:15 +0100Digit(~user@user/digit) (Ping timeout: 268 seconds)
2026-03-11 12:08:17 +0100Digitteknohippie(~user@user/digit) Digit
2026-03-11 12:11:59 +0100prdak(~Thunderbi@user/prdak) (Ping timeout: 245 seconds)
2026-03-11 12:12:30 +0100prdak(~Thunderbi@user/prdak) prdak
2026-03-11 12:16:54 +0100prdak(~Thunderbi@user/prdak) (Ping timeout: 246 seconds)
2026-03-11 12:18:22 +0100danz19215(~danza@user/danza) danza
2026-03-11 12:20:44 +0100danza(~danza@user/danza) (Ping timeout: 265 seconds)
2026-03-11 12:22:03 +0100somemathguy(~somemathg@user/somemathguy) somemathguy
2026-03-11 12:27:34 +0100vpan(~vpan@212.117.1.172) (Quit: Leaving.)
2026-03-11 12:29:54 +0100oskarw(~user@user/oskarw) (Remote host closed the connection)
2026-03-11 12:35:48 +0100Digitteknohippie(~user@user/digit) (Ping timeout: 246 seconds)
2026-03-11 12:38:55 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 245 seconds)
2026-03-11 12:43:41 +0100oskarw(~user@user/oskarw) oskarw
2026-03-11 12:48:49 +0100yin(~zero@user/zero) (Remote host closed the connection)
2026-03-11 12:49:51 +0100prdak(~Thunderbi@user/prdak) prdak
2026-03-11 12:49:51 +0100prdak(~Thunderbi@user/prdak) (Read error: Connection reset by peer)
2026-03-11 12:50:05 +0100prdak(~Thunderbi@user/prdak) prdak
2026-03-11 12:50:51 +0100yin(~zero@user/zero) zero
2026-03-11 12:59:33 +0100Digitteknohippie(~user@user/digit) Digit
2026-03-11 13:01:43 +0100danz19215(~danza@user/danza) (Remote host closed the connection)
2026-03-11 13:04:25 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2026-03-11 13:29:32 +0100DigitteknohippieDigit
2026-03-11 13:33:00 +0100adamCS(~adamCS@70.19.85.77) (Remote host closed the connection)
2026-03-11 13:34:41 +0100FANTOM(~fantom@90.251.214.54) (Ping timeout: 265 seconds)
2026-03-11 13:34:52 +0100adamCS(~adamCS@70.19.85.77) adamCS
2026-03-11 13:40:10 +0100FANTOM(~fantom@90.251.214.54)
2026-03-11 13:41:31 +0100ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds)
2026-03-11 14:01:38 +0100czan(~czan@user/mange) (Ping timeout: 248 seconds)
2026-03-11 14:06:08 +0100AlexNoo_AlexNoo
2026-03-11 14:07:06 +0100Alex_delenda_est(~al_test@5.139.232.240)
2026-03-11 14:10:10 +0100lortabac(~lortabac@mx1.fracta.dev) (Ping timeout: 245 seconds)
2026-03-11 14:11:07 +0100lortabac(~lortabac@mx1.fracta.dev) lortabac
2026-03-11 14:17:52 +0100somemathguy(~somemathg@user/somemathguy) (Quit: WeeChat 4.1.1)
2026-03-11 14:20:06 +0100sam113101(~sam@modemcable200.189-202-24.mc.videotron.ca) (Read error: Connection reset by peer)
2026-03-11 14:20:29 +0100sam113101(~sam@modemcable200.189-202-24.mc.videotron.ca) sam113101
2026-03-11 14:24:44 +0100qqq(~qqq@185.54.22.246)
2026-03-11 14:34:49 +0100arandombit(~arandombi@2a02:2455:8656:7100:cd70:20e7:538d:131c)
2026-03-11 14:34:49 +0100arandombit(~arandombi@2a02:2455:8656:7100:cd70:20e7:538d:131c) (Changing host)
2026-03-11 14:34:49 +0100arandombit(~arandombi@user/arandombit) arandombit
2026-03-11 14:45:38 +0100Guest34(~Guest17@37.30.32.80)
2026-03-11 14:47:34 +0100 <Guest34> Make me a haskell script to talk with GPT-4
2026-03-11 14:52:36 +0100 <probie> Guest34: What features do you want?
2026-03-11 14:53:58 +0100Guest34(~Guest17@37.30.32.80) (Quit: Client closed)
2026-03-11 14:57:37 +0100qqq(~qqq@185.54.22.246) (Remote host closed the connection)
2026-03-11 15:07:59 +0100qqq(~qqq@185.54.22.246)
2026-03-11 15:08:48 +0100prdak(~Thunderbi@user/prdak) (Ping timeout: 264 seconds)
2026-03-11 15:09:22 +0100mud(~mud@user/kadoban) (Ping timeout: 248 seconds)
2026-03-11 15:09:27 +0100kadobanana(~mud@user/kadoban) kadoban
2026-03-11 15:16:55 +0100traxex(traxex@user/traxex) traxex
2026-03-11 15:25:52 +0100Alex_delenda_est(~al_test@5.139.232.240) (Ping timeout: 244 seconds)
2026-03-11 15:35:20 +0100machinedgod(~machinedg@d172-219-48-230.abhsia.telus.net) machinedgod
2026-03-11 15:39:42 +0100prdak(~Thunderbi@user/prdak) prdak
2026-03-11 15:51:01 +0100Square(~Square4@user/square) Square
2026-03-11 15:54:01 +0100haritz(~hrtz@140.228.70.141)
2026-03-11 15:54:01 +0100haritz(~hrtz@140.228.70.141) (Changing host)
2026-03-11 15:54:01 +0100haritz(~hrtz@user/haritz) haritz
2026-03-11 15:58:20 +0100 <tomsmeding> that sounds like a prompt you can give to GPT-4 :p
2026-03-11 16:01:39 +0100kuribas(~user@2a02-1810-2825-6000-4935-dc75-5b6f-4493.ip6.access.telenet.be) kuribas
2026-03-11 16:17:51 +0100 <dminuoso> mesaoptimizer: Well, in reality it only has operational semantics as defined by whatever GHC does.
2026-03-11 16:18:52 +0100 <dminuoso> The Haskell reports did some very vague attempts of denotational semantics, but in reality that term defines mathematical rigor - something nobody has ever done.
2026-03-11 16:20:22 +0100skinkitten(~skinkitte@user/skinkitten) skinkitten
2026-03-11 16:26:10 +0100 <tomsmeding> dminuoso: what do you mean with "defines mathematical rigor"?
2026-03-11 16:26:18 +0100 <dminuoso> Some researchers have published papers on this subject, but they were all to just subsets of GHC haskell. A related problem would be defining what Haskell even is in 2026 - what extensions should be included in a full denotational semantic of Haskell.
2026-03-11 16:27:02 +0100 <tomsmeding> I suspect that all that people actually care about is a semantics of Haskell98 without the FFI
2026-03-11 16:27:40 +0100 <tomsmeding> the rest is going to be either syntactic sugar or complex, ad-hoc stuff that doesn't enlighten anyone about anything
2026-03-11 16:28:20 +0100 <dminuoso> Dunno, I can think of a few extensions that have meaning like GADTs
2026-03-11 16:28:49 +0100 <tomsmeding> hm, fair point
2026-03-11 16:29:29 +0100 <tomsmeding> in operational semantics you can exclude GADTs because you don't need types at runtime, but in denotational semantics the point is to retain types
2026-03-11 16:30:15 +0100 <dminuoso> tomsmeding: What about things like all the type wizardry (TypeInType, TyFams, etc)?
2026-03-11 16:31:00 +0100 <tomsmeding> ... I guess that types are actually relevant, even in operational semantics, depending on how you model type class resolution
2026-03-11 16:31:30 +0100 <tomsmeding> yes you're right, for denotational semantics all that's important
2026-03-11 16:31:45 +0100 <tomsmeding> I was somehow only thinking of LambdaCase etc., which are not
2026-03-11 16:32:32 +0100prdak1(~Thunderbi@user/prdak) prdak
2026-03-11 16:32:52 +0100 <dminuoso> I think a more accurate phrasing would be "It is possible to attach denotational semantics to a subset of Haskell", rather than saying that we *have* them (which might suggest that the language was signed ontop of it)
2026-03-11 16:33:14 +0100 <tomsmeding> isn't it possible to attach denotational semantics to anything?
2026-03-11 16:33:20 +0100 <tomsmeding> perhaps "useful denotational semantics"
2026-03-11 16:33:41 +0100 <tomsmeding> like, one that actually models interesting structure of the language
2026-03-11 16:34:01 +0100 <tomsmeding> in terms of "relatively" simple categorical constructrs
2026-03-11 16:35:39 +0100 <tomsmeding> s/trs$/ts/
2026-03-11 16:35:42 +0100 <dminuoso> It seems rather like a useful vehicle to do some research, rather than defining a language.
2026-03-11 16:36:19 +0100prdak(~Thunderbi@user/prdak) (Ping timeout: 264 seconds)
2026-03-11 16:36:20 +0100prdak1prdak
2026-03-11 16:36:29 +0100 <tomsmeding> AFAIK denotational semantics also tends not to say anything about operational concerns such as order of evaluation
2026-03-11 16:36:39 +0100 <dminuoso> Well, that depends on you I think.
2026-03-11 16:36:52 +0100 <dminuoso> Nothing stops you from imposing an order of some kind to your denotation.
2026-03-11 16:36:52 +0100 <tomsmeding> while in a language specification, you definitely want to know it if the language deviates from call-by-value
2026-03-11 16:36:56 +0100 <tomsmeding> right
2026-03-11 16:37:46 +0100 <tomsmeding> but in that case, "has haskell a denotational semantics" should just be answered with "for what purpose"
2026-03-11 16:38:13 +0100 <tomsmeding> there being multiple levels of representation accuracy, and probably also multiple distinct designs at the same level
2026-03-11 16:48:26 +0100skinkitten(~skinkitte@user/skinkitten) (Quit: Client closed)
2026-03-11 16:56:15 +0100prdak(~Thunderbi@user/prdak) (Read error: Connection reset by peer)
2026-03-11 16:56:21 +0100prdak1(~Thunderbi@user/prdak) prdak
2026-03-11 16:58:42 +0100prdak1prdak
2026-03-11 17:00:50 +0100Alex_delenda_est(~al_test@5.139.232.240)
2026-03-11 17:01:59 +0100Enrico63(~Enrico63@host-82-61-84-117.retail.telecomitalia.it) Enrico63
2026-03-11 17:02:26 +0100tromp(~textual@2001:1c00:3487:1b00:2807:b44c:c102:bda9)
2026-03-11 17:03:37 +0100dolio(~dolio@130.44.140.168) (Quit: ZNC 1.10.1 - https://znc.in)
2026-03-11 17:05:29 +0100madresch(~Thunderbi@user/madresch) madresch
2026-03-11 17:09:06 +0100dolio(~dolio@130.44.140.168) dolio
2026-03-11 17:10:33 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 246 seconds)
2026-03-11 17:15:52 +0100prdak1(~Thunderbi@user/prdak) prdak
2026-03-11 17:16:35 +0100prdak1(~Thunderbi@user/prdak) (Read error: Connection reset by peer)
2026-03-11 17:17:24 +0100prdak(~Thunderbi@user/prdak) (Ping timeout: 245 seconds)
2026-03-11 17:19:34 +0100prdak(~Thunderbi@user/prdak) prdak
2026-03-11 17:22:22 +0100humasect(~humasect@184.151.37.182) humasect
2026-03-11 17:23:36 +0100PHO`(~pho@akari.cielonegro.org) (Ping timeout: 268 seconds)
2026-03-11 17:28:24 +0100troydm(~troydm@user/troydm) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset)
2026-03-11 17:28:31 +0100PHO`(~pho@akari.cielonegro.org) PHO`
2026-03-11 17:40:42 +0100humasect(~humasect@184.151.37.182) (Read error: Connection reset by peer)
2026-03-11 17:40:46 +0100 <tomsmeding> can the guy in Bulgaria (?) with IP 195.178.110.33 stop spamming ircbrowse
2026-03-11 17:42:31 +0100 <tomsmeding> ircbrowse is not a fast server and you're DOSing the service for others; when you crawl a site, be courteous and put delays between your requests
2026-03-11 17:48:13 +0100CloneOfNone(~CloneOfNo@user/CloneOfNone) CloneOfNone
2026-03-11 17:49:30 +0100CloneOfNone_(~CloneOfNo@user/CloneOfNone) (Ping timeout: 268 seconds)
2026-03-11 17:56:27 +0100 <EvanR> see if you can mail him a zipdrive with the whole log on it
2026-03-11 17:58:58 +0100 <tomsmeding> mail to what address? I only have an IP :p
2026-03-11 17:59:54 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net)
2026-03-11 18:00:20 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2026-03-11 18:00:42 +0100kuribas(~user@2a02-1810-2825-6000-4935-dc75-5b6f-4493.ip6.access.telenet.be) (Remote host closed the connection)
2026-03-11 18:03:08 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 252 seconds)
2026-03-11 18:10:49 +0100euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2026-03-11 18:10:55 +0100 <gentauro> `LambdaCase` are nice when you work with Functors, as in `( \case …) <$> …`
2026-03-11 18:13:15 +0100prdak(~Thunderbi@user/prdak) (Quit: prdak)
2026-03-11 18:15:06 +0100 <tomsmeding> gentauro: you might try `_ <&> \case _` too
2026-03-11 18:17:11 +0100 <haskellbridge> <ijouw> I quite like that style.
2026-03-11 18:20:28 +0100euphores(~SASL_euph@user/euphores) euphores
2026-03-11 18:21:08 +0100 <EvanR> given how unsemantical most programming languages are I find it hilarious how hard some people want to claim haskell has no semantics either
2026-03-11 18:21:51 +0100 <EvanR> nothing means anything, your words actually don't mean what you said, etc xD
2026-03-11 18:22:08 +0100 <EvanR> I hereby undefined everything
2026-03-11 18:22:23 +0100 <tomsmeding> @undefine
2026-03-11 18:22:23 +0100 <lambdabot> Undefined.
2026-03-11 18:22:26 +0100 <EvanR> ^
2026-03-11 18:26:50 +0100 <mauke> @define semantics
2026-03-11 18:26:50 +0100 <lambdabot> Parse failed: TemplateHaskell language extension is not enabled. Please add ...
2026-03-11 18:27:05 +0100 <tomsmeding> O.o
2026-03-11 18:27:16 +0100peterbecich(~Thunderbi@71.84.33.135) peterbecich
2026-03-11 18:27:38 +0100 <mauke> please. please add.
2026-03-11 18:27:51 +0100 <tomsmeding> @define {-# LANGUAGE Template Haskell #-}
2026-03-11 18:27:51 +0100 <lambdabot> Parse failed: Parse error: Haskell
2026-03-11 18:27:57 +0100 <tomsmeding> @define {-# LANGUAGE TemplateHaskell #-}
2026-03-11 18:27:57 +0100 <lambdabot> Defined.
2026-03-11 18:28:02 +0100 <tomsmeding> @define semantics
2026-03-11 18:28:02 +0100 <lambdabot> Parse failed: TemplateHaskell language extension is not enabled. Please add ...
2026-03-11 18:28:05 +0100 <tomsmeding> lies
2026-03-11 18:36:19 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Quit: Leaving)
2026-03-11 18:36:48 +0100wootehfoot(~wootehfoo@user/wootehfoot) wootehfoot
2026-03-11 18:37:44 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Remote host closed the connection)
2026-03-11 18:38:34 +0100 <int-e> tomsmeding: sure, but which one of these is the lie?
2026-03-11 18:38:39 +0100 <int-e> @define {- -}
2026-03-11 18:38:40 +0100 <lambdabot> Defined.
2026-03-11 18:38:53 +0100dolio(~dolio@130.44.140.168) (Ping timeout: 252 seconds)
2026-03-11 18:38:53 +0100 <tomsmeding> > [| 42 |]
2026-03-11 18:38:54 +0100 <lambdabot> Syntax error on [| 42 |]
2026-03-11 18:38:54 +0100 <lambdabot> In the Template Haskell quotation [| 42 |]
2026-03-11 18:39:12 +0100 <tomsmeding> the first one, apparently
2026-03-11 18:40:12 +0100 <int-e> tomsmeding: https://github.com/lambdabot/lambdabot/blob/master/lambdabot-haskell-plugins/src/Lambdabot/Plugin/… -- guess where pragmas live (next function after this one has a spoiler)
2026-03-11 18:40:50 +0100dolio(~dolio@130.44.140.168) dolio
2026-03-11 18:41:26 +0100 <tomsmeding> in the... exports? Or is that variable just misnamed?
2026-03-11 18:42:33 +0100 <int-e> it's misnamed
2026-03-11 18:42:49 +0100 <int-e> exports live in the first field
2026-03-11 18:43:30 +0100 <tomsmeding> I like that the hint was a function called "moduleProblems"
2026-03-11 18:47:54 +0100 <int-e> Anyway, this function is responsible for not adding new pragmas with @let. Which IMHO is the sane thing for lambdabot to do :)
2026-03-11 18:48:41 +0100 <tomsmeding> probably
2026-03-11 18:49:06 +0100madresch(~Thunderbi@user/madresch) (Ping timeout: 248 seconds)
2026-03-11 18:50:26 +0100comonad(~comonad@p200300d02722ae00dce4ce9451b59974.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2026-03-11 18:50:52 +0100 <gentauro> tomsmeding: will do
2026-03-11 18:52:27 +0100comonad(~comonad@p200300d02725570019adcc7019a0b087.dip0.t-ipconnect.de)
2026-03-11 18:52:36 +0100tt1231607019(~tt1231@2603:6010:8700:4a81:a4f6:acff:fe95:3803) (Ping timeout: 264 seconds)
2026-03-11 18:53:05 +0100danza(~danza@user/danza) danza
2026-03-11 18:55:52 +0100peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 268 seconds)
2026-03-11 19:00:20 +0100tt1231607019(~tt1231@2603:6010:8700:4a81:a4f6:acff:fe95:3803) tt1231
2026-03-11 19:00:42 +0100Googulator(~Googulato@2a01-036d-0106-0119-5d77-22bc-bcbf-a57b.pool6.digikabel.hu)
2026-03-11 19:07:26 +0100Tuplanolla(~Tuplanoll@88-114-89-88.elisa-laajakaista.fi) Tuplanolla
2026-03-11 19:08:40 +0100dhil(~dhil@5.151.29.140) (Ping timeout: 265 seconds)
2026-03-11 19:09:02 +0100danza(~danza@user/danza) (Remote host closed the connection)
2026-03-11 19:09:46 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2026-03-11 19:10:15 +0100chele(~chele@user/chele) (Remote host closed the connection)
2026-03-11 19:18:27 +0100codolio(~dolio@130.44.140.168) dolio
2026-03-11 19:18:46 +0100wootehfoot(~wootehfoo@user/wootehfoot) wootehfoot
2026-03-11 19:18:54 +0100dolio(~dolio@130.44.140.168) (Ping timeout: 255 seconds)
2026-03-11 19:19:54 +0100gmg(~user@user/gehmehgeh) (Quit: Leaving)