2025/10/27

2025-10-27 00:00:13 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 00:05:11 +0100Shark8(~Shark8@c-174-56-102-109.hsd1.nm.comcast.net)
2025-10-27 00:06:51 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-10-27 00:07:22 +0100Dhark8(~Shark8@c-174-56-102-109.hsd1.nm.comcast.net) (Ping timeout: 240 seconds)
2025-10-27 00:09:58 +0100Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 244 seconds)
2025-10-27 00:15:06 +0100target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2025-10-27 00:15:42 +0100pavonia(~user@user/siracusa) siracusa
2025-10-27 00:15:59 +0100ljdarj(~Thunderbi@user/ljdarj) (Quit: ljdarj)
2025-10-27 00:16:22 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-10-27 00:18:02 +0100trickard(~trickard@cpe-55-98-47-163.wireline.com.au) (Ping timeout: 240 seconds)
2025-10-27 00:18:16 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 00:18:44 +0100trickard_(~trickard@cpe-55-98-47-163.wireline.com.au)
2025-10-27 00:20:30 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 272 seconds)
2025-10-27 00:22:53 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-10-27 00:24:35 +0100Pozyomka(~pyon@user/pyon) (Quit: test, bbl)
2025-10-27 00:30:26 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 00:32:08 +0100jmcantrell(~weechat@user/jmcantrell) jmcantrell
2025-10-27 00:35:04 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-10-27 00:39:52 +0100Pozyomka(~pyon@user/pyon) pyon
2025-10-27 00:39:56 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds)
2025-10-27 00:41:06 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-10-27 00:41:26 +0100Pozyomka(~pyon@user/pyon) (Client Quit)
2025-10-27 00:42:44 +0100Pozyomka(~pyon@user/pyon) pyon
2025-10-27 00:46:14 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 00:50:53 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-10-27 00:54:44 +0100trickard_(~trickard@cpe-55-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-10-27 00:54:58 +0100trickard_(~trickard@cpe-55-98-47-163.wireline.com.au)
2025-10-27 00:58:15 +0100jzargo2(~jzargo@user/jzargo) (Read error: Connection reset by peer)
2025-10-27 00:58:38 +0100jzargo2(~jzargo@user/jzargo) jzargo
2025-10-27 00:59:00 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 252 seconds)
2025-10-27 01:02:03 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 01:05:22 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 240 seconds)
2025-10-27 01:07:03 +0100werneta(~werneta@71.83.160.242) werneta
2025-10-27 01:07:17 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-10-27 01:13:53 +0100 <jackdk> sm: I had to make revisions to 25 `http-conduit` releases because none of them had upper bounds on their `aeson` deps. Snoyman, though stack, definitely preached and practiced "no-upper-bounds". `stack new`still generates templates like `base >= 4.7 && <5`, which admits new `base` releases that are allowed to break backwards-compatibility.
2025-10-27 01:17:17 +0100 <haskellbridge> <sm> I believe stack never "told its users to make hackage worse for everybody". Blog posts and interpretations at some point in time are a different matter, if you want to cite we could discuss, but it's not that important now is it
2025-10-27 01:17:32 +0100craunts795335385(~craunts@136.158.7.194)
2025-10-27 01:17:48 +0100 <haskellbridge> <sm> and bravo for revising past releases. (I usually don't go that far back)
2025-10-27 01:17:49 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 01:18:02 +0100jmcantrell(~weechat@user/jmcantrell) (Ping timeout: 240 seconds)
2025-10-27 01:20:48 +0100 <L29Ah> stack users still upload packages to hackage with synopsis made of "hackage docs suck go to stackage"
2025-10-27 01:22:49 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-10-27 01:24:05 +0100 <haskellbridge> <sm> ok what fresh hell is this.. show us please L29Ah :)
2025-10-27 01:26:53 +0100jmcantrell(~weechat@user/jmcantrell) jmcantrell
2025-10-27 01:27:29 +0100 <jackdk> https://hackage.haskell.org/package/conduit-1.3.6.1 is one example: "Hackage documentation generation is not reliable. For up to date documentation, please see: http://www.stackage.org/package/conduit". It's not in the templates that `stack new` generates today, AFAICT but it takes time for existing projects to change
2025-10-27 01:28:42 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 240 seconds)
2025-10-27 01:29:21 +0100 <haskellbridge> <sm> I don't see a problem here, YMMMV
2025-10-27 01:31:26 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 01:32:28 +0100 <L29Ah> ok i admit it is probably just a personal gimmick, and i'm just seeing those packages very often // https://hackage.haskell.org/package/http-client
2025-10-27 01:38:02 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-10-27 01:47:02 +0100acidjnk(~acidjnk@p200300d6e7171978edfa37a47c9b2101.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2025-10-27 01:47:22 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 240 seconds)
2025-10-27 01:49:07 +0100 <geekosaur> people still think cabal is in its v1 days
2025-10-27 01:49:25 +0100 <geekosaur> and hackage did at one point have problems building docs, but that was fixed like a decade ago
2025-10-27 01:49:29 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 01:49:52 +0100xff0x(~xff0x@ai080027.d.east.v6connect.net) (Ping timeout: 260 seconds)
2025-10-27 01:53:02 +0100annamalai(~annamalai@157.49.232.23) (Ping timeout: 240 seconds)
2025-10-27 01:54:01 +0100trickard_trickard
2025-10-27 01:54:31 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-10-27 01:59:38 +0100dtman34(~dtman34@2601:447:d182:6512:c2f9:c3a:b83d:6490) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
2025-10-27 01:59:59 +0100dtman34(~dtman34@2601:447:d182:6512:c2f9:c3a:b83d:6490) dtman34
2025-10-27 02:00:03 +0100 <c_wraith> hackage still won't build docs if the package depends on a library that isn't (or can't be) installed. But it supports uploading docs for that situation.
2025-10-27 02:02:11 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-10-27 02:04:11 +0100 <geekosaur> right, but there was a time when it was failing for all packages
2025-10-27 02:04:15 +0100 <geekosaur> lasted a couple years
2025-10-27 02:05:17 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 02:06:09 +0100dtman34_(~dtman34@c-73-242-68-179.hsd1.mn.comcast.net) dtman34
2025-10-27 02:07:28 +0100dtman34(~dtman34@2601:447:d182:6512:c2f9:c3a:b83d:6490) (Ping timeout: 246 seconds)
2025-10-27 02:09:09 +0100weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-10-27 02:10:24 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-10-27 02:10:55 +0100weary-traveler(~user@user/user363627) user363627
2025-10-27 02:15:37 +0100dtman34_(~dtman34@c-73-242-68-179.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2025-10-27 02:15:44 +0100Dhark8(~Shark8@c-174-56-102-109.hsd1.nm.comcast.net)
2025-10-27 02:16:18 +0100ChaiTRex(~ChaiTRex@user/chaitrex) ChaiTRex
2025-10-27 02:18:53 +0100Shark8(~Shark8@c-174-56-102-109.hsd1.nm.comcast.net) (Ping timeout: 256 seconds)
2025-10-27 02:20:46 +0100dtman34(~dtman34@2601:447:d182:6512:c2f9:c3a:b83d:6490) dtman34
2025-10-27 02:23:18 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 02:24:02 +0100otto_s(~user@p5de2fe86.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2025-10-27 02:26:07 +0100otto_s(~user@p5b0443f3.dip0.t-ipconnect.de)
2025-10-27 02:27:42 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-10-27 02:28:22 +0100ttybitnik(~ttybitnik@user/wolper) (Quit: Fading out...)
2025-10-27 02:34:13 +0100ft(~ft@mue-88-130-105-028.dsl.tropolys.de) (Ping timeout: 264 seconds)
2025-10-27 02:35:52 +0100ft(~ft@mue-88-130-104-115.dsl.tropolys.de) ft
2025-10-27 02:38:42 +0100pr1sm(~pr1sm@24.91.163.31)
2025-10-27 02:38:46 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 02:42:05 +0100dtman34(~dtman34@2601:447:d182:6512:c2f9:c3a:b83d:6490) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
2025-10-27 02:42:25 +0100dtman34(~dtman34@2601:447:d182:6512:c2f9:c3a:b83d:6490) dtman34
2025-10-27 02:43:50 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-10-27 02:45:10 +0100L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2025-10-27 02:45:25 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2025-10-27 02:49:49 +0100peterbecich(~Thunderbi@172.222.148.214) peterbecich
2025-10-27 02:49:52 +0100econo_(uid147250@id-147250.tinside.irccloud.com)
2025-10-27 02:54:31 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 02:58:50 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 272 seconds)
2025-10-27 02:59:02 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-10-27 02:59:08 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-10-27 03:00:11 +0100pr1sm(~pr1sm@24.91.163.31) (Remote host closed the connection)
2025-10-27 03:00:17 +0100dtman34(~dtman34@2601:447:d182:6512:c2f9:c3a:b83d:6490) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
2025-10-27 03:00:27 +0100pr1sm(~pr1sm@24.91.163.31)
2025-10-27 03:00:38 +0100dtman34(~dtman34@c-73-242-68-179.hsd1.mn.comcast.net) dtman34
2025-10-27 03:01:04 +0100ChaiTRex(~ChaiTRex@user/chaitrex) ChaiTRex
2025-10-27 03:07:12 +0100Shark8(~Shark8@c-174-56-102-109.hsd1.nm.comcast.net)
2025-10-27 03:07:45 +0100haltingsolver(~cmo@2604:3d09:207f:8000::d1dc) (Remote host closed the connection)
2025-10-27 03:08:07 +0100haltingsolver(~cmo@2604:3d09:207f:8000::d1dc)
2025-10-27 03:09:05 +0100OWS(~Shark8@c-174-56-102-109.hsd1.nm.comcast.net)
2025-10-27 03:09:19 +0100Dhark8(~Shark8@c-174-56-102-109.hsd1.nm.comcast.net) (Ping timeout: 240 seconds)
2025-10-27 03:10:10 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 256 seconds)
2025-10-27 03:10:18 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 03:10:55 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2025-10-27 03:11:44 +0100Shark8(~Shark8@c-174-56-102-109.hsd1.nm.comcast.net) (Ping timeout: 240 seconds)
2025-10-27 03:15:37 +0100Tuplanolla(~Tuplanoll@91-159-187-167.elisa-laajakaista.fi) (Ping timeout: 264 seconds)
2025-10-27 03:15:43 +0100Maxdamantus(~Maxdamant@user/maxdamantus) (Ping timeout: 246 seconds)
2025-10-27 03:16:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-10-27 03:17:18 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-10-27 03:17:51 +0100Maxdamantus(~Maxdamant@user/maxdamantus) Maxdamantus
2025-10-27 03:19:29 +0100pr1sm(~pr1sm@24.91.163.31) (Remote host closed the connection)
2025-10-27 03:19:35 +0100dtman34(~dtman34@c-73-242-68-179.hsd1.mn.comcast.net) (Ping timeout: 244 seconds)
2025-10-27 03:19:49 +0100 <jackdk> sm: re: "bravo for revising past releases. (I usually don't go that far back)." The thing is, I *had* to, because the lack of upper bounds on `aeson` meant that `cabal` kept selecting older and older releases in the build plan until I revised them all.
2025-10-27 03:24:15 +0100dtman34(~dtman34@2601:447:d182:6512:c2f9:c3a:b83d:6490) dtman34
2025-10-27 03:28:20 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 03:29:09 +0100machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 256 seconds)
2025-10-27 03:33:07 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-10-27 03:35:02 +0100dtman34(~dtman34@2601:447:d182:6512:c2f9:c3a:b83d:6490) (Ping timeout: 240 seconds)
2025-10-27 03:36:47 +0100 <haskellbridge> <sm> yes, that's the nature of cabal
2025-10-27 03:37:34 +0100 <haskellbridge> <sm> though usually only some other problem constraint causes it to go so far back
2025-10-27 03:38:02 +0100 <haskellbridge> <sm> the dynamic solver doesn't think like a human and isn't good at explaining what it's doing
2025-10-27 03:40:07 +0100 <jackdk> Because I am very pro-upper-bounds + relaxation, I consider the real problem to be that 25 releases were left lying around waiting to be broken by a dependency that introduced a breaking change, and that the policy encouraged by the behaviour of the stack binary pushes the cost of reacting to that breaking change onto everyone else except the maintainer.
2025-10-27 03:40:35 +0100 <jackdk> correction, the policy encouraged by *old templates instantiated by* the stack binary
2025-10-27 03:43:53 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 03:44:25 +0100werneta(~werneta@71.83.160.242) (Quit: Lost terminal)
2025-10-27 03:47:21 +0100 <haskellbridge> <sm> if you are still trying to blame (some part of) stack", I won't stop you. I'll also continue to push back when I see advice that misleads new haskellers
2025-10-27 03:49:00 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-10-27 03:49:44 +0100 <haskellbridge> <sm> this is engineering, people are operating in many different contexts, there are tradeoffs. I appreciate people exploring different approaches (leading to better understanding and consensus over time)
2025-10-27 03:55:37 +0100lol__jcarpenter2
2025-10-27 03:59:40 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 04:04:31 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-10-27 04:08:31 +0100annamalai(~annamalai@157.49.214.182) annamalai
2025-10-27 04:10:11 +0100dtman34(~dtman34@2601:447:d182:6512:c2f9:c3a:b83d:6490) dtman34
2025-10-27 04:13:22 +0100peterbecich(~Thunderbi@172.222.148.214) (Ping timeout: 240 seconds)
2025-10-27 04:15:28 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 04:20:25 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-10-27 04:30:52 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 04:34:03 +0100dtman34(~dtman34@2601:447:d182:6512:c2f9:c3a:b83d:6490) (Ping timeout: 252 seconds)
2025-10-27 04:35:44 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-10-27 04:39:43 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 246 seconds)
2025-10-27 04:39:58 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-10-27 04:44:08 +0100td_(~td@i53870936.versanet.de) (Ping timeout: 240 seconds)
2025-10-27 04:46:03 +0100td_(~td@i5387093E.versanet.de) td_
2025-10-27 04:46:42 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 04:53:19 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-10-27 04:54:14 +0100dtman34(~dtman34@2601:447:d182:6512:c2f9:c3a:b83d:6490) dtman34
2025-10-27 04:54:14 +0100synchromesh(~john@2406:5a00:2412:2c00:5ca1:546e:8b5a:71bf) (Read error: Connection reset by peer)
2025-10-27 04:54:42 +0100synchromesh(~john@2406:5a00:2412:2c00:80f9:f3a2:4980:7e12) synchromesh
2025-10-27 04:59:19 +0100 <hololeap> hi. I have a question about this code: https://bpa.st/3JY2S
2025-10-27 05:00:32 +0100 <hololeap> I remember learning at one point that I should be discouraged from putting a constraint inside a data type, but it seems to be working really well here
2025-10-27 05:00:49 +0100 <hololeap> it let me make a Foldable type for NonEmptyHashSet
2025-10-27 05:01:27 +0100 <hololeap> foldable instance
2025-10-27 05:04:08 +0100 <glguy> the main one you were supposed to avoid was on the outside: data Ord a => T a = D
2025-10-27 05:04:21 +0100 <Leary> hololeap: Couldn't it be `Foldable` regardless? In fact, you should be able to derive it.
2025-10-27 05:04:42 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 05:05:36 +0100 <hololeap> Leary: my implentation of toList turns it into a HashSet first, but I could have turned it into a list a different way
2025-10-27 05:05:51 +0100 <Leary> It's not inherently bad to put a constraint on a *constructor*, but it's something you ought to have a good reason for.
2025-10-27 05:06:07 +0100 <Leary> Since it means carrying the dictionary everywhere.
2025-10-27 05:07:20 +0100 <hololeap> everything function in the module had a Hashable constraint before I added the constraint inside the data type
2025-10-27 05:07:25 +0100 <hololeap> *every
2025-10-27 05:07:44 +0100 <monochrom> I wonder if you actually need it.
2025-10-27 05:07:58 +0100 <jackdk> You're also asking for the caller to provide the `Hashable a` constraint while also carrying the same dictionary in the ctor
2025-10-27 05:08:13 +0100 <monochrom> Hrm, you need it.
2025-10-27 05:08:33 +0100 <hololeap> it carries two types that both assume Hashable: Hashed and HashSet
2025-10-27 05:08:46 +0100 <jackdk> You can write the instance a `instance (forall a. Hashable a) => Foldable NonEmptyHashSet` if you turn on
2025-10-27 05:08:51 +0100 <jackdk> the necessary extensions
2025-10-27 05:09:04 +0100 <hololeap> is that QuantifiedConstraints?
2025-10-27 05:09:07 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-10-27 05:09:22 +0100 <Leary> Uhh. I don't think that constraint is satisfiable without `instance Hashable a`.
2025-10-27 05:12:23 +0100 <jackdk> Ah, you're correct. Nevertheless, you can define `toList` without constraints (`toList ha hsa = unhash ha : toList hsa`) and then `foldMap f = foldMap f . toList`
2025-10-27 05:13:03 +0100 <Leary> Yes, that's equivalent to `deriving Foldable`. Not that it really makes sense for unordered containers in the first place.
2025-10-27 05:14:49 +0100 <hololeap> Foldable doesn't make sense?
2025-10-27 05:15:08 +0100 <hololeap> it's mostly to be able to use `all` and `any`
2025-10-27 05:15:47 +0100 <hololeap> so the ordering doesn't really matter. I could do what jackdk says and then remove the inner Foldable constraint on the data type
2025-10-27 05:17:21 +0100 <hololeap> glguy: what is the difference between on the outside vs the inside?
2025-10-27 05:17:51 +0100 <monochrom> Oh! It's equivalent to "data N a where N :: Hashable a => N (Hashed a) (HashSet a)". You're using GADTs.
2025-10-27 05:18:22 +0100 <hololeap> oh... I have GHC2021 turned on
2025-10-27 05:18:29 +0100 <monochrom> :)
2025-10-27 05:18:47 +0100 <monochrom> FWIW, it also means you don't need explicit RankNTypes :)
2025-10-27 05:19:13 +0100 <hololeap> I thought it was using RankNTypes and I wanted to make it explicit
2025-10-27 05:19:34 +0100 <hololeap> I didn't think of GADTs
2025-10-27 05:20:05 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 05:20:13 +0100 <monochrom> RankNTypes would be like "data N = N (forall a. Hashable a => ...)"
2025-10-27 05:20:15 +0100 <hololeap> that's actually a reason not to use GHC2021
2025-10-27 05:22:30 +0100 <hololeap> monochrom: what is the difference?
2025-10-27 05:23:03 +0100 <hololeap> between that and `= Hashable a => NEHashSet (Hashed a) (HashSet a)`
2025-10-27 05:23:56 +0100 <hololeap> I remember one of them is using ExistentialQuantification, but which one?
2025-10-27 05:24:43 +0100 <monochrom> I will use a toy example. "data X a = X a" vs "data Y = Y (forall a. a)". I can make "x :: X Int; x = X 5". I cannot make a value of Y, short of Y undefined.
2025-10-27 05:25:02 +0100 <hololeap> ok
2025-10-27 05:25:20 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-10-27 05:26:14 +0100 <hololeap> but how is this different: `= Hashable a => NEHashSet (Hashed a) (HashSet a)`
2025-10-27 05:26:26 +0100 <hololeap> I would think it means the same thing
2025-10-27 05:26:28 +0100 <monochrom> Existential type would be like "data E = forall a. Haskable a => ..."
2025-10-27 05:27:00 +0100 <monochrom> err, "data E = forall a. Hashable a => E (Hashed a) (HashSet a)"
2025-10-27 05:29:20 +0100 <monochrom> Yours is different from X, Y, E. Yours is a bonus feature that allows a constraint on a type parameter.
2025-10-27 05:29:57 +0100 <hololeap> I think the weird thing about my example is that every operation I can do on Hashed and HashSet already has a Hashable constraint
2025-10-27 05:32:16 +0100 <hololeap> so maybe that makes existential quantification behave like universal quantification in this example
2025-10-27 05:32:22 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
2025-10-27 05:32:48 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-10-27 05:35:52 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 05:39:09 +0100aforemny_(~aforemny@2001:9e8:6cf1:1000:4e89:d612:c448:7493) aforemny
2025-10-27 05:39:11 +0100aforemny(~aforemny@2001:9e8:6cd1:6c00:4f63:56d8:3d93:b87f) (Ping timeout: 244 seconds)
2025-10-27 05:39:47 +0100trickard(~trickard@cpe-55-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-10-27 05:40:00 +0100trickard_(~trickard@cpe-55-98-47-163.wireline.com.au)
2025-10-27 05:41:11 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-10-27 05:50:04 +0100trickard_(~trickard@cpe-55-98-47-163.wireline.com.au) (Ping timeout: 246 seconds)
2025-10-27 05:50:46 +0100trickard_(~trickard@cpe-55-98-47-163.wireline.com.au)
2025-10-27 05:51:38 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 05:55:51 +0100Googulator(~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu) (Quit: Client closed)
2025-10-27 05:56:06 +0100Googulator(~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu)
2025-10-27 05:56:30 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-10-27 05:56:50 +0100Square2(~Square@user/square) Square
2025-10-27 05:59:10 +0100karenw(~karenw@user/karenw) (Ping timeout: 246 seconds)
2025-10-27 06:00:48 +0100Googulator56(~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu)
2025-10-27 06:01:09 +0100Googulator(~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu) (Quit: Client closed)
2025-10-27 06:01:16 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 06:06:08 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-10-27 06:06:46 +0100irfan(~irfan@user/irfan) irfan
2025-10-27 06:07:51 +0100michalz(~michalz@185.246.207.221)
2025-10-27 06:10:37 +0100irfanflareon
2025-10-27 06:11:25 +0100flareonvulpix
2025-10-27 06:11:31 +0100vulpixevee
2025-10-27 06:12:10 +0100evee(~irfan@user/irfan) (Quit: WeeChat 4.7.1)
2025-10-27 06:15:02 +0100jmcantrell(~weechat@user/jmcantrell) (Ping timeout: 240 seconds)
2025-10-27 06:17:02 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 06:20:37 +0100Googulator21(~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu)
2025-10-27 06:20:49 +0100Googulator56(~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu) (Quit: Client closed)
2025-10-27 06:21:05 +0100irfan(~irfan@user/irfan) irfan
2025-10-27 06:21:14 +0100irfan(~irfan@user/irfan) (Client Quit)
2025-10-27 06:21:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-10-27 06:25:46 +0100Googulator21(~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu) (Quit: Client closed)
2025-10-27 06:25:47 +0100Googulator26(~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu)
2025-10-27 06:32:46 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 06:37:22 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-10-27 06:43:05 +0100peterbecich(~Thunderbi@172.222.148.214) peterbecich
2025-10-27 06:48:32 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 06:50:17 +0100haltingsolver(~cmo@2604:3d09:207f:8000::d1dc) (Ping timeout: 260 seconds)
2025-10-27 06:53:25 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-10-27 06:57:20 +0100Lycurgus(~juan@user/Lycurgus) Lycurgus
2025-10-27 06:58:21 +0100trickard_trickard
2025-10-27 07:04:02 +0100Frostillicus(~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-10-27 07:04:18 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-10-27 07:04:46 +0100Lycurgus(~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
2025-10-27 07:07:59 +0100rvalue(~rvalue@about/hackers/rvalue) (Read error: Connection reset by peer)
2025-10-27 07:08:25 +0100rvalue(~rvalue@about/hackers/rvalue) rvalue
2025-10-27 07:08:59 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)