2026/03/19

2026-03-19 00:06:01 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2026-03-19 00:06:01 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 00:10:13 +0000tri(~tri@ool-44c70bcb.dyn.optonline.net)
2026-03-19 00:10:44 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-03-19 00:14:48 +0000tri(~tri@ool-44c70bcb.dyn.optonline.net) (Ping timeout: 264 seconds)
2026-03-19 00:21:21 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 00:23:07 +0000peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 264 seconds)
2026-03-19 00:25:35 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-03-19 00:36:44 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 00:44:33 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-03-19 00:55:26 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 00:59:21 +0000oskarw(~user@user/oskarw) (Read error: Connection reset by peer)
2026-03-19 01:01:32 +0000xff0x(~xff0x@2405:6580:b080:900:d964:dd73:e5b:abe) (Ping timeout: 244 seconds)
2026-03-19 01:02:10 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-03-19 01:02:19 +0000karenw(~karenw@user/karenw) karenw
2026-03-19 01:05:27 +0000lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2026-03-19 01:10:50 +0000peterbecich(~Thunderbi@71.84.33.135) peterbecich
2026-03-19 01:11:52 +0000craunts795335385(~craunts@152.32.99.2) (Quit: The Lounge - https://thelounge.chat)
2026-03-19 01:13:29 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 01:13:29 +0000craunts795335385(~craunts@152.32.99.2)
2026-03-19 01:18:24 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-03-19 01:22:37 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2026-03-19 01:25:13 +0000vetkat(~vetkat@user/vetkat) vetkat
2026-03-19 01:28:51 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 01:29:38 +0000tri(~tri@ool-44c70bcb.dyn.optonline.net)
2026-03-19 01:30:37 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 258 seconds)
2026-03-19 01:33:05 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-03-19 01:34:05 +0000tri(~tri@ool-44c70bcb.dyn.optonline.net) (Ping timeout: 244 seconds)
2026-03-19 01:40:29 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 268 seconds)
2026-03-19 01:44:00 +0000tri(~tri@ool-44c70bcb.dyn.optonline.net)
2026-03-19 01:44:14 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 01:47:23 +0000Googulator(~Googulato@2a01-036d-0106-2025-8806-aadb-981f-aee0.pool6.digikabel.hu) (Quit: Client closed)
2026-03-19 01:47:40 +0000Googulator(~Googulato@2a01-036d-0106-2025-8806-aadb-981f-aee0.pool6.digikabel.hu)
2026-03-19 01:48:55 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-03-19 01:55:25 +0000arandombit(~arandombi@2a02:2455:8656:7100:881:bbf5:9bc2:908)
2026-03-19 01:55:25 +0000arandombit(~arandombi@2a02:2455:8656:7100:881:bbf5:9bc2:908) (Changing host)
2026-03-19 01:55:25 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-03-19 01:55:45 +0000comonad(~comonad@p200300d02725570019adcc7019a0b087.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2026-03-19 01:57:31 +0000peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 276 seconds)
2026-03-19 01:57:55 +0000comonad(~comonad@p200300d02717df00adc247ef70bd7367.dip0.t-ipconnect.de)
2026-03-19 01:59:37 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 01:59:57 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2026-03-19 02:03:55 +0000tromp(~textual@2001:1c00:3487:1b00:1807:41fe:bcf2:17ca) (Ping timeout: 245 seconds)
2026-03-19 02:04:04 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-03-19 02:15:00 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 02:19:57 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2026-03-19 02:23:24 +0000tremon(~tremon@83.80.159.219) (Quit: getting boxed in)
2026-03-19 02:29:05 +0000She(haveident@libera/staff/she/her) (Quit: Either upgrades, or the world's ending.)
2026-03-19 02:30:04 +0000She(haveident@libera/staff/she/her) She
2026-03-19 02:30:23 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 02:36:50 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-03-19 02:44:24 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 246 seconds)
2026-03-19 02:47:24 +0000rekahsoft(~rekahsoft@bras-base-orllon1103w-grc-20-76-67-111-168.dsl.bell.ca) (Remote host closed the connection)
2026-03-19 02:53:33 +0000merijn(~merijn@62.45.136.136) merijn
2026-03-19 02:58:34 +0000merijn(~merijn@62.45.136.136) (Ping timeout: 268 seconds)
2026-03-19 03:03:50 +0000beagles(~beagles@142.163.133.95) (Remote host closed the connection)
2026-03-19 03:04:09 +0000beagles(~beagles@142.163.133.95) beagles
2026-03-19 03:04:31 +0000juri_(~juri@217-114-215-140.pool.ovpn.com) (Ping timeout: 264 seconds)
2026-03-19 03:05:53 +0000juri_(~juri@217-114-215-140.pool.ovpn.com) juri_
2026-03-19 03:08:52 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 03:09:38 +0000 <chromoblob> how could i have discovered haskell-links.org ?
2026-03-19 03:13:31 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-03-19 03:15:14 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2026-03-19 03:16:43 +0000Googulator(~Googulato@2a01-036d-0106-2025-8806-aadb-981f-aee0.pool6.digikabel.hu) (Quit: Client closed)
2026-03-19 03:16:59 +0000Googulator(~Googulato@2a01-036d-0106-2025-8806-aadb-981f-aee0.pool6.digikabel.hu)
2026-03-19 03:24:15 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 03:28:53 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-03-19 03:39:37 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 03:43:54 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-03-19 03:49:21 +0000pipsquak-bird(~g@c-71-235-170-34.hsd1.ma.comcast.net)
2026-03-19 03:49:30 +0000 <pipsquak-bird> is there a os in haskell?
2026-03-19 03:49:33 +0000 <pipsquak-bird> any browser?
2026-03-19 03:49:40 +0000 <pipsquak-bird> happstack.com looks awesome
2026-03-19 03:52:31 +0000 <geekosaur> https://wiki.haskell.org/House
2026-03-19 03:52:43 +0000Googulator74(~Googulato@84-236-126-177.pool.digikabel.hu)
2026-03-19 03:52:48 +0000 <geekosaur> which mostly proved that Haskell's a lousy language for writing operating systems ☺
2026-03-19 03:54:36 +0000 <haskellbridge> <sm> a good question chromoblob. You might have caught my original announcements, or you might have followed one of my mentions of it or of Haskell Map in chat. I don't think it ever got linked on haskell.org
2026-03-19 03:54:58 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 03:55:58 +0000Googulator(~Googulato@2a01-036d-0106-2025-8806-aadb-981f-aee0.pool6.digikabel.hu) (Ping timeout: 240 seconds)
2026-03-19 03:59:16 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-03-19 04:10:20 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 04:14:42 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-03-19 04:22:00 +0000chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 244 seconds)
2026-03-19 04:22:43 +0000chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2026-03-19 04:24:09 +0000traxex(traxex@user/traxex) (Ping timeout: 248 seconds)
2026-03-19 04:24:39 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 258 seconds)
2026-03-19 04:25:43 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 04:30:25 +0000tri(~tri@ool-44c70bcb.dyn.optonline.net) (Remote host closed the connection)
2026-03-19 04:31:57 +0000peterbecich(~Thunderbi@71.84.33.135) peterbecich
2026-03-19 04:32:05 +0000chromoblob(~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
2026-03-19 04:32:20 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-03-19 04:32:26 +0000chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2026-03-19 04:39:20 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 04:40:37 +0000 <Axman6> technically seL4 is built using Haskell as an intermediate language between Isabelle/HOL and C
2026-03-19 04:43:11 +0000somemathguy(~somemathg@user/somemathguy) (Quit: WeeChat 4.1.1)
2026-03-19 04:44:07 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-03-19 04:46:28 +0000 <pipsquak-bird> can I clone soemthign liek myth 2 in haskell?
2026-03-19 04:46:34 +0000tri(~tri@ool-44c70bcb.dyn.optonline.net)
2026-03-19 04:46:46 +0000 <pipsquak-bird> Can I clone something like Myth 2 Soulblighter in Haskell?
2026-03-19 04:47:16 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2026-03-19 04:51:24 +0000tri(~tri@ool-44c70bcb.dyn.optonline.net) (Ping timeout: 264 seconds)
2026-03-19 04:54:43 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 04:55:12 +0000haritz(~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
2026-03-19 04:56:14 +0000 <probie> There's no technical reason you can't, although you might have to worry about copyright infringement
2026-03-19 04:56:30 +0000 <pipsquak-bird> hmmm
2026-03-19 04:56:45 +0000 <pipsquak-bird> like can the computer coo ordinate a bunch of enemies ona map
2026-03-19 04:56:56 +0000 <pipsquak-bird> and have them fight battles absed on iven damage n speed
2026-03-19 04:57:00 +0000 <pipsquak-bird> rotate 360
2026-03-19 04:57:09 +0000 <pipsquak-bird> simualte bombs and lghtnight bolts
2026-03-19 04:57:12 +0000 <pipsquak-bird> hmmm
2026-03-19 04:58:31 +0000wickedjargon(~user@s0106f89e28d5699a.vc.shawcable.net) wickedjargon
2026-03-19 04:59:12 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-03-19 05:02:58 +0000 <probie> pipsquak-bird: Pretty much any general purpose language (including Haskell) can do those things
2026-03-19 05:05:10 +0000peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 245 seconds)
2026-03-19 05:10:05 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 05:14:42 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-03-19 05:17:38 +0000 <pipsquak-bird> its magic to me
2026-03-19 05:17:39 +0000 <pipsquak-bird> lol
2026-03-19 05:17:43 +0000 <pipsquak-bird> I can kinda imagien in math
2026-03-19 05:17:48 +0000 <pipsquak-bird> keeping track variables
2026-03-19 05:17:55 +0000 <pipsquak-bird> and displaying dead limbs if overhit points
2026-03-19 05:18:09 +0000 <pipsquak-bird> wow I am playing annoying level im outgunned n cant quite get it right
2026-03-19 05:20:55 +0000 <probie> Has anyone tried writing an incremental parser library in Haskell? Incremental in the "tree-sitter" sense [updates can occur anywhere], not the "attoparsec" sense [feed more input]
2026-03-19 05:24:55 +0000 <pipsquak-bird> how can happstack.com get even better?
2026-03-19 05:25:00 +0000 <pipsquak-bird> web domiantion!
2026-03-19 05:25:27 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 05:30:05 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-03-19 05:40:21 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 05:43:02 +0000michalz(~michalz@185.246.207.217)
2026-03-19 05:45:24 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-03-19 05:54:00 +0000 <Axman6> happstack is quite old, and I'm not sure there are many projects using it these days.
2026-03-19 05:54:59 +0000Square2(~Square4@user/square) Square
2026-03-19 05:55:03 +0000 <Axman6> I like a lot of the ideas from acid-state, but would love to see it modernised (there's been a few projects which try to do it but I don't think any have taken off)
2026-03-19 05:55:43 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 06:00:55 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2026-03-19 06:02:34 +0000 <pipsquak-bird> lisp-clobber might be a model that works
2026-03-19 06:02:38 +0000 <pipsquak-bird> log updates
2026-03-19 06:02:45 +0000 <pipsquak-bird> no snapshot just log
2026-03-19 06:02:48 +0000 <pipsquak-bird> pull plug
2026-03-19 06:02:53 +0000 <pipsquak-bird> read in log
2026-03-19 06:02:56 +0000 <pipsquak-bird> back uptodate?
2026-03-19 06:06:20 +0000 <pipsquak-bird> lisp ISSR is interesting too
2026-03-19 06:06:50 +0000 <pipsquak-bird> tiny javscipt thign to tell server what is being request, server makes html update....page only updates bit of hyml that changed...
2026-03-19 06:06:57 +0000 <pipsquak-bird> I need to learn so much
2026-03-19 06:06:58 +0000 <pipsquak-bird> no time!
2026-03-19 06:11:06 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 06:13:30 +0000tri(~tri@ool-44c70bcb.dyn.optonline.net)
2026-03-19 06:15:43 +0000 <pipsquak-bird> is there a mouse friendly icewm like wm for freebsd/linux?
2026-03-19 06:15:50 +0000 <pipsquak-bird> in haskell?
2026-03-19 06:17:54 +0000tri(~tri@ool-44c70bcb.dyn.optonline.net) (Ping timeout: 248 seconds)
2026-03-19 06:17:54 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-03-19 06:29:08 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 06:31:17 +0000 <mauke> the only haskell window manager I know of is xmonad
2026-03-19 06:33:53 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-03-19 06:41:21 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 06:46:00 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-03-19 06:50:39 +0000gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2026-03-19 06:51:21 +0000gmg(~user@user/gehmehgeh) gehmehgeh
2026-03-19 06:52:14 +0000 <gentauro> 23:29 < sshine> gentauro, https://gist.github.com/chiroptical/41d4ccc4c39cfe1f59bdd37279048510
2026-03-19 06:52:18 +0000 <EvanR> whiplash reaction icewm is still a thin gwhoa
2026-03-19 06:52:25 +0000 <gentauro> sshine: is that the `Don` notation? https://blog.stermon.org/articles/2017/10/24/fsharp-welcome-to-the-realworld-baby-don-notation.html
2026-03-19 06:53:59 +0000marinelli(~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli)
2026-03-19 06:54:17 +0000 <gentauro> finally managed to get LSP to work with emacs. However, now I get messages like this -> `Name: Partial: ghc-internal/foldl1`
2026-03-19 06:55:01 +0000 <gentauro> I'm aware that the computation is not `strict` and I'm fine with that. Is there a way to turn these kind of messages off?
2026-03-19 06:56:28 +0000 <gentauro> the worst messages are the ones for Functor, Applicative and Monad instances. Using emacs in terminal mode and the "type signatures" are the same colour as code … Very confusing :o
2026-03-19 06:56:46 +0000merijn(~merijn@62.45.136.136) merijn
2026-03-19 06:58:10 +0000 <[exa]> re "not strict" you mean "not total" I assume?
2026-03-19 07:00:10 +0000 <jreicher> gentauro: it's worth using GUI emacs for flymake-show-diagnostics-at-end-of-line 'fancy
2026-03-19 07:00:14 +0000 <[exa]> (btw omg who did the baby shark monad, now I'll imagine the `>>` between daddysharks everytime I hear it)
2026-03-19 07:01:09 +0000merijn(~merijn@62.45.136.136) (Ping timeout: 245 seconds)
2026-03-19 07:07:58 +0000sord937(~sord937@gateway/tor-sasl/sord937) sord937
2026-03-19 07:08:12 +0000wickedjargon(~user@s0106f89e28d5699a.vc.shawcable.net) (Ping timeout: 264 seconds)
2026-03-19 07:11:22 +0000 <gentauro> jreicher: what does that do?
2026-03-19 07:11:43 +0000 <gentauro> like -> `(setq flymake-show-diagnostics-at-end-of-line 'fancy)`?
2026-03-19 07:12:05 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 07:13:22 +0000driib3180(~driib@vmi931078.contaboserver.net) (Quit: Ping timeout (120 seconds))
2026-03-19 07:13:53 +0000 <jreicher> I would never use setq for a running session. only setopt
2026-03-19 07:14:25 +0000 <jreicher> You can use setq if you're putting it in init.el and restarting though, if you want.
2026-03-19 07:14:38 +0000anselmschueler(~Thunderbi@user/schuelermine) schuelermine
2026-03-19 07:15:22 +0000 <jreicher> Actually I just reread (info "(flymake) Customizable variables") and it says it uses unicode graphics, so might work on terminal also. Worth a try.
2026-03-19 07:15:28 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2026-03-19 07:15:47 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2026-03-19 07:15:57 +0000Franciman(~Franciman@mx1.fracta.dev) (Ping timeout: 268 seconds)
2026-03-19 07:16:16 +0000pierrot(~pi@user/pierrot) (Quit: ZNC 1.8.2 - http://znc.in)
2026-03-19 07:16:36 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-03-19 07:16:57 +0000lortabac(~lortabac@mx1.fracta.dev) (Ping timeout: 268 seconds)
2026-03-19 07:16:57 +0000nckx(~nckx@libera/staff/owl/nckx) (Ping timeout: 248 seconds)
2026-03-19 07:17:05 +0000pierrot(~pi@user/pierrot) pierrot
2026-03-19 07:20:01 +0000pierrot(~pi@user/pierrot) (Client Quit)
2026-03-19 07:23:06 +0000CiaoSen(~Jura@p200300c9570792004e50ddfffe9b8922.dip0.t-ipconnect.de) CiaoSen
2026-03-19 07:25:20 +0000marinelli(~weechat@brrr.fr) marinelli
2026-03-19 07:26:35 +0000 <gentauro> jreicher: yeah, I place stuff like that in `.emacs.d/init.el`
2026-03-19 07:26:55 +0000nckx(~nckx@libera/staff/owl/nckx) nckx
2026-03-19 07:26:57 +0000pierrot(~pi@user/pierrot) pierrot
2026-03-19 07:27:26 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 07:28:17 +0000 <jreicher> It's about the restart. Using setq requires a restart. setopt does not.
2026-03-19 07:28:30 +0000lortabac(~lortabac@mx1.fracta.dev) lortabac
2026-03-19 07:32:07 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-03-19 07:32:45 +0000jreicher(~joelr@user/jreicher) (Quit: brb)
2026-03-19 07:33:33 +0000Franciman(~Franciman@mx1.fracta.dev) Franciman
2026-03-19 07:34:13 +0000jreicher(~joelr@user/jreicher) jreicher
2026-03-19 07:34:39 +0000CiaoSen(~Jura@p200300c9570792004e50ddfffe9b8922.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2026-03-19 07:36:23 +0000CiaoSen(~Jura@p549cb690.dip0.t-ipconnect.de) CiaoSen
2026-03-19 07:38:11 +0000jreicher(~joelr@user/jreicher) (Client Quit)
2026-03-19 07:40:10 +0000jcarpenter2(~lol@2603:3016:1e01:b980:9900:10f7:ff16:cae0)
2026-03-19 07:40:51 +0000lol__(~lol@2603:3016:1e01:b980:38fd:c90f:4f82:2f54) (Ping timeout: 246 seconds)
2026-03-19 07:40:51 +0000dtman34_(~dtman34@2601:447:d183:2302:b0c5:8965:1c3f:d560) dtman34
2026-03-19 07:41:12 +0000lol_(~lol@2603:3016:1e01:b980:38fd:c90f:4f82:2f54) (Ping timeout: 246 seconds)
2026-03-19 07:41:43 +0000dtman34(~dtman34@c-73-242-68-179.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2026-03-19 07:42:05 +0000lol_(~lol@2603:3016:1e01:b980:9900:10f7:ff16:cae0)
2026-03-19 07:42:20 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 07:42:29 +0000 <gentauro> this worked -> https://emacs-lsp.github.io/lsp-mode/page/settings/lens/#lsp-lens-enable
2026-03-19 07:42:54 +0000 <gentauro> I'm very pedantic with 80-char lines and they were breaking indentation and stuff
2026-03-19 07:42:57 +0000 <gentauro> jaiks
2026-03-19 07:44:09 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2026-03-19 07:46:32 +0000ft(~ft@p508db341.dip0.t-ipconnect.de) (Quit: leaving)
2026-03-19 07:49:21 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-03-19 07:49:49 +0000Enrico63(~Enrico63@host-79-27-153-132.retail.telecomitalia.it) Enrico63
2026-03-19 07:50:02 +0000jreicher(~joelr@user/jreicher) jreicher
2026-03-19 07:54:02 +0000Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2026-03-19 08:00:23 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 08:03:38 +0000tri(~tri@ool-44c70bcb.dyn.optonline.net)
2026-03-19 08:04:59 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-03-19 08:07:48 +0000tri(~tri@ool-44c70bcb.dyn.optonline.net) (Ping timeout: 246 seconds)
2026-03-19 08:11:28 +0000jreicher(~joelr@user/jreicher) (Quit: brb)
2026-03-19 08:21:51 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2026-03-19 08:22:12 +0000jreicher(~joelr@user/jreicher) jreicher
2026-03-19 08:22:16 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2026-03-19 08:23:28 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2026-03-19 08:28:36 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 264 seconds)
2026-03-19 08:34:58 +0000Enrico63(~Enrico63@host-79-27-153-132.retail.telecomitalia.it) (Ping timeout: 240 seconds)
2026-03-19 08:43:11 +0000merijn(~merijn@77.242.116.146) merijn
2026-03-19 08:44:55 +0000Googulator74Googulator
2026-03-19 08:57:14 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2026-03-19 09:01:48 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 255 seconds)
2026-03-19 09:07:53 +0000troydm(~troydm@user/troydm) troydm
2026-03-19 09:19:40 +0000urdh(~urdh@user/urdh) (Ping timeout: 265 seconds)
2026-03-19 09:19:55 +0000urdh(~urdh@user/urdh) urdh
2026-03-19 09:20:35 +0000CiaoSen(~Jura@p549cb690.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
2026-03-19 09:27:33 +0000Freakie(~Freakie@37.96.11.80)
2026-03-19 09:28:17 +0000czan(~czan@user/mange) czan
2026-03-19 09:31:31 +0000 <mesaoptimizer> if I am correct, Bool isn't a true sum type, is it? for it only contains type constructors
2026-03-19 09:32:11 +0000 <mesaoptimizer> Either is a sum type because it is a sum of `Either` unary type constructors and type a and type b, is that right?
2026-03-19 09:35:59 +0000 <[exa]> mesaoptimizer: () + () is a good sum, isn't it?
2026-03-19 09:36:36 +0000 <[exa]> (relatedly, is Either () () a sum type?)
2026-03-19 09:37:34 +0000 <mesaoptimizer> I do not know what `()` type is, sorry
2026-03-19 09:37:41 +0000 <mesaoptimizer> is that the bottom type?
2026-03-19 09:37:42 +0000 <[exa]> the haskell's empty type ()
2026-03-19 09:37:45 +0000 <[exa]> :t ()
2026-03-19 09:37:46 +0000 <lambdabot> ()
2026-03-19 09:37:58 +0000 <mesaoptimizer> I see, so it is the bottom type
2026-03-19 09:38:26 +0000 <[exa]> "bottom" is usually used for harsher lack of information (e.g. Void)
2026-03-19 09:38:27 +0000tromp(~textual@2001:1c00:340e:2700:d42c:a851:5541:9fa8)
2026-03-19 09:38:31 +0000 <mesaoptimizer> oh.
2026-03-19 09:38:38 +0000 <mesaoptimizer> I think I'm too confused to continue this discussion in the realm of Haskell
2026-03-19 09:38:46 +0000 <[exa]> but yeah in the hierarchy of sums&products this would kinda be a bottom
2026-03-19 09:38:50 +0000 <mesaoptimizer> maybe after I've figured it out in type theory
2026-03-19 09:40:14 +0000 <[exa]> btw I think the main issue is about the sum labels in haskell, these are typically not occurring in most of the sum&product type explanations so it's not quite clear how to represent them, right?
2026-03-19 09:40:29 +0000 <czan> () has got a member, so it can't be the empty type. It's the unit type (i.e. "1" in the type algebra).
2026-03-19 09:40:38 +0000 <[exa]> as in, "what is the actual False in the language of sums"
2026-03-19 09:44:00 +0000 <Leary> mesaoptimizer: Without a precise definition of 'sum type', there's no good answer to the question.
2026-03-19 09:48:11 +0000 <anselmschueler> "bottom" can refer to the "least defined" value, which is undefined/nontermination in Haskell, and is a member of every type
2026-03-19 09:48:26 +0000 <anselmschueler> "bottom" can also refer to the type that is a subtype of every type in type systems with subtyping
2026-03-19 09:48:59 +0000 <anselmschueler> a bottom type may be the type with no values. every value of this type is vacuously also a valid value of every other type (there are no such values)
2026-03-19 09:49:25 +0000 <anselmschueler> consequently in a type system with nontermination and subtyping the bottom type may be the type that only has nontermination
2026-03-19 09:49:46 +0000 <anselmschueler> the Haskell equivalent of this type is "data Void" with no constructors
2026-03-19 09:49:56 +0000 <anselmschueler> there are no values of this type except undefined/nontermination
2026-03-19 09:51:12 +0000 <Freakie> algebraic data types as they're usually defined in functional languages are sum types, while tuples are products
2026-03-19 09:53:20 +0000 <anselmschueler> the data keyword in Haskell is kinda a combination of sum and product
2026-03-19 09:53:24 +0000 <anselmschueler> each constructor is a product type
2026-03-19 09:53:33 +0000 <anselmschueler> and then these types are summed
2026-03-19 09:54:22 +0000 <anselmschueler> e.g. "data MaybeTwo t = NoTwo | JustTwo t t" is like the product type "1" (empty product) + the product type "t × t"
2026-03-19 09:54:35 +0000 <anselmschueler> i.e. MaybeTwo(T) = 1 + T²
2026-03-19 09:57:16 +0000Freakie(~Freakie@37.96.11.80) (Quit: Client closed)
2026-03-19 10:00:18 +0000tri(~tri@ool-44c70bcb.dyn.optonline.net)
2026-03-19 10:02:52 +0000 <[exa]> oh yes `1` is a good version of my `()`
2026-03-19 10:03:06 +0000 <[exa]> in turn it would give `Bool == 1+1 == 2` :>
2026-03-19 10:03:57 +0000Freakie(~Freakie@185.45.22.133)
2026-03-19 10:05:23 +0000tri(~tri@ool-44c70bcb.dyn.optonline.net) (Ping timeout: 272 seconds)
2026-03-19 10:09:03 +0000haritz(~hrtz@140.228.70.141)
2026-03-19 10:09:03 +0000haritz(~hrtz@140.228.70.141) (Changing host)
2026-03-19 10:09:03 +0000haritz(~hrtz@user/haritz) haritz
2026-03-19 10:09:54 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 245 seconds)
2026-03-19 10:11:46 +0000 <anselmschueler> T^2 even makes sense if 2 = Bool and X^Y = Y -> X; T^2 is a tuple (x, y), but this can be realised as a function f = \case { True -> x; False -> y }
2026-03-19 10:18:52 +0000forell(~forell@user/forell) (Ping timeout: 268 seconds)
2026-03-19 10:23:07 +0000madresch(~Thunderbi@user/madresch) (Ping timeout: 264 seconds)
2026-03-19 10:30:43 +0000euphores(~SASL_euph@user/euphores) (Ping timeout: 272 seconds)
2026-03-19 10:35:29 +0000 <merijn> mesaoptimizer: I think you're rather confused to begin with? True and False aren't type constructors, they're value constructors
2026-03-19 10:36:18 +0000 <merijn> Freakie: ADTs are both sum AND product types
2026-03-19 10:36:25 +0000 <merijn> that's what makes them algebraic :p
2026-03-19 10:38:25 +0000madresch(~Thunderbi@user/madresch) madresch
2026-03-19 10:38:45 +0000acidjnk_new(~acidjnk@p200300d6e700e54146a195f20f1debd3.dip0.t-ipconnect.de) acidjnk
2026-03-19 10:41:50 +0000acidjnk(~acidjnk@p200300d6e700e503ca16aff59d0b5956.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
2026-03-19 10:49:42 +0000tri(~tri@ool-44c70bcb.dyn.optonline.net)
2026-03-19 10:54:10 +0000tri(~tri@ool-44c70bcb.dyn.optonline.net) (Ping timeout: 248 seconds)
2026-03-19 10:55:09 +0000olivial(~benjaminl@user/benjaminl) (Read error: Connection reset by peer)
2026-03-19 10:55:27 +0000olivial(~benjaminl@user/benjaminl) benjaminl
2026-03-19 10:55:28 +0000Freakie(~Freakie@185.45.22.133) (Ping timeout: 240 seconds)
2026-03-19 11:00:44 +0000takuan(~takuan@d8D86B9E9.access.telenet.be) (Ping timeout: 245 seconds)
2026-03-19 11:01:28 +0000takuan(~takuan@d8d86b9e9.access.telenet.be)
2026-03-19 11:05:13 +0000Jackneill(~Jackneill@188-143-82-16.pool.digikabel.hu)
2026-03-19 11:14:05 +0000xff0x(~xff0x@2405:6580:b080:900:d540:12da:a11a:2c00)
2026-03-19 11:14:14 +0000divlamir(~divlamir@user/divlamir) (Read error: Connection reset by peer)
2026-03-19 11:14:34 +0000divlamir(~divlamir@user/divlamir) divlamir
2026-03-19 11:24:20 +0000AlexNoo(~AlexNoo@178.34.151.138)
2026-03-19 11:27:15 +0000Freakie(~Freakie@37.96.11.80)
2026-03-19 11:29:53 +0000CiaoSen(~Jura@p549cb690.dip0.t-ipconnect.de) CiaoSen
2026-03-19 11:34:10 +0000weary-traveler(~user@user/user363627) (Remote host closed the connection)
2026-03-19 11:37:25 +0000comonad(~comonad@p200300d02717df00adc247ef70bd7367.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2026-03-19 11:38:04 +0000CiaoSen(~Jura@p549cb690.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2026-03-19 11:38:09 +0000 <gentauro> for a bool type, you only need a single bit. However, our smallest mem container is an octet ("byte")
2026-03-19 11:43:28 +0000comonad(~comonad@pd9e0770c.dip0.t-ipconnect.de)
2026-03-19 11:47:21 +0000Square2(~Square4@user/square) (Ping timeout: 272 seconds)
2026-03-19 11:49:09 +0000weary-traveler(~user@user/user363627) user363627
2026-03-19 11:50:37 +0000tri(~tri@ool-44c70bcb.dyn.optonline.net)
2026-03-19 11:51:46 +0000somemathguy(~somemathg@user/somemathguy) somemathguy
2026-03-19 11:54:58 +0000tri(~tri@ool-44c70bcb.dyn.optonline.net) (Ping timeout: 248 seconds)
2026-03-19 11:56:48 +0000Freakie(~Freakie@37.96.11.80) (Quit: Client closed)
2026-03-19 11:59:30 +0000comonad(~comonad@pd9e0770c.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2026-03-19 12:00:41 +0000comonad(~comonad@p200300d02717df00adc247ef70bd7367.dip0.t-ipconnect.de)
2026-03-19 12:01:56 +0000Axman6(~Axman6@user/axman6) (Remote host closed the connection)
2026-03-19 12:02:09 +0000Axman6(~Axman6@user/axman6) Axman6
2026-03-19 12:04:21 +0000Freakie(~Freakie@185.45.22.133)
2026-03-19 12:04:45 +0000CiaoSen(~Jura@p549cb690.dip0.t-ipconnect.de) CiaoSen
2026-03-19 12:05:53 +0000 <Freakie> does anyone have experience with using ghc-debug? I've been trying to get the TUI to work but it keeps crashing on me saying "not enough bytes". google hasn't been helpful either
2026-03-19 12:06:29 +0000anselmschueler(~Thunderbi@user/schuelermine) (Ping timeout: 244 seconds)
2026-03-19 12:07:09 +0000AlexZenon(~alzenon@178.34.151.138)
2026-03-19 12:07:31 +0000 <chromoblob> feed more bytes
2026-03-19 12:07:40 +0000 <Freakie> would that I knew how
2026-03-19 12:11:17 +0000Alex_delenda_est(~al_test@178.34.151.138)
2026-03-19 12:11:42 +0000AlexZenon(~alzenon@178.34.151.138) (Ping timeout: 255 seconds)
2026-03-19 12:15:39 +0000Alex_A(~al_test@178.34.151.138)
2026-03-19 12:15:45 +0000Alex_delenda_est(~al_test@178.34.151.138) (Ping timeout: 255 seconds)
2026-03-19 12:16:15 +0000AlexZenon(~alzenon@178.34.151.138)
2026-03-19 12:18:02 +0000Alex_AAlex_delenda_est
2026-03-19 12:19:23 +0000AlexZenon_2(~alzenon@178.34.151.138)
2026-03-19 12:20:42 +0000AlexZenon(~alzenon@178.34.151.138) (Ping timeout: 255 seconds)
2026-03-19 12:23:51 +0000AlexZenon_2(~alzenon@178.34.151.138) (Ping timeout: 255 seconds)
2026-03-19 12:27:58 +0000AlexZenon(~alzenon@178.34.151.138)
2026-03-19 12:29:37 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-03-19 12:30:43 +0000AlexZenon_2(~alzenon@178.34.151.138)
2026-03-19 12:32:24 +0000AlexZenon(~alzenon@178.34.151.138) (Ping timeout: 255 seconds)
2026-03-19 12:34:04 +0000tri(~tri@ool-44c70bcb.dyn.optonline.net)
2026-03-19 12:35:06 +0000AlexZenon_2(~alzenon@178.34.151.138) (Ping timeout: 255 seconds)
2026-03-19 12:38:48 +0000tri(~tri@ool-44c70bcb.dyn.optonline.net) (Ping timeout: 264 seconds)
2026-03-19 12:39:18 +0000AlexZenon(~alzenon@178.34.151.138)
2026-03-19 12:43:43 +0000crazazy(crazazy@tilde.town) crazazy
2026-03-19 12:50:57 +0000 <gentauro> Freakie: I once had a 33 GB space-leak with -> https://hackage.haskell.org/package/taffybar
2026-03-19 12:51:32 +0000 <gentauro> so as chromoblob says, just gif more RAM
2026-03-19 12:54:23 +0000 <Freakie> well the point of my program is to eat up a lot of ram but not on these input sizes :)
2026-03-19 12:54:37 +0000 <Freakie> but no help with ghc-debug I take it then?
2026-03-19 13:00:05 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2026-03-19 13:02:11 +0000czan(~czan@user/mange) (Quit: Zzz...)
2026-03-19 13:06:44 +0000rainbyte(~rainbyte@181.47.219.110) (Read error: Connection reset by peer)
2026-03-19 13:09:05 +0000rainbyte(~rainbyte@181.47.219.110) rainbyte
2026-03-19 13:13:07 +0000 <gentauro> Freakie: I rarely use debuggers when doing FP :)
2026-03-19 13:13:16 +0000 <gentauro> I use other mechanism for testing
2026-03-19 13:15:07 +0000 <Freakie> well I feel like I'm out of options at this point, unfortunately
2026-03-19 13:15:50 +0000 <Freakie> I have some sort of massive space leak that does not appear obvious why and both heap and non-heap profiling only got me so far
2026-03-19 13:16:14 +0000 <Freakie> if you have any suggestions I'd be glad to hear them though
2026-03-19 13:16:41 +0000 <haskellbridge> <ijouw> haskell-debugger?
2026-03-19 13:21:07 +0000 <gentauro> Freakie: when I made this (totally wacko) I needed to see what was "eating up mem" -> https://blog.stermon.org/articles/2020/03/30/haskell-data-octet-safe-idiomatic-and-big.html and https://blog.stermon.org/articles/2020/04/06/haskell-data-octet-nand-smaller-but-slower.html
2026-03-19 13:22:31 +0000gentauroworld longest blog post. Most people consuming my feed "complained" xD
2026-03-19 13:22:53 +0000 <Freakie> yeah I'm not going to be able to get to the bottom of that first one
2026-03-19 13:23:27 +0000 <Freakie> so what'd you do?
2026-03-19 13:24:54 +0000 <gentauro> Freakie: by running the profiler, I went step-by-step, making "lazy" parts "strict"
2026-03-19 13:25:38 +0000 <gentauro> let me see if I can find my profiling script
2026-03-19 13:26:10 +0000 <Freakie> I've tried all variations of strictness and it didn't help
2026-03-19 13:26:58 +0000 <Freakie> all I have to go from in my heap profiling is that most of my data comes from constructors tagged CONSTR_NOCAF but I don't know if that's worth anything or not
2026-03-19 13:28:23 +0000 <Freakie> I've tried approximating the memory footprint of my data as well and it's using something like 100x the memory it should
2026-03-19 13:28:35 +0000 <gentauro> Freakie: https://paste.tomsmeding.com/sJ9LB50B
2026-03-19 13:29:36 +0000 <gentauro> Freakie: By looking at the table (and `hp2pretty`) I noticed what was leaking
2026-03-19 13:29:47 +0000 <gentauro> there was actually several things …
2026-03-19 13:30:03 +0000 <gentauro> so `seq` and `
2026-03-19 13:30:16 +0000 <gentauro> {-# INLINE … #-}
2026-03-19 13:30:17 +0000 <gentauro> everywhere
2026-03-19 13:31:50 +0000 <Freakie> I'll give it a whirl I guess
2026-03-19 13:31:59 +0000 <Freakie> so far the biggest fix for has been to use strict lists
2026-03-19 13:32:50 +0000 <Freakie> everything just feels like shot in the dark because all my data seems paradoxical to me
2026-03-19 13:35:28 +0000prdak(~Thunderbi@user/prdak) prdak
2026-03-19 13:38:16 +0000 <Freakie> not easy to modify that script of yours :S
2026-03-19 13:39:48 +0000AlexZenon(~alzenon@178.34.151.138) (Read error: Connection reset by peer)
2026-03-19 13:40:04 +0000AlexZenon(~alzenon@178.34.151.138)
2026-03-19 13:42:31 +0000prdak(~Thunderbi@user/prdak) (Quit: prdak)
2026-03-19 13:42:49 +0000 <Freakie> gentauro yeah that's more or less what I already see from profiling, unfortunately
2026-03-19 13:43:05 +0000acidjnk_new(~acidjnk@p200300d6e700e54146a195f20f1debd3.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2026-03-19 13:52:36 +0000tri(~tri@69.74.159.34)
2026-03-19 13:57:06 +0000tri(~tri@69.74.159.34) (Ping timeout: 248 seconds)
2026-03-19 14:11:34 +0000poscat0x04(~poscat@user/poscat) (Remote host closed the connection)
2026-03-19 14:14:39 +0000 <pipsquak-bird> start from scartch and simplify!
2026-03-19 14:14:46 +0000poscat(~poscat@user/poscat) poscat
2026-03-19 14:14:53 +0000 <pipsquak-bird> maek eevythgin as close to a number score like hit points
2026-03-19 14:15:06 +0000 <pipsquak-bird> cmpuer can instantly do lke a 900 vriable problem in 1 second
2026-03-19 14:15:12 +0000 <pipsquak-bird> so make thing numberical scores
2026-03-19 14:15:24 +0000 <pipsquak-bird> all phd do is arbitrary category thery really
2026-03-19 14:15:27 +0000 <pipsquak-bird> much of it is wrong
2026-03-19 14:15:36 +0000 <pipsquak-bird> univeristy not soruce of truth nor school nor AI
2026-03-19 14:16:08 +0000 <pipsquak-bird> hmm
2026-03-19 14:16:20 +0000 <pipsquak-bird> software transactional memory
2026-03-19 14:16:22 +0000 <pipsquak-bird> sounds sexy
2026-03-19 14:16:30 +0000 <pipsquak-bird> how does it beat thread sor csp?
2026-03-19 14:16:33 +0000 <pipsquak-bird> or actors?
2026-03-19 14:20:52 +0000 <pipsquak-bird> 9p.io is interesting as is greenarrays.com and ocam-pi rmox system, csp based not sure about forth
2026-03-19 14:22:42 +0000pierluc-codes(~pierlucco@modemcable092.154-83-70.mc.videotron.ca) (Ping timeout: 248 seconds)
2026-03-19 14:30:22 +0000pierluc-codes(~pierlucco@modemcable092.154-83-70.mc.videotron.ca)
2026-03-19 14:41:54 +0000myme(~myme@2a01:799:d5e:5f00:303a:da6f:3ef4:dbc1) (Ping timeout: 246 seconds)
2026-03-19 14:43:00 +0000anselmschueler(~Thunderbi@user/schuelermine) schuelermine
2026-03-19 14:43:04 +0000myme(~myme@2a01:799:d5e:5f00:bb34:b3ad:fa86:ff90) myme
2026-03-19 14:43:48 +0000anselmschueler(~Thunderbi@user/schuelermine) (Remote host closed the connection)
2026-03-19 14:55:16 +0000 <mauke> @protontorpedo
2026-03-19 14:55:16 +0000 <lambdabot> how does j2ee compare to haskell?
2026-03-19 14:55:23 +0000 <mauke> @protontorpedo
2026-03-19 14:55:23 +0000 <lambdabot> ok is haskell a type of lisp?
2026-03-19 14:56:31 +0000rekahsoft(~rekahsoft@bras-base-orllon1103w-grc-20-76-67-111-168.dsl.bell.ca) rekahsoft
2026-03-19 15:02:11 +0000machinedgod(~machinedg@d172-219-48-230.abhsia.telus.net) machinedgod
2026-03-19 15:02:21 +0000pavonia(~user@user/siracusa) (Quit: Bye!)
2026-03-19 15:13:49 +0000 <merijn> Freakie: Do you have code/the profiler output visible somewhere?
2026-03-19 15:27:05 +0000acidjnk_new(~acidjnk@p200300d6e700e5412a4816b29ee23bce.dip0.t-ipconnect.de)
2026-03-19 15:35:07 +0000CiaoSen(~Jura@p549cb690.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2026-03-19 15:45:16 +0000 <EvanR> if you have a large input list then read it in using lazy I/O list or read it into not a list
2026-03-19 15:46:15 +0000 <EvanR> a fully materialized large list is hell on memory usage
2026-03-19 15:46:39 +0000madresch(~Thunderbi@user/madresch) (Ping timeout: 246 seconds)
2026-03-19 15:55:41 +0000v0id_7(~v0id_7@user/v0id-7:62772) v0id_7
2026-03-19 16:00:37 +0000traxex(traxex@user/traxex) traxex
2026-03-19 16:11:25 +0000 <Freakie> merijn i can upload it in a bit
2026-03-19 16:11:38 +0000 <Freakie> trying to stresstest the program right now and I might run out of memory first
2026-03-19 16:12:27 +0000 <Freakie> EvanR my issue is that I have to gradually *build* lists that can be exponentially large in the input
2026-03-19 16:13:31 +0000 <Freakie> it's meant to explode in size but I should not be using over 1 gb of memory for 10000 nodes
2026-03-19 16:13:59 +0000 <Freakie> at least I don't see how it should
2026-03-19 16:22:15 +0000sord937(~sord937@gateway/tor-sasl/sord937) (Ping timeout: 258 seconds)
2026-03-19 16:22:45 +0000califax_(~califax@user/califx) califx
2026-03-19 16:23:47 +0000califax(~califax@user/califx) (Ping timeout: 258 seconds)
2026-03-19 16:24:00 +0000califax_califax
2026-03-19 16:24:15 +0000sord937(~sord937@gateway/tor-sasl/sord937) sord937
2026-03-19 16:24:33 +0000 <gentauro> my `String` knowledge in Haskell is a bit outdated. Wasn't there a `pragma` that could be used that made `String` "faster" as in not lazy `[Char]`?
2026-03-19 16:24:59 +0000 <probie> Why not just use a better type like `Text` if you want that?
2026-03-19 16:25:27 +0000gentaurobut still having the nice interface. For example: `case str of (c:cs) -> …`
2026-03-19 16:26:20 +0000 <gentauro> probie: iirc, `Text` isn't part of `base` right?
2026-03-19 16:28:52 +0000Tuplanolla(~Tuplanoll@88-114-89-88.elisa-laajakaista.fi) Tuplanolla
2026-03-19 16:30:33 +0000 <probie> gentauro: no, but it's one of GHC's boot libraries, so you can be sure that some version is available unless they're using a really ancient version of GHC, or a different compiler like microhs (in which case you don't have base anyway)
2026-03-19 16:33:20 +0000 <probie> containers is outside base, but would you avoid `Map` and `Set` because of that?
2026-03-19 16:36:09 +0000 <haskellbridge> <magic_rb> yeah i dont think there is a reason not to use text, its such a core library that essentially everythings depends on it, including ghc
2026-03-19 16:37:21 +0000 <probie> and if you want pattern matching, you can have it
2026-03-19 16:37:39 +0000 <probie> % :set -XOverloadedStrings -XViewPatterns -XPatternSynonyms
2026-03-19 16:37:39 +0000 <yahb2> <no output>
2026-03-19 16:37:53 +0000 <probie> % import qualified Data.Text as T
2026-03-19 16:37:53 +0000 <yahb2> <no output>
2026-03-19 16:38:14 +0000 <probie> % pattern S x xs <- (T.uncons -> Just (x, xs))
2026-03-19 16:38:14 +0000 <yahb2> <no output>
2026-03-19 16:38:30 +0000 <probie> % pattern EOS <- (T.uncons -> Nothing)
2026-03-19 16:38:30 +0000 <yahb2> <no output>
2026-03-19 16:39:43 +0000 <probie> % map (\s -> case T.reverse s of { (S x _) -> Just x; EOS -> Nothing }) ["hello", "", "world"]
2026-03-19 16:39:43 +0000 <yahb2> [Just 'o',Nothing,Just 'd']
2026-03-19 16:41:36 +0000 <probie> % let atLeast3 s = case s of { S _ (S _ (S _ _)) -> True; _ -> False } in filter atLeast3 $ T.words "To be, or not to be, that is the question"
2026-03-19 16:41:36 +0000 <yahb2> ["be,","not","be,","that","the","question"]
2026-03-19 16:42:35 +0000 <chromoblob> microhs? Haskell on microcontrollers? holy shit
2026-03-19 16:44:13 +0000 <EvanR> Freakie, 1G resident for 10,000 of some small values does sound like a poorly laid out list algorithm which can't collect efficiently, it seems to me
2026-03-19 16:44:27 +0000 <haskellbridge> <ijouw> If you get it to run on microcontrollers, please share build instructions
2026-03-19 16:44:40 +0000 <Freakie> EvanR if you have any tips i'm all ears
2026-03-19 16:45:34 +0000 <Freakie> fwiw each node at most 7 primitives distributed across 3 field (including constructors), so it should be something like ~16 bytes at worst I think per node
2026-03-19 16:45:41 +0000 <EvanR> though I'm not sure what "I have to build lists" means, making a list is itself not usually an end
2026-03-19 16:46:16 +0000 <EvanR> 16 bytes of useful value could balloon to several times more per list node because haskell
2026-03-19 16:46:32 +0000 <EvanR> but not 100,000 times more if I'm not mistaken
2026-03-19 16:46:38 +0000 <Freakie> I included the constructors and tags in that count
2026-03-19 16:46:59 +0000 <EvanR> well 16 bytes is 2 pointers so it sounds unlikely
2026-03-19 16:47:16 +0000 <EvanR> to be at most 16
2026-03-19 16:47:19 +0000 <Freakie> damn I forgot how memory works
2026-03-19 16:47:43 +0000traxex(traxex@user/traxex) (Ping timeout: 264 seconds)
2026-03-19 16:47:44 +0000 <Freakie> let me redo my math
2026-03-19 16:48:09 +0000 <EvanR> each boxed value not only has a pointer to it from somewhere but GC metadata as well as payload
2026-03-19 16:48:26 +0000 <Freakie> I know, I was just off by a byte factor
2026-03-19 16:48:35 +0000 <EvanR> and ghc usually uses a whole word for any field
2026-03-19 16:49:13 +0000 <Freakie> but basically I have two algorithms that work on each other. both consume two lists of one type and accumulate two other lists of another type as output
2026-03-19 16:49:33 +0000 <EvanR> accumulate?
2026-03-19 16:49:45 +0000 <Freakie> I mean, just consing
2026-03-19 16:49:50 +0000 <EvanR> by iteratively pushing to the beginning
2026-03-19 16:49:58 +0000 <Freakie> yes?
2026-03-19 16:50:02 +0000 <EvanR> ok
2026-03-19 16:50:05 +0000 <EvanR> then what
2026-03-19 16:50:31 +0000 <Freakie> then that continues till the input lists have been consumed
2026-03-19 16:51:03 +0000 <EvanR> it matters how these accumulated lists are consumed
2026-03-19 16:51:28 +0000 <Freakie> the output lists are only ever added to during the algorithms, and the input lists are only ever traversed linearly
2026-03-19 16:51:46 +0000 <EvanR> if the output list is never consumed
2026-03-19 16:52:03 +0000 <Freakie> I mean they have to by construction of my benchmark
2026-03-19 16:52:15 +0000 <EvanR> it's either unobservable or a memory leak
2026-03-19 16:52:27 +0000 <Freakie> they're fed straight into another iteration of the algorithms
2026-03-19 16:53:26 +0000 <Freakie> heap profiling shows that 80-90% of the data recorded comes from building the output in the one algorithm, but I suspect it shows that because the lists are being retained in the other algorithm and possibly not deallocated on the run?
2026-03-19 16:53:43 +0000 <EvanR> yes that would be my suspicion
2026-03-19 16:54:08 +0000 <Freakie> by design the algorithms only work on lists and trees so it's bound to be inefficient but but scaling shouldn't be this bad
2026-03-19 16:55:55 +0000 <int-e> sm: Well, I implemented a stupid thing: https://silicon.int-e.eu/lambdabot/State/where.html (static page, decodes where file in browser, no search, also not tested much)
2026-03-19 16:56:13 +0000 <Freakie> I aborted the program after an hour and at that point only 5% of the runtime not spent on garbage collection which is not surprising given how much data is live and I don't have any compaction
2026-03-19 16:58:15 +0000Jackneill(~Jackneill@188-143-82-16.pool.digikabel.hu) (Remote host closed the connection)
2026-03-19 16:58:45 +0000Jackneill(~Jackneill@188-143-82-16.pool.digikabel.hu) Jackneill
2026-03-19 16:59:02 +0000Jackneill(~Jackneill@188-143-82-16.pool.digikabel.hu) (Remote host closed the connection)
2026-03-19 16:59:10 +0000 <EvanR> retaining long lists live when they don't have to be is usually caused by the algorithm consuming lists in a suboptimal way. But it's also possible that's unavoidable because of the algorithm
2026-03-19 16:59:43 +0000 <Freakie> I can most likely refactor it to include compaction but that doesn't really help me reduce the size of the live memory to begin with
2026-03-19 17:00:01 +0000 <monochrom> [Int] of length n, even in the worst case (which doesn't happen often), takes only n*(24+8) bytes. (Often the +8 doesn't happen because GHC-compiled code actually does a flyweight pattern for small Ints.)
2026-03-19 17:00:37 +0000 <Freakie> I've been trying for a while to find some way of actually tracking the size of data during runtime
2026-03-19 17:00:46 +0000 <Freakie> it seems like I have precious few alternatives at least
2026-03-19 17:01:53 +0000 <monochrom> Profiling is only as good as the person who interprets the profiling report. >:)
2026-03-19 17:02:15 +0000 <Freakie> well in that case I am an imposter and a cad
2026-03-19 17:05:01 +0000 <EvanR> monochrom, that sounds like an underestimate for a list node + Int box? or is list node / Int specially implemented to reduce space
2026-03-19 17:06:01 +0000 <monochrom> 24 is already the node, 8 is already the Int
2026-03-19 17:06:02 +0000 <EvanR> 8+8+8+8, would be the bare minimum without any runtime info
2026-03-19 17:06:28 +0000 <monochrom> Oh oops s/8/16/ haha
2026-03-19 17:07:04 +0000 <gentauro> btw, do you have re-use of pattern-matchin cases in Haskell (like we have en OCaml/F#)?. Example: `type FooBarBazQux = Foo | Bar | Baz | Qux;; let fooBarBazQux = function | Foo | Bar -> "foobar" | Baz | Qux -> "bazqux";;`
2026-03-19 17:07:09 +0000 <monochrom> But that still doesn't cause n=10000 to become 1GB. So the hypothesis that n=10000 is rejected.
2026-03-19 17:07:42 +0000 <Freakie> I mean I have empirical data on the total number of nodes generated
2026-03-19 17:07:45 +0000 <gentauro> it seems that `case … of` requires to define duplicate code for `Foo and Bar` and then `Baz and Qux`
2026-03-19 17:08:01 +0000 <Freakie> which, ok is closer to 100k when I reach 1 gb
2026-03-19 17:08:21 +0000 <EvanR> gentauro, probably for the best. I really like reading haskell's "redundant" code
2026-03-19 17:08:35 +0000 <Freakie> gentauro haskell doesn't have disjoint patterns but I tend to use guard patterns instead
2026-03-19 17:08:45 +0000 <EvanR> instead of mentally decompressing it after someone was "too lazy to type it all out"
2026-03-19 17:09:01 +0000 <Freakie> that feels a little like a strawman but ok
2026-03-19 17:09:21 +0000 <gentauro> EvanR: I'm kind of used to the `SML` way :)
2026-03-19 17:09:43 +0000 <Freakie> I tend to prefer haskell's syntax for the most part
2026-03-19 17:09:55 +0000 <gentauro> you know `dry` (Don't repeat yourself)
2026-03-19 17:09:56 +0000 <EvanR> the difference between a straight list of cases, and the ruby way of having algorithms generate the code or values
2026-03-19 17:10:11 +0000 <EvanR> yeah I have often see "dry" be bad in haskell
2026-03-19 17:11:06 +0000 <haskellbridge> <sm> int-e https://silicon.int-e.eu/lambdabot/State/where.html - very nice! Much simpler than https://haskell-links.org . How to make it discoverable ?
2026-03-19 17:11:26 +0000 <EvanR> you do have pattern synonyms and view patterns
2026-03-19 17:11:40 +0000 <haskellbridge> <sm> @where+ links https://silicon.int-e.eu/lambdabot/State/where.html I guess
2026-03-19 17:12:21 +0000 <Leary> gentauro: https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/or_patterns.html
2026-03-19 17:12:49 +0000 <Freakie> oh neat
2026-03-19 17:14:31 +0000 <int-e> @where+ where https://silicon.int-e.eu/lambdabot/State/where.html
2026-03-19 17:14:31 +0000 <lambdabot> I will never forget.
2026-03-19 17:15:04 +0000 <gentauro> Leary: nice
2026-03-19 17:15:39 +0000 <gentauro> this will work with minimalistic sum types due to -> "If we want the compiler to aid us in Haskell2010, we must write out all cases explicitly".
2026-03-19 17:15:58 +0000 <gentauro> unless "underscore wildcard" can be used.
2026-03-19 17:15:59 +0000 <int-e> (not opposed to changing the `links` entry, but for now it still works)
2026-03-19 17:17:54 +0000 <Leary> Freakie: BTW, if you want good scaling, you probably need to write your algorithm to stream output as input comes in. You might be able to achieve that by building the output lists outside-in rather than inside-out, but the safer path would be to use a streaming library.
2026-03-19 17:18:13 +0000 <sm> 👍🏻 and now added at https://joyful.com/Haskell+map#other+docs
2026-03-19 17:18:27 +0000 <Freakie> technically I'm doing a thesis on algorithms designed to work efficiently on external memory which implies streaming by design
2026-03-19 17:18:51 +0000 <Freakie> how do you mean outside-in though?
2026-03-19 17:21:42 +0000 <Leary> When a recursive function `go` wants to yield an element `x`, do so by producing `x : go (...)`.
2026-03-19 17:23:10 +0000 <Freakie> so the whole tail recursion modulo cons business?
2026-03-19 17:24:04 +0000merijn(~merijn@77.242.116.146) (Ping timeout: 245 seconds)
2026-03-19 17:24:25 +0000 <Leary> Maybe; I don't think from that angle. The important part is that the recursive call is guarded behind the `:` constructor, so it doesn't run until after `x` is consumed.
2026-03-19 17:24:26 +0000 <haskellbridge> <sm> A new entry for the Haskell Book list, tcard__ : https://www.reddit.com/r/haskell/comments/1ry38dn/haskell_brain_teasers_is_now_available/
2026-03-19 17:24:43 +0000 <Freakie> i'll try to keep it in mind
2026-03-19 17:25:03 +0000 <Freakie> at any rate I'm probably going to have to pivot by necessity to another part of the project and let the performance be what it is
2026-03-19 17:25:18 +0000 <Freakie> it's just been bothering me for a while that I can't explain how hungry the algorithms are
2026-03-19 17:26:20 +0000 <pipsquak-bird> why is computer job market so jacked now? india outsourcing and vendors trying to stamp out linux?
2026-03-19 17:26:39 +0000 <Freakie> more like executives bought into the AI hype
2026-03-19 17:26:44 +0000 <pipsquak-bird> heh
2026-03-19 17:26:53 +0000 <pipsquak-bird> AI creates houses and megadorms!
2026-03-19 17:27:02 +0000 <pipsquak-bird> free room food and net!
2026-03-19 17:27:39 +0000ChanServ+o monochrom
2026-03-19 17:27:44 +0000monochrom+b *!*@c-71-235-170-34.hsd1.ma.comcast.net
2026-03-19 17:27:44 +0000pipsquak-birdmonochrom (pipsquak-bird)
2026-03-19 17:27:56 +0000 <Freakie> lmao tho
2026-03-19 17:28:05 +0000 <Franciman> megadorms
2026-03-19 17:28:24 +0000 <Freakie> Leary so I finally found a way to track the memory of values in runtime which also triggers a garbage collection before measuring and it seems to have completely squashed memory usage (at least within reason) at the cost of, uh, time
2026-03-19 17:28:38 +0000 <Freakie> so I guess it's just a space leak somewhere after all
2026-03-19 17:30:16 +0000 <Freakie> one complication of what you suggested is that I always return a pair where only one of the elements is updated
2026-03-19 17:30:27 +0000 <Freakie> will that matter in terms of what you said?
2026-03-19 17:30:53 +0000monochrom-o monochrom
2026-03-19 17:33:43 +0000 <Leary> Freakie: Probably, but you can change out `([a], [b])` for `[Either a b]`.
2026-03-19 17:34:58 +0000 <Freakie> how will that relate to guarding behind a constructor?
2026-03-19 17:36:31 +0000ft(~ft@p508db341.dip0.t-ipconnect.de) ft
2026-03-19 17:37:35 +0000 <Leary> Well it's a single list, so the rest of the computation is always behind the next cons cell, and it knows what it's already done. With two lists, you would have two independent computations instead.
2026-03-19 17:38:23 +0000 <Freakie> oh you meant a list of eithers
2026-03-19 17:38:45 +0000 <Freakie> I don't think that's sound
2026-03-19 17:39:37 +0000 <Freakie> only one of the pair elements is a list, the other is a priority queue
2026-03-19 17:41:36 +0000 <Freakie> but yeah it turns out that stuff isn't being garbage collected
2026-03-19 17:41:58 +0000 <Freakie> which is progress at least
2026-03-19 17:42:28 +0000 <Leary> Does it actually need to be returned? I suspect you can just thread the queue state as an argument to the recursive call (or other continuation).
2026-03-19 17:43:43 +0000 <Freakie> do you mean with a stateful priority queue?
2026-03-19 17:45:05 +0000 <Freakie> both need to be returned because the priority queues make up with invariants of the algorithm
2026-03-19 17:45:06 +0000tri(~tri@69.74.159.34)
2026-03-19 17:49:39 +0000tri(~tri@69.74.159.34) (Ping timeout: 255 seconds)
2026-03-19 17:55:22 +0000 <Freakie> thanks for the suggestions at any rate, gotta go
2026-03-19 17:57:44 +0000sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2026-03-19 17:59:28 +0000Freakie(~Freakie@185.45.22.133) (Ping timeout: 240 seconds)
2026-03-19 18:05:49 +0000traxex(traxex@user/traxex) traxex
2026-03-19 18:06:32 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 268 seconds)
2026-03-19 18:10:47 +0000weary-traveler(~user@user/user363627) (Remote host closed the connection)
2026-03-19 18:18:11 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-03-19 18:20:39 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2026-03-19 18:21:18 +0000madresch(~Thunderbi@user/madresch) madresch
2026-03-19 18:22:27 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Client Quit)
2026-03-19 18:22:42 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 256 seconds)
2026-03-19 18:23:25 +0000merijn(~merijn@77.242.116.146) merijn
2026-03-19 18:24:15 +0000madresch1(~Thunderbi@user/madresch) madresch
2026-03-19 18:25:32 +0000Guest62t(~Guest62t@p200300ca8f188500b4d545039923a63f.dip0.t-ipconnect.de)
2026-03-19 18:25:32 +0000madresch(~Thunderbi@user/madresch) (Ping timeout: 256 seconds)
2026-03-19 18:25:32 +0000madresch1madresch
2026-03-19 18:37:26 +0000merijn(~merijn@77.242.116.146) (Ping timeout: 256 seconds)
2026-03-19 18:37:29 +0000m_a_r_k(~m_a_r_k@archlinux/support/mark) (Ping timeout: 248 seconds)
2026-03-19 18:40:27 +0000vulpine(xfnw@user/meow/xfnw) (Ping timeout: 268 seconds)
2026-03-19 19:06:52 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 19:07:14 +0000lol__(~lol@2603:3016:1e01:b980:173:305f:8185:29ce)
2026-03-19 19:10:36 +0000lol_(~lol@2603:3016:1e01:b980:9900:10f7:ff16:cae0) (Ping timeout: 264 seconds)
2026-03-19 19:11:24 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-03-19 19:12:39 +0000ss4(~wootehfoo@user/wootehfoot) (Quit: Leaving)
2026-03-19 19:13:26 +0000madresch(~Thunderbi@user/madresch) (Read error: Connection reset by peer)
2026-03-19 19:15:30 +0000somemathguy(~somemathg@user/somemathguy) (Ping timeout: 248 seconds)
2026-03-19 19:15:39 +0000madresch(~Thunderbi@user/madresch) madresch
2026-03-19 19:21:31 +0000wootehfoot(~wootehfoo@user/wootehfoot) wootehfoot
2026-03-19 19:22:15 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 19:23:26 +0000jreicher(~joelr@user/jreicher) (Quit: In transit)
2026-03-19 19:26:13 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-03-19 19:26:48 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-03-19 19:27:40 +0000malte(~malte@mal.tc) malte
2026-03-19 19:29:03 +0000madresch1(~Thunderbi@user/madresch) madresch
2026-03-19 19:29:51 +0000 <int-e> sm: tinkered a bit more, so links are now links.
2026-03-19 19:30:10 +0000madresch(~Thunderbi@user/madresch) (Ping timeout: 268 seconds)
2026-03-19 19:30:10 +0000madresch1madresch
2026-03-19 19:30:49 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 244 seconds)
2026-03-19 19:31:19 +0000somemathguy(~somemathg@user/somemathguy) somemathguy
2026-03-19 19:31:39 +0000 <haskellbridge> <sm> .
2026-03-19 19:31:39 +0000 <haskellbridge> @where where
2026-03-19 19:31:39 +0000 <lambdabot> https://silicon.int-e.eu/lambdabot/State/where.html
2026-03-19 19:31:50 +0000 <haskellbridge> <sm> xxx
2026-03-19 19:31:50 +0000 <haskellbridge> @where where
2026-03-19 19:31:50 +0000 <lambdabot> https://silicon.int-e.eu/lambdabot/State/where.html
2026-03-19 19:32:14 +0000peterbecich(~Thunderbi@71.84.33.135) peterbecich
2026-03-19 19:32:27 +0000 <sm> huh, quite a delay before those responses made it to the matrix side
2026-03-19 19:32:41 +0000 <sm> I have been assuming the bridge is "instant"
2026-03-19 19:33:15 +0000 <haskellbridge> <sm> int-e: excellent
2026-03-19 19:37:36 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 19:40:30 +0000malte_(~malte@mal.tc) malte
2026-03-19 19:40:34 +0000malte(~malte@mal.tc) (Ping timeout: 248 seconds)
2026-03-19 19:40:43 +0000malte_malte
2026-03-19 19:42:12 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-03-19 19:43:14 +0000arandombit(~arandombi@2a02:2455:8656:7100:85cb:5d02:5632:2f7c) arandombit
2026-03-19 19:43:14 +0000arandombit(~arandombi@2a02:2455:8656:7100:85cb:5d02:5632:2f7c) (Changing host)
2026-03-19 19:43:14 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-03-19 19:45:19 +0000malte(~malte@mal.tc) (Ping timeout: 264 seconds)
2026-03-19 19:47:24 +0000 <haskellbridge> <ijouw> I have a file where i define a function i thought would be better with RequiredTypeArguments, so i enabled it. That led to some type error on my (implicitly forall) type variable called ord (which collides with some function in Data.Char), claiming that the compiler cannot lift functions to type level.
2026-03-19 19:47:28 +0000 <haskellbridge> I am sure the reason for this behavior is some other language extension that R.T.A. depends on. Can someone tell me its name (or where the implicit activation is documented)?
2026-03-19 19:48:14 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 245 seconds)
2026-03-19 19:51:21 +0000Lord_of_Life_(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2026-03-19 19:52:03 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds)
2026-03-19 19:52:58 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 19:54:06 +0000malte(~malte@mal.tc) malte
2026-03-19 19:54:14 +0000Lord_of_Life_Lord_of_Life
2026-03-19 19:55:51 +0000madresch1(~Thunderbi@user/madresch) madresch
2026-03-19 19:56:34 +0000madresch(~Thunderbi@user/madresch) (Ping timeout: 248 seconds)
2026-03-19 19:56:35 +0000madresch1madresch
2026-03-19 19:57:54 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-03-19 19:59:47 +0000 <monochrom> The GHC User's Guide has implied extensions, i.e., if you turn on X, it tells you that it implies Y.
2026-03-19 20:00:26 +0000 <monochrom> (under the section on X)
2026-03-19 20:01:47 +0000 <monochrom> I recommend looking at your local copy of the GHC User's Guide that comes with your installed GHC. Because if you do the hippie thing and search the web, you will always get the wrong version.
2026-03-19 20:01:54 +0000peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 248 seconds)
2026-03-19 20:08:20 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 20:13:11 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-03-19 20:18:17 +0000arandombit(~arandombi@2a02:2455:8656:7100:85cb:5d02:5632:2f7c)
2026-03-19 20:18:17 +0000arandombit(~arandombi@2a02:2455:8656:7100:85cb:5d02:5632:2f7c) (Changing host)
2026-03-19 20:18:17 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-03-19 20:23:05 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 252 seconds)
2026-03-19 20:23:43 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 20:28:10 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-03-19 20:31:10 +0000m_a_r_k(~m_a_r_k@archlinux/support/mark) m_a_r_k
2026-03-19 20:33:14 +0000wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2026-03-19 20:34:26 +0000jreicher(~joelr@user/jreicher) jreicher
2026-03-19 20:35:30 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-03-19 20:35:58 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2026-03-19 20:36:05 +0000 <tcard__> sm: Thank you! I will add that book to the list once it becomes available.
2026-03-19 20:39:53 +0000Guest38(~Guest73@nat-128-84-124-0-685.cit.cornell.edu)
2026-03-19 20:40:01 +0000Guest38(~Guest73@nat-128-84-124-0-685.cit.cornell.edu) (Client Quit)
2026-03-19 20:50:06 +0000merijn(~merijn@62.45.136.136) merijn
2026-03-19 20:53:18 +0000 <haskellbridge> <ijouw> I asked because I do not see any such mention in https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/required_type_arguments.html#required-type…
2026-03-19 20:54:36 +0000merijn(~merijn@62.45.136.136) (Ping timeout: 255 seconds)
2026-03-19 20:57:07 +0000tjbc(~tjbc@user/fliife) (Quit: ZNC - https://znc.in)
2026-03-19 20:57:31 +0000 <haskellbridge> <ijouw> But it seems that the behavior is due to the changes in implicit quantification by the extension itsself.
2026-03-19 21:03:32 +0000tjbc(~tjbc@user/fliife) fliife
2026-03-19 21:05:27 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 21:07:48 +0000 <probie> gentauro: 3 hours late, but I find it works well enough to do something like https://paste.tomsmeding.com/FZlWMFzW to reduce duplication. It's not as nice as what you have in ocaml or F#, but it's not particularly onerous either
2026-03-19 21:10:00 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-03-19 21:12:01 +0000 <gentauro> probie: I added it to my project and it said "not supported
2026-03-19 21:12:12 +0000 <gentauro> I guess it's cos I test for several GHC versions
2026-03-19 21:12:24 +0000 <gentauro> and it's only available from 9.12
2026-03-19 21:12:26 +0000 <gentauro> :-\
2026-03-19 21:12:52 +0000 <gentauro> probie: oh, you actually don't use the pragam :o
2026-03-19 21:12:55 +0000 <gentauro> nice
2026-03-19 21:13:02 +0000timide(~timide@user/timide) (Read error: Connection reset by peer)
2026-03-19 21:13:27 +0000timide(~timide@user/timide) timide
2026-03-19 21:20:49 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 21:23:21 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...)
2026-03-19 21:23:31 +0000lisbeths(uid135845@id-135845.lymington.irccloud.com) lisbeths
2026-03-19 21:25:10 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-03-19 21:29:36 +0000 <gentauro> probie: now we are talking <3 https://paste.tomsmeding.com/IFDeoBAU
2026-03-19 21:31:25 +0000karenw(~karenw@user/karenw) (Ping timeout: 276 seconds)
2026-03-19 21:34:38 +0000CiaoSen(~Jura@p549cb690.dip0.t-ipconnect.de) CiaoSen
2026-03-19 21:36:12 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 21:39:53 +0000Square2(~Square4@user/square) Square
2026-03-19 21:43:05 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-03-19 21:51:59 +0000Guest62t(~Guest62t@p200300ca8f188500b4d545039923a63f.dip0.t-ipconnect.de) (Quit: Client closed)
2026-03-19 21:53:07 +0000shr\ke(~shrike@user/shrke:31298) (Ping timeout: 264 seconds)
2026-03-19 21:53:15 +0000shr\ke(~shrike@user/paxhumana) paxhumana
2026-03-19 21:53:15 +0000shr\ke(~shrike@user/paxhumana) (Changing host)
2026-03-19 21:53:15 +0000shr\ke(~shrike@user/shrke:31298) shr\ke
2026-03-19 21:54:15 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 21:59:01 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2026-03-19 22:00:01 +0000michalz(~michalz@185.246.207.217) (Remote host closed the connection)
2026-03-19 22:03:49 +0000peterbecich(~Thunderbi@71.84.33.135) peterbecich
2026-03-19 22:09:39 +0000merijn(~merijn@62.45.136.136) merijn
2026-03-19 22:12:55 +0000redshuffle(~quassel@45.43.70.75) (Remote host closed the connection)
2026-03-19 22:13:01 +0000redshuffle(~quassel@45.43.70.75)
2026-03-19 22:14:28 +0000merijn(~merijn@62.45.136.136) (Ping timeout: 256 seconds)
2026-03-19 22:16:30 +0000Goodbye_Vincent1(cyvahl@freakshells.net) (Ping timeout: 255 seconds)
2026-03-19 22:27:06 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 22:29:20 +0000haskellbridge(~hackager@96.28.224.214) (Remote host closed the connection)
2026-03-19 22:29:52 +0000haskellbridge(~hackager@96.28.224.214) hackager
2026-03-19 22:29:52 +0000ChanServ+v haskellbridge
2026-03-19 22:32:07 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-03-19 22:42:28 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 22:47:05 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-03-19 22:47:38 +0000tri(~tri@ool-44c70bcb.dyn.optonline.net)
2026-03-19 22:52:36 +0000tri(~tri@ool-44c70bcb.dyn.optonline.net) (Ping timeout: 264 seconds)
2026-03-19 22:54:45 +0000CiaoSen(~Jura@p549cb690.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
2026-03-19 22:57:45 +0000mstruebing(~mstruebin@ns343649.ip-188-165-193.eu) (Read error: Connection reset by peer)
2026-03-19 22:57:50 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 22:59:48 +0000somemathguy(~somemathg@user/somemathguy) (Ping timeout: 264 seconds)
2026-03-19 23:00:37 +0000somemathguy(~somemathg@user/somemathguy) somemathguy
2026-03-19 23:01:09 +0000mstruebing(~mstruebin@ns343649.ip-188-165-193.eu)
2026-03-19 23:02:35 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-03-19 23:13:17 +0000acidjnk_new3(~acidjnk@p200300d6e700e5412a4816b29ee23bce.dip0.t-ipconnect.de)
2026-03-19 23:13:17 +0000acidjnk_new(~acidjnk@p200300d6e700e5412a4816b29ee23bce.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2026-03-19 23:13:17 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 23:15:15 +0000Sgeo(~Sgeo@user/sgeo) Sgeo
2026-03-19 23:15:18 +0000seven3_(~seven3@user/seven3) seven3
2026-03-19 23:18:19 +0000ircbrowse_tom(~ircbrowse@user/tomsmeding/bot/ircbrowse-tom) (ZNC 1.9.0+deb2build3 - https://znc.in)
2026-03-19 23:18:43 +0000ircbrowse_tom(~ircbrowse@user/tomsmeding/bot/ircbrowse-tom) ircbrowse_tom
2026-03-19 23:18:45 +0000Server+Cnt
2026-03-19 23:19:36 +0000ursa-major(114efe6c39@2a03:6000:1812:100::11f3) (Ping timeout: 276 seconds)
2026-03-19 23:19:54 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-03-19 23:19:59 +0000bliminse(~bliminse@user/bliminse) (Ping timeout: 276 seconds)
2026-03-19 23:20:50 +0000cpli(77fc530071@2a03:6000:1812:100::252) (Ping timeout: 276 seconds)
2026-03-19 23:21:11 +0000ursa-major(114efe6c39@2a03:6000:1812:100::11f3) ursa-major
2026-03-19 23:21:20 +0000bliminse(~bliminse@user/bliminse) bliminse
2026-03-19 23:23:21 +0000eso_(a0662dfd5e@2a03:6000:1812:100::1266) jeso
2026-03-19 23:24:12 +0000cpli(77fc530071@2a03:6000:1812:100::252) cpli
2026-03-19 23:25:19 +0000cjay-(~cjay@nerdbox.nerd2nerd.org) cjay
2026-03-19 23:26:11 +0000sviermsung(CjyvmvHdzk@user/s4msung) s4msung
2026-03-19 23:27:46 +0000thaumavorio_(~thaumavor@thaumavor.io) thaumavorio
2026-03-19 23:29:30 +0000eso(a0662dfd5e@2a03:6000:1812:100::1266) (Ping timeout: 276 seconds)
2026-03-19 23:29:30 +0000s4msung(QGVxIqNFjX@user/s4msung) (Ping timeout: 276 seconds)
2026-03-19 23:29:30 +0000cjay(~cjay@nerdbox.nerd2nerd.org) (Ping timeout: 276 seconds)
2026-03-19 23:29:30 +0000thaumavorio(~thaumavor@thaumavor.io) (Ping timeout: 276 seconds)
2026-03-19 23:29:31 +0000craunts795335385(~craunts@152.32.99.2) (*.net *.split)
2026-03-19 23:29:31 +0000igemnace(~igemnace@user/igemnace) (*.net *.split)
2026-03-19 23:29:31 +0000PotatoGim(sid99505@id-99505.lymington.irccloud.com) (*.net *.split)
2026-03-19 23:29:31 +0000lane(809450f172@2a03:6000:1812:100::1300) (*.net *.split)
2026-03-19 23:29:31 +0000unlucy(sid572875@user/unlucy) (*.net *.split)
2026-03-19 23:29:31 +0000JSharp(sid4580@user/JSharp) (*.net *.split)
2026-03-19 23:29:31 +0000bryanv(~quassel@2603:c028:4503:7500:45b7:933:ab17:bc10) (*.net *.split)
2026-03-19 23:29:31 +0000krjst(~krjst@2a0a:4cc0:2000:789a:b827:c6ff:fed6:bb48) (*.net *.split)
2026-03-19 23:29:31 +0000shawwwn(uid6132@id-6132.helmsley.irccloud.com) (*.net *.split)
2026-03-19 23:29:31 +0000Techcable(sid534393@user/Techcable) (*.net *.split)
2026-03-19 23:29:31 +0000Zowlyfon(sid346067@user/Zowlyfon) (*.net *.split)
2026-03-19 23:29:31 +0000arkeet(arkeet@moriya.ca) (*.net *.split)
2026-03-19 23:29:31 +0000koala_man(~vidar@157.146.251.23.bc.googleusercontent.com) (*.net *.split)
2026-03-19 23:29:31 +0000sa(sid1055@id-1055.tinside.irccloud.com) (*.net *.split)
2026-03-19 23:29:31 +0000sus(1b7af6299f@user/zeromomentum) (*.net *.split)
2026-03-19 23:29:31 +0000dsal(sid13060@id-13060.lymington.irccloud.com) (*.net *.split)
2026-03-19 23:29:31 +0000tnks(sid412124@id-412124.helmsley.irccloud.com) (*.net *.split)
2026-03-19 23:29:31 +0000szkl(sid110435@id-110435.uxbridge.irccloud.com) (*.net *.split)
2026-03-19 23:29:31 +0000yaroot(~yaroot@2400:4052:ac0:d901:1cf4:2aff:fe51:c04c) (*.net *.split)
2026-03-19 23:29:31 +0000darkling(~darkling@2001-ba8-1f1-f0e6-0-0-0-2.autov6rev.bitfolk.space) (*.net *.split)
2026-03-19 23:29:31 +0000eso_eso
2026-03-19 23:29:44 +0000troydm(~troydm@user/troydm) troydm
2026-03-19 23:34:42 +0000sus(1b7af6299f@user/zeromomentum) zeromomentum
2026-03-19 23:36:19 +0000lane(809450f172@2a03:6000:1812:100::1300) lane
2026-03-19 23:38:23 +0000igemnace(~igemnace@user/igemnace) igemnace
2026-03-19 23:40:11 +0000craunts795335385(~craunts@152.32.99.2)
2026-03-19 23:40:11 +0000PotatoGim(sid99505@id-99505.lymington.irccloud.com) PotatoGim
2026-03-19 23:40:11 +0000unlucy(sid572875@user/unlucy) unlucy
2026-03-19 23:40:11 +0000JSharp(sid4580@user/JSharp) JSharp
2026-03-19 23:40:11 +0000bryanv(~quassel@2603:c028:4503:7500:45b7:933:ab17:bc10)
2026-03-19 23:40:11 +0000krjst(~krjst@2a0a:4cc0:2000:789a:b827:c6ff:fed6:bb48) krjst
2026-03-19 23:40:11 +0000shawwwn(uid6132@id-6132.helmsley.irccloud.com) shawwwn
2026-03-19 23:40:11 +0000Techcable(sid534393@user/Techcable) Techcable
2026-03-19 23:40:11 +0000Zowlyfon(sid346067@user/Zowlyfon) Zowlyfon
2026-03-19 23:40:11 +0000arkeet(arkeet@moriya.ca) arkeet
2026-03-19 23:40:11 +0000koala_man(~vidar@157.146.251.23.bc.googleusercontent.com) koala_man
2026-03-19 23:40:11 +0000sa(sid1055@id-1055.tinside.irccloud.com) sa
2026-03-19 23:40:11 +0000dsal(sid13060@id-13060.lymington.irccloud.com) dsal
2026-03-19 23:40:11 +0000tnks(sid412124@id-412124.helmsley.irccloud.com) tnks
2026-03-19 23:40:11 +0000szkl(sid110435@id-110435.uxbridge.irccloud.com) szkl
2026-03-19 23:40:11 +0000darkling(~darkling@2001-ba8-1f1-f0e6-0-0-0-2.autov6rev.bitfolk.space) darkling
2026-03-19 23:40:18 +0000PotatoGim(sid99505@id-99505.lymington.irccloud.com) (Max SendQ exceeded)
2026-03-19 23:40:18 +0000craunts795335385(~craunts@152.32.99.2) (Max SendQ exceeded)
2026-03-19 23:40:18 +0000krjst(~krjst@2a0a:4cc0:2000:789a:b827:c6ff:fed6:bb48) (Max SendQ exceeded)
2026-03-19 23:40:18 +0000Techcable(sid534393@user/Techcable) (Max SendQ exceeded)
2026-03-19 23:40:18 +0000szkl(sid110435@id-110435.uxbridge.irccloud.com) (Max SendQ exceeded)
2026-03-19 23:40:18 +0000unlucy(sid572875@user/unlucy) (Max SendQ exceeded)
2026-03-19 23:40:18 +0000sa(sid1055@id-1055.tinside.irccloud.com) (Max SendQ exceeded)
2026-03-19 23:40:20 +0000yaroot(~yaroot@2400:4052:ac0:d901:1cf4:2aff:fe51:c04c) yaroot
2026-03-19 23:40:42 +0000krjst(~krjst@2a0a:4cc0:2000:789a:b827:c6ff:fed6:bb48) krjst
2026-03-19 23:40:42 +0000craunts795335385(~craunts@152.32.99.2)
2026-03-19 23:40:48 +0000sa(sid1055@id-1055.tinside.irccloud.com) sa
2026-03-19 23:40:55 +0000PotatoGim(sid99505@id-99505.lymington.irccloud.com) PotatoGim
2026-03-19 23:40:56 +0000Techcable(sid534393@user/Techcable) Techcable
2026-03-19 23:40:56 +0000unlucy(sid572875@user/unlucy) unlucy
2026-03-19 23:41:04 +0000szkl(sid110435@id-110435.uxbridge.irccloud.com) szkl
2026-03-19 23:46:37 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-03-19 23:51:00 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-03-19 23:54:06 +0000Tuplanolla(~Tuplanoll@88-114-89-88.elisa-laajakaista.fi) (Quit: Leaving.)