2026/04/10

2026-04-10 00:03:09 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-04-10 00:04:15 +0000uli-fem(~uli-fem@115.128.112.118)
2026-04-10 00:04:21 +0000peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 246 seconds)
2026-04-10 00:11:42 +0000uli-fem(~uli-fem@115.128.112.118) (Ping timeout: 255 seconds)
2026-04-10 00:14:04 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 00:18:35 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-04-10 00:25:52 +0000uli-fem(~uli-fem@115.128.112.118)
2026-04-10 00:29:26 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 00:30:55 +0000uli-fem(~uli-fem@115.128.112.118) (Ping timeout: 272 seconds)
2026-04-10 00:33:40 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-04-10 00:38:41 +0000Sgeo(~Sgeo@user/sgeo) Sgeo
2026-04-10 00:44:49 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 00:51:30 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-04-10 00:57:27 +0000slomp(~slomp@47-158-212-88.lsan.ca.frontiernet.net) (Read error: Connection reset by peer)
2026-04-10 00:59:30 +0000Square(~Square4@user/square) (Ping timeout: 244 seconds)
2026-04-10 01:00:19 +0000slomp(~slomp@47-158-212-88.lsan.ca.frontiernet.net)
2026-04-10 01:00:25 +0000xff0x(~xff0x@ai112096.d.east.v6connect.net) (Ping timeout: 248 seconds)
2026-04-10 01:02:33 +0000_d0t_(~{-d0t-}@user/-d0t-/x-7915216) {-d0t-}
2026-04-10 01:02:42 +0000_d0t(~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 248 seconds)
2026-04-10 01:02:42 +0000_d0t__d0t
2026-04-10 01:02:52 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 01:04:41 +0000tremon(~tremon@83.80.159.219) (Quit: getting boxed in)
2026-04-10 01:07:21 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-04-10 01:09:50 +0000slomp_(~slomp@47-158-212-88.lsan.ca.frontiernet.net)
2026-04-10 01:12:41 +0000slomp(~slomp@47-158-212-88.lsan.ca.frontiernet.net) (Ping timeout: 248 seconds)
2026-04-10 01:14:54 +0000slomp(~slomp@47-158-198-45.lsan.ca.frontiernet.net)
2026-04-10 01:17:35 +0000slomp_(~slomp@47-158-212-88.lsan.ca.frontiernet.net) (Ping timeout: 244 seconds)
2026-04-10 01:18:14 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 01:22:45 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-04-10 01:34:41 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 01:39:12 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-04-10 01:55:39 +0000slomp(~slomp@47-158-198-45.lsan.ca.frontiernet.net) (Ping timeout: 255 seconds)
2026-04-10 01:56:21 +0000uli-fem(~uli-fem@115.128.112.118)
2026-04-10 01:57:53 +0000slomp(~slomp@47-158-198-45.lsan.ca.frontiernet.net)
2026-04-10 02:03:45 +0000uli-fem(~uli-fem@115.128.112.118) (Ping timeout: 255 seconds)
2026-04-10 02:03:46 +0000haskellbridge(~hackager@96.28.224.214) (Remote host closed the connection)
2026-04-10 02:04:17 +0000haskellbridge(~hackager@96.28.224.214) hackager
2026-04-10 02:04:17 +0000ChanServ+v haskellbridge
2026-04-10 02:05:04 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2026-04-10 02:05:23 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 02:07:48 +0000slomp(~slomp@47-158-198-45.lsan.ca.frontiernet.net) (Quit: Lost terminal)
2026-04-10 02:10:04 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-04-10 02:10:50 +0000slomp(~slomp@47-158-198-45.lsan.ca.frontiernet.net)
2026-04-10 02:15:28 +0000m1dnight_(~m1dnight@d8D861A17.access.telenet.be) (Ping timeout: 256 seconds)
2026-04-10 02:18:18 +0000uli-fem(~uli-fem@115.128.112.118)
2026-04-10 02:18:25 +0000m1dnight_(~m1dnight@d8D861A17.access.telenet.be) m1dnight
2026-04-10 02:23:06 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 02:23:49 +0000slomp_(~slomp@47-158-199-90.lsan.ca.frontiernet.net)
2026-04-10 02:26:26 +0000slomp(~slomp@47-158-198-45.lsan.ca.frontiernet.net) (Ping timeout: 248 seconds)
2026-04-10 02:29:55 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-04-10 02:40:17 +0000EvanR(~EvanR@user/evanr) (Quit: Leaving)
2026-04-10 02:41:09 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 02:41:50 +0000EvanR(~EvanR@user/evanr) EvanR
2026-04-10 02:45:25 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-04-10 02:56:30 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 03:00:00 +0000krei-se(~krei-se@p5b1642b0.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2026-04-10 03:00:55 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-04-10 03:03:11 +0000krei-se(~krei-se@p5b15768c.dip0.t-ipconnect.de) krei-se
2026-04-10 03:11:52 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 03:16:39 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-04-10 03:24:26 +0000Googulator85(~Googulato@94-21-172-213.pool.digikabel.hu) (Quit: Client closed)
2026-04-10 03:24:51 +0000Googulator85(~Googulato@94-21-172-213.pool.digikabel.hu)
2026-04-10 03:27:22 +0000divlamir(~divlamir@user/divlamir) (Read error: Connection reset by peer)
2026-04-10 03:27:35 +0000divlamir(~divlamir@user/divlamir) divlamir
2026-04-10 03:42:39 +0000merijn(~merijn@62.45.136.136) merijn
2026-04-10 03:44:27 +0000machinedgod(~machinedg@d172-219-48-230.abhsia.telus.net) (Ping timeout: 268 seconds)
2026-04-10 03:47:18 +0000merijn(~merijn@62.45.136.136) (Ping timeout: 268 seconds)
2026-04-10 03:54:23 +0000jmcantrell_(~weechat@user/jmcantrell) jmcantrell
2026-04-10 03:57:58 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 04:05:11 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2026-04-10 04:13:06 +0000tomboy65(~tomboy64@user/tomboy64) (Ping timeout: 248 seconds)
2026-04-10 04:16:01 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 04:16:41 +0000tomboy64(~tomboy64@user/tomboy64) tomboy64
2026-04-10 04:20:36 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2026-04-10 04:31:21 +0000uli-fem(~uli-fem@115.128.112.118) (Ping timeout: 255 seconds)
2026-04-10 04:31:23 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 04:32:49 +0000peterbecich(~Thunderbi@71.84.33.135) peterbecich
2026-04-10 04:35:44 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-04-10 04:46:45 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 04:51:23 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-04-10 04:57:30 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 04:58:21 +0000michalz(~michalz@185.246.207.215)
2026-04-10 04:59:25 +0000squid64(~user@fsf/member/squid64) (Quit: ERC 5.6.0.30.1 (IRC client for GNU Emacs 30.2))
2026-04-10 05:01:49 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-04-10 05:12:51 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 05:17:19 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-04-10 05:21:43 +0000acidjnk_new(~acidjnk@p200300d6e700e53609e75ead6525121b.dip0.t-ipconnect.de) acidjnk
2026-04-10 05:28:15 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 05:32:39 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-04-10 05:43:36 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 05:46:32 +0000ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2026-04-10 05:46:56 +0000ChaiTRex(~ChaiTRex@user/chaitrex) ChaiTRex
2026-04-10 05:48:50 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-04-10 05:54:09 +0000ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2026-04-10 05:54:29 +0000ChaiTRex(~ChaiTRex@user/chaitrex) ChaiTRex
2026-04-10 05:55:07 +0000acidjnk_new(~acidjnk@p200300d6e700e53609e75ead6525121b.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2026-04-10 05:56:32 +0000karenw(~karenw@user/karenw) karenw
2026-04-10 05:57:24 +0000uli-fem(~uli-fem@115.128.112.118)
2026-04-10 05:58:19 +0000CiaoSen(~Jura@p549cbfb1.dip0.t-ipconnect.de) CiaoSen
2026-04-10 05:58:30 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 05:59:35 +0000peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 244 seconds)
2026-04-10 06:02:41 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-04-10 06:04:13 +0000jmcantrell_(~weechat@user/jmcantrell) (Ping timeout: 276 seconds)
2026-04-10 06:10:51 +0000mfc_kbs-(~keibisoft@mail.keibisoft.com) (Quit: ZNC 1.9.0+deb2build3 - https://znc.in)
2026-04-10 06:11:11 +0000mfc_kbs(~keibisoft@mail.keibisoft.com)
2026-04-10 06:13:55 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 06:18:17 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-04-10 06:24:21 +0000ft(~ft@p508db287.dip0.t-ipconnect.de) (Quit: leaving)
2026-04-10 06:24:36 +0000tusko(~uwu@user/tusko) (Remote host closed the connection)
2026-04-10 06:24:52 +0000tusko(~uwu@user/tusko) tusko
2026-04-10 06:28:48 +0000tusko(~uwu@user/tusko) (Remote host closed the connection)
2026-04-10 06:29:19 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 06:29:55 +0000tusko(~uwu@user/tusko) tusko
2026-04-10 06:32:21 +0000attlin(~user@user/attlin) (Quit: Leaving)
2026-04-10 06:33:47 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-04-10 06:36:34 +0000attlin(~user@user/attlin) attlin
2026-04-10 06:41:40 +0000czan(~czan@user/mange) (Quit: Zzz...)
2026-04-10 06:44:44 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 06:46:26 +0000synchromesh(~john@2406:5a00:2412:2c00:e029:fa8c:cb38:398f) (Read error: Connection reset by peer)
2026-04-10 06:47:47 +0000synchromesh(~john@2406:5a00:2412:2c00:84a:b712:d1d0:a9d4) synchromesh
2026-04-10 06:51:21 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-04-10 06:56:34 +0000constxd(~constxd@user/constxd) (Quit: kiwi irc - hadmade client)
2026-04-10 06:57:01 +0000constxd(~constxd@user/constxd) constxd
2026-04-10 06:59:32 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 07:01:02 +0000Googulator85(~Googulato@94-21-172-213.pool.digikabel.hu) (Ping timeout: 245 seconds)
2026-04-10 07:01:30 +0000Milan_Vanca(~milan@88.212.61.169)
2026-04-10 07:04:40 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2026-04-10 07:09:06 +0000tromp(~textual@2001:1c00:340e:2700:8dcf:a6d6:339b:7a0)
2026-04-10 07:13:18 +0000 <gentauro> if you use the `DuplicateRecordFields` language pragma (duplicate record fields). How do you specify you want to use `Foo { foo :: String }` from `FooBar { foo :: String, bar :: String}`?
2026-04-10 07:14:53 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 07:19:15 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-04-10 07:20:42 +0000sord937(~sord937@gateway/tor-sasl/sord937) sord937
2026-04-10 07:25:09 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-04-10 07:30:16 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 07:30:34 +0000califax_(~califax@user/califx) califx
2026-04-10 07:30:49 +0000califax(~califax@user/califx) (Remote host closed the connection)
2026-04-10 07:31:49 +0000califax_califax
2026-04-10 07:34:45 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-04-10 07:39:35 +0000Enrico63(~Enrico63@host-212-171-80-94.retail.telecomitalia.it) Enrico63
2026-04-10 07:43:14 +0000arandombit(~arandombi@user/arandombit) (Remote host closed the connection)
2026-04-10 07:44:53 +0000arandombit(~arandombi@2a02:2455:8656:7100:e481:bbc9:3363:2734)
2026-04-10 07:44:53 +0000arandombit(~arandombi@2a02:2455:8656:7100:e481:bbc9:3363:2734) (Changing host)
2026-04-10 07:44:53 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-04-10 07:45:38 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 07:48:37 +0000Guest62(~Guest62@p200300ca8f075300066cfcebe99f05bc.dip0.t-ipconnect.de)
2026-04-10 07:50:22 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-04-10 07:56:33 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 08:02:22 +0000Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2026-04-10 08:04:33 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-04-10 08:07:14 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 248 seconds)
2026-04-10 08:09:09 +0000krei-se-(~krei-se@2003:a:67f:b77c::c8c6) krei-se
2026-04-10 08:09:12 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2026-04-10 08:09:36 +0000krei-se(~krei-se@p5b15768c.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2026-04-10 08:09:53 +0000takuan(~takuan@d8D86B9E9.access.telenet.be)
2026-04-10 08:10:55 +0000karenw(~karenw@user/karenw) (Ping timeout: 244 seconds)
2026-04-10 08:12:08 +0000emmanuelux(~em@user/emmanuelux) (Quit: bye)
2026-04-10 08:13:20 +0000karenw(~karenw@user/karenw) karenw
2026-04-10 08:15:16 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 08:22:10 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-04-10 08:23:53 +0000danza(~danza@user/danza) danza
2026-04-10 08:27:46 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-10 08:34:13 +0000 <tomsmeding> gentauro: https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/duplicate_record_fields.html#extens…
2026-04-10 08:34:24 +0000 <tomsmeding> I think the part until 6.5.5.1 answers your question
2026-04-10 08:34:28 +0000szkl(uid110435@id-110435.uxbridge.irccloud.com) szkl
2026-04-10 08:39:46 +0000synchromesh(~john@2406:5a00:2412:2c00:84a:b712:d1d0:a9d4) (Ping timeout: 248 seconds)
2026-04-10 08:42:04 +0000weary-traveler(~user@user/user363627) (Remote host closed the connection)
2026-04-10 08:42:23 +0000__monty__(~toonn@user/toonn) toonn
2026-04-10 08:57:15 +0000GdeVolpi1(~GdeVolpia@user/GdeVolpiano) GdeVolpiano
2026-04-10 08:58:58 +0000GdeVolpiano(~GdeVolpia@user/GdeVolpiano) (Ping timeout: 244 seconds)
2026-04-10 08:59:32 +0000arandombit(~arandombi@user/arandombit) (Remote host closed the connection)
2026-04-10 09:01:38 +0000 <Milan_Vanca> Do I understand that correctly that there is difference between exporting module M (S(S, x)) where .. and module M (S(S), x) where
2026-04-10 09:02:36 +0000 <Milan_Vanca> data S = S {x :: Int}
2026-04-10 09:03:39 +0000synchromesh(~john@2406:5a00:2412:2c00:84a:b712:d1d0:a9d4) synchromesh
2026-04-10 09:10:04 +0000 <Milan_Vanca> Anyway I want to ask different question. I have noticed many libs (alost all) on hackage to specify upper bound for its dependencies. This article https://iscinumpy.dev/post/bound-version-constraints/ says libs should not do that. Do you think information in that article is relevant for haskell packages?
2026-04-10 09:11:22 +0000danza(~danza@user/danza) (Read error: Connection reset by peer)
2026-04-10 09:11:32 +0000danza(~danza@user/danza) danza
2026-04-10 09:12:23 +0000 <Milan_Vanca> I don't want to start flame war I am asking in good faith. Like now I just manually "allow-newer" for every dependency but it tiresome
2026-04-10 09:14:40 +0000infinity0(~infinity0@pwned.gg) (Ping timeout: 276 seconds)
2026-04-10 09:15:16 +0000 <Milan_Vanca> To my knowledge cabal/ghc too uses "flat" structure of dependencies same as python, so arguments should be applicable.
2026-04-10 09:19:03 +0000 <merijn> I don't know what "flt structure oif dependencies" means
2026-04-10 09:19:32 +0000 <merijn> Milan_Vanca: Python's ecosystem is constantly broken, so I would ignore anything they say
2026-04-10 09:19:39 +0000 <tomsmeding> from the tldr in that article:
2026-04-10 09:19:42 +0000 <tomsmeding> > Anyone can fix a missing cap, but users cannot fix an over restrictive cap
2026-04-10 09:19:51 +0000 <merijn> They keep reinventing their build tools every year too, each time with the same problems
2026-04-10 09:19:51 +0000 <tomsmeding> well, no
2026-04-10 09:20:25 +0000 <tomsmeding> fixing a missing cap requires forking the project, whereas fixing an over-restrictive cap can be done with allow-newer or by asking for a non-maintainer update of the metadata on hackagte
2026-04-10 09:20:29 +0000 <merijn> Milan_Vanca: cabal is fundamentally different from python's dependencies management approach
2026-04-10 09:20:55 +0000 <merijn> Milan_Vanca: Have you read the PVP?
2026-04-10 09:21:14 +0000 <merijn> Milan_Vanca: https://pvp.haskell.org
2026-04-10 09:22:18 +0000 <Milan_Vanca> merijn: :D Good point I think
2026-04-10 09:22:26 +0000 <merijn> Not to mention in python everything's just dictionaries of strings to values and no guarantees of what fields exist. Which means that using the wrong version very often kinda seems to work, if you're lucky
2026-04-10 09:23:15 +0000 <Milan_Vanca> merijn: Not yet thank you for link
2026-04-10 09:23:18 +0000 <merijn> Milan_Vanca: If you have to "allow-newer" many things, that's a sign you're using unmaintained/out of date dependencies
2026-04-10 09:23:27 +0000 <merijn> OR you're on the bleeding edge
2026-04-10 09:24:02 +0000 <Milan_Vanca> tomsmeding: but can't we say in cabal to cap some max version and thus no need for fork?
2026-04-10 09:24:39 +0000 <merijn> Milan_Vanca: Some important differences between cabal and python's tooling: 1) cabal creates a DAG of dependencies with version constraints and tries to solve it to find a combination of dependency versions that makes every transitive dependency happy
2026-04-10 09:24:57 +0000 <Milan_Vanca> merijn: No I use ghc 9.14 and many libs just don't support that yet.
2026-04-10 09:25:00 +0000 <merijn> that means that if a package claims to work (no upper bound), but doesn't you break everything
2026-04-10 09:25:07 +0000 <merijn> Milan_Vanca: Right, so that's bleeding edge :p
2026-04-10 09:25:14 +0000 <merijn> I would not use the latest GHC, tbh
2026-04-10 09:25:26 +0000 <merijn> I personally always used "second to latest"
2026-04-10 09:27:34 +0000 <merijn> Milan_Vanca: 2) unlike python's "everything is globally installed" OR "you gotta manually sandbox each project", cabal creates "on-demand" per-project projections of everything installed globally
2026-04-10 09:27:37 +0000 <Milan_Vanca> merijn: I read your note about building DAG and trying to satisfy all dependencies.. But python must do the same
2026-04-10 09:27:43 +0000 <merijn> Milan_Vanca: Oh god no
2026-04-10 09:28:00 +0000 <Milan_Vanca> Okey I mean poetry
2026-04-10 09:28:06 +0000 <merijn> Milan_Vanca: Most Python tooling just looks at your flat list of dependencies and goes "check, lemme use that"
2026-04-10 09:28:36 +0000 <Milan_Vanca> you have sandbox and then solve dependencies there...
2026-04-10 09:28:57 +0000 <merijn> Milan_Vanca: at any rate, unless there is a specific bug blocking you OR new feature you need from the latest GHC I would never recommend using the latest version
2026-04-10 09:29:16 +0000 <merijn> I'd probably pick 9.10 or 9.12 atm
2026-04-10 09:30:46 +0000 <merijn> And then all your --allow-newer problems should hopefully disappear
2026-04-10 09:31:13 +0000 <Milan_Vanca> That is one way granted
2026-04-10 09:31:58 +0000 <gentauro> tomsmeding: yeah, I road that piece of documentation and I didn't get any wiser …
2026-04-10 09:32:05 +0000 <merijn> It generally takes 9 months to a year for a new GHC version to percolate through to for the majority of the ecosystem to
2026-04-10 09:32:24 +0000 <merijn> And there's often not a really big reason to adopt the bleeding edge while that happens
2026-04-10 09:33:04 +0000 <gentauro> anyway, just renamed the field and no probs :)
2026-04-10 09:34:36 +0000infinity0(~infinity0@pwned.gg) infinity0
2026-04-10 09:43:41 +0000 <Milan_Vanca> merijn: Your stance about not using latest version are quite strong. And I kind of agree when one develops mission critical application. But also somebody needs to use and test latest version to iron out all issues. I don't want to believe that "Suitable for use/LTS" is really that buggy.
2026-04-10 09:44:58 +0000 <Milan_Vanca> But also maybe I like to live on edge...There is also .NET MAUI "production ready" for few years but still unusable...
2026-04-10 09:48:49 +0000 <merijn> Oh, I'm not saying you shouldn't use/test the latest version. Just be aware that that comes with a lot of --allow-newer overrides until adoption goes wider :p
2026-04-10 09:49:38 +0000 <merijn> Milan_Vanca: It's not so much about not using latest because of being buggy, but just because dealing with the ecosystem not being instantly ready is too much of a hassle
2026-04-10 09:51:26 +0000 <Milan_Vanca> merijn: If I "allow-newer" then the "worst" case is that type's won't match and it just won't compile right? Should I also expect runtime bugs? I mean there is always posibility to use "untested" version.
2026-04-10 09:52:39 +0000craunts795335385(~craunts@152.32.99.2)
2026-04-10 09:53:23 +0000 <Milan_Vanca> Yeah.. runtime bugs are always possible.. I should start writing more tests :D
2026-04-10 09:54:47 +0000craunts795335385(~craunts@152.32.99.2) (Client Quit)
2026-04-10 09:55:17 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 244 seconds)
2026-04-10 09:55:53 +0000craunts795335385(~craunts@152.32.99.2)
2026-04-10 10:01:43 +0000Square3(~Square@user/square) Square
2026-04-10 10:02:59 +0000 <Milan_Vanca> merijn: Anyway when you said not to look up to python packaging. Are there other systems you might recommend?
2026-04-10 10:03:13 +0000Enrico63(~Enrico63@host-212-171-80-94.retail.telecomitalia.it) (Quit: Client closed)
2026-04-10 10:03:42 +0000 <merijn> haskell's :p
2026-04-10 10:03:47 +0000 <merijn> and maybe Rust?
2026-04-10 10:04:03 +0000 <merijn> Although rust's stuff is heavily cabal inspired afaik
2026-04-10 10:04:23 +0000 <Milan_Vanca> really? I didn't know that