2024/11/15

2024-11-15 00:03:51 +0100 <jackdk> carbolymer: I don't understand your suggestion. The typeclass I want to type-family-ify exists and I cannot change it (concrete example: `GHC.Records.HasField`), but I want a type family that can select the field type. This example fails with "The RHS of an associated type declaration mentions out-of-scope variable ā€˜zā€™ All such variables must be bound on the LHS" https://www.irccloud.com/pastebin/4aygJmq9/MakeATypeFamily.hs
2024-11-15 00:06:26 +0100rvalue-(~rvalue@user/rvalue) rvalue
2024-11-15 00:07:19 +0100rvalue(~rvalue@user/rvalue) (Ping timeout: 260 seconds)
2024-11-15 00:10:34 +0100rvalue-rvalue
2024-11-15 00:19:05 +0100 <carbolymer> jackdk: ah, you can't modify the original class - that' s though
2024-11-15 00:20:06 +0100 <carbolymer> s/though/tough
2024-11-15 00:24:54 +0100nek0(~nek0@user/nek0) (Quit: The Lounge - https://thelounge.chat)
2024-11-15 00:26:44 +0100 <carbolymer> jackdk: maybe something in this direction https://paste.tomsmeding.com/Og2LnIpN ?
2024-11-15 00:29:03 +0100 <jackdk> The problem is I didn't know `a` at the time. (I was trying to write some servant-flavoured stuff, and wanted to provide an analogue to `ToServantApi` that extracted a single field). So I don't actually know the final type (because there are other TFs involved) but I know GHC does
2024-11-15 00:30:01 +0100aljazmc(~aljazmc@user/aljazmc) (Remote host closed the connection)
2024-11-15 00:30:32 +0100 <carbolymer> ah
2024-11-15 00:31:05 +0100ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2024-11-15 00:34:10 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds)
2024-11-15 00:34:10 +0100ljdarj1ljdarj
2024-11-15 00:41:13 +0100acidjnk(~acidjnk@p200300d6e7283f73687bc11ede7922f8.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
2024-11-15 00:45:54 +0100jle`(~jle`@2603:8001:3b02:84d4:71c9:147c:d31f:c8d0) (Ping timeout: 246 seconds)
2024-11-15 00:47:05 +0100jle`(~jle`@2603:8001:3b02:84d4:4ba:cd34:52ca:7a5) jle`
2024-11-15 00:48:36 +0100 <sm> @where+ wiwik https://gotchamana.github.io/wiwinwlh What I Wish I Knew When Learning Haskell, Stephen Diehl
2024-11-15 00:48:37 +0100 <lambdabot> Good to know.
2024-11-15 00:48:39 +0100 <sm> found!
2024-11-15 00:49:10 +0100arthurvl(~arthurvl@77-174-49-144.fixed.kpn.net) earthy
2024-11-15 00:56:35 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-11-15 01:03:08 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2024-11-15 01:16:40 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
2024-11-15 01:17:40 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2024-11-15 01:21:22 +0100xff0x(~xff0x@2405:6580:b080:900:4913:54f9:72cb:8a89) (Ping timeout: 272 seconds)
2024-11-15 01:22:45 +0100Leary(~Leary@user/Leary/x-0910699) (Remote host closed the connection)
2024-11-15 01:23:00 +0100Leary(~Leary@user/Leary/x-0910699) Leary
2024-11-15 01:24:54 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 260 seconds)
2024-11-15 01:27:02 +0100nek0(~nek0@user/nek0) nek0
2024-11-15 01:32:02 +0100arahael_(~arahael@user/arahael) (Quit: leaving)
2024-11-15 01:33:28 +0100sprotte24(~sprotte24@p200300d16f0f4e0080b9b718c313bb1e.dip0.t-ipconnect.de) (Quit: Leaving)
2024-11-15 01:36:24 +0100troojg(~troojg@user/troojg) troojg
2024-11-15 01:46:42 +0100ethantwardy(user@user/ethantwardy) (Quit: WeeChat 4.3.2)
2024-11-15 01:48:33 +0100ethantwardy(user@user/ethantwardy) ethantwardy
2024-11-15 01:51:08 +0100alp(~alp@2001:861:e3d6:8f80:c18:bc99:f25e:38cc) (Ping timeout: 272 seconds)
2024-11-15 02:05:03 +0100Everything(~Everythin@178-133-104-20.mobile.vf-ua.net) (Quit: leaving)
2024-11-15 02:09:11 +0100alp(~alp@2001:861:e3d6:8f80:27d1:e3a6:13db:a305)
2024-11-15 02:10:35 +0100alp(~alp@2001:861:e3d6:8f80:27d1:e3a6:13db:a305) (Remote host closed the connection)
2024-11-15 02:10:52 +0100alp(~alp@2001:861:e3d6:8f80:ecc8:3a9b:3201:3089)
2024-11-15 02:12:35 +0100alp_(~alp@2001:861:e3d6:8f80:930e:6baf:301:3217)
2024-11-15 02:12:43 +0100vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 264 seconds)
2024-11-15 02:13:10 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2024-11-15 02:13:59 +0100alp_(~alp@2001:861:e3d6:8f80:930e:6baf:301:3217) (Remote host closed the connection)
2024-11-15 02:14:17 +0100alp_(~alp@2001:861:e3d6:8f80:8d4c:7c75:d4ee:bfcd)
2024-11-15 02:15:41 +0100alp(~alp@2001:861:e3d6:8f80:ecc8:3a9b:3201:3089) (Ping timeout: 252 seconds)
2024-11-15 02:15:41 +0100alp_(~alp@2001:861:e3d6:8f80:8d4c:7c75:d4ee:bfcd) (Remote host closed the connection)
2024-11-15 02:15:53 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2024-11-15 02:15:59 +0100alp_(~alp@2001:861:e3d6:8f80:eef7:e614:608:329d)
2024-11-15 02:17:43 +0100alp__(~alp@2001:861:e3d6:8f80:8a02:58bc:ff74:ebde)
2024-11-15 02:19:06 +0100alp__(~alp@2001:861:e3d6:8f80:8a02:58bc:ff74:ebde) (Remote host closed the connection)
2024-11-15 02:19:23 +0100alp__(~alp@2001:861:e3d6:8f80:c055:8587:ecce:9a27)
2024-11-15 02:20:49 +0100alp_(~alp@2001:861:e3d6:8f80:eef7:e614:608:329d) (Ping timeout: 252 seconds)
2024-11-15 02:21:06 +0100alp_(~alp@2001:861:e3d6:8f80:143c:a0ab:970d:2678)
2024-11-15 02:24:15 +0100alp__(~alp@2001:861:e3d6:8f80:c055:8587:ecce:9a27) (Ping timeout: 246 seconds)
2024-11-15 02:26:00 +0100alp_(~alp@2001:861:e3d6:8f80:143c:a0ab:970d:2678) (Ping timeout: 246 seconds)
2024-11-15 02:36:25 +0100divya(~user@139.5.11.223) (Remote host closed the connection)
2024-11-15 02:41:04 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
2024-11-15 02:41:58 +0100ph88(~ph88@2a02:8109:9e26:c800:7ee4:dffc:4616:9e2a) (Remote host closed the connection)
2024-11-15 02:44:17 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds)
2024-11-15 02:44:40 +0100m5zs7k(aquares@web10.mydevil.net) (Quit: m5zs7k)
2024-11-15 02:45:04 +0100m5zs7k(aquares@web10.mydevil.net) m5zs7k
2024-11-15 02:47:08 +0100 <zero> funny how haskell classes inherit the same problem as oop inheritence
2024-11-15 02:47:27 +0100 <zero> pun intended i guess
2024-11-15 02:51:19 +0100 <Axman6> Multiple (problem) inheritance
2024-11-15 02:52:48 +0100 <monochrom> What is the problem?
2024-11-15 02:59:15 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2024-11-15 03:06:43 +0100gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2024-11-15 03:08:22 +0100gmg(~user@user/gehmehgeh) gehmehgeh
2024-11-15 03:17:00 +0100tabemann(~tabemann@2600:1700:7990:24e0:17cd:7c4b:64d7:5714) (Read error: Connection reset by peer)
2024-11-15 03:17:14 +0100tabemann(~tabemann@2600:1700:7990:24e0:9f6b:68a6:cce5:e580)
2024-11-15 03:19:08 +0100 <Axman6> it makes sorting out the will much more difficult
2024-11-15 03:19:27 +0100 <monochrom> haha
2024-11-15 03:25:46 +0100Square(~Square@user/square) Square
2024-11-15 03:29:14 +0100 <EvanR> one problem with oop inheritance, usually, is joe schmoe want's his class to inherit from multiple other classes simultaneously. It's a problem either because you aren't allowed to do it, or because you are allowed to do it (e.g. in python)
2024-11-15 03:29:24 +0100 <EvanR> not sure how that translates to haskell
2024-11-15 03:29:37 +0100jjhoo(~jahakala@user/jjhoo) (Ping timeout: 248 seconds)
2024-11-15 03:36:00 +0100talismanick(~user@2601:644:937c:ed10::ae5) talismanick
2024-11-15 03:38:38 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-11-15 03:41:38 +0100jjhoo(~jahakala@user/jjhoo) jjhoo
2024-11-15 04:03:39 +0100shapr(~user@2601:19c:417e:5434:b5b7:a31:f560:51b7) (Quit: sleep)
2024-11-15 04:04:11 +0100 <sm> I guess: long chains of dependency make the whole system more brittle ?
2024-11-15 04:05:02 +0100 <sm> I don't know about multiple inheritance either but suspect that's the root problem
2024-11-15 04:07:12 +0100yisef(~yisef@122.10.198.17)
2024-11-15 04:07:15 +0100 <sm> https://en.wikipedia.org/wiki/Multiple_inheritance#The_diamond_problem
2024-11-15 04:09:57 +0100troojg(~troojg@user/troojg) (Ping timeout: 246 seconds)
2024-11-15 04:10:10 +0100yisef(~yisef@122.10.198.17) (Client Quit)
2024-11-15 04:10:28 +0100yisef(~yisef@122.10.198.17)
2024-11-15 04:12:19 +0100hsw(~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) hsw
2024-11-15 04:18:51 +0100Katarushisu6(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) Katarushisu
2024-11-15 04:21:07 +0100Katarushisu(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Ping timeout: 265 seconds)
2024-11-15 04:21:07 +0100Katarushisu6Katarushisu
2024-11-15 04:28:44 +0100mceresa(~mceresa@user/mceresa) (Ping timeout: 244 seconds)
2024-11-15 04:29:27 +0100td_(~td@i5387092A.versanet.de) (Ping timeout: 252 seconds)
2024-11-15 04:31:06 +0100td_(~td@i53870902.versanet.de) td_
2024-11-15 04:39:12 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2024-11-15 04:48:11 +0100 <EvanR> in "type classes vs the world" he shows a slide with a diamond dependency, and basically type classes, nothing bad happens
2024-11-15 04:48:19 +0100 <EvanR> s/basically/because/
2024-11-15 04:49:14 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Remote host closed the connection)
2024-11-15 04:49:14 +0100 <EvanR> because there's only ever zero or one instances for a given type
2024-11-15 04:49:39 +0100 <EvanR> so if you arrive at a dependency along different routes it's the same instance
2024-11-15 04:52:40 +0100ShannonB(~ShannonB@user/ShannonB) ShannonB
2024-11-15 05:04:08 +0100ystael(~ystael@user/ystael) (Ping timeout: 265 seconds)
2024-11-15 05:06:30 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-11-15 05:12:04 +0100spew_(~spew@201.141.99.170) spew
2024-11-15 05:12:12 +0100spew_(~spew@201.141.99.170) (Client Quit)
2024-11-15 05:12:21 +0100spew_(~spew@201.141.99.170) spew
2024-11-15 05:13:24 +0100spew_(~spew@201.141.99.170) (Client Quit)
2024-11-15 05:22:55 +0100ft(~ft@p4fc2a216.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2024-11-15 05:24:10 +0100ft(~ft@p4fc2a26f.dip0.t-ipconnect.de) ft
2024-11-15 05:31:09 +0100petrichor(~znc-user@user/petrichor) (Quit: ZNC 1.8.2 - https://znc.in)
2024-11-15 05:37:15 +0100olivial(~benjaminl@user/benjaminl) (Remote host closed the connection)
2024-11-15 05:37:19 +0100aforemny_(~aforemny@i59F4C560.versanet.de) (Ping timeout: 260 seconds)
2024-11-15 05:37:28 +0100aforemny(~aforemny@2001:9e8:6cc5:1900:266e:896c:b9aa:a2eb) aforemny
2024-11-15 05:52:26 +0100olivial(~benjaminl@user/benjaminl) benjaminl
2024-11-15 05:57:53 +0100willscripted(~willscrip@user/willscripted) (Ping timeout: 245 seconds)
2024-11-15 06:03:59 +0100alp(~alp@2001:861:e3d6:8f80:da2e:4149:618:bb33)
2024-11-15 06:05:41 +0100alp_(~alp@2001:861:e3d6:8f80:d89c:25:af5b:7d7e)
2024-11-15 06:07:23 +0100alp__(~alp@2001:861:e3d6:8f80:ea76:754b:407f:9e67)
2024-11-15 06:08:38 +0100 <monochrom> Multiple implementation inheritance is the problem (even the OO people already know), but it doesn't translate to Haskell. Multiple interface inheritance is well-known to be just fine.
2024-11-15 06:08:46 +0100alp__(~alp@2001:861:e3d6:8f80:ea76:754b:407f:9e67) (Remote host closed the connection)
2024-11-15 06:08:57 +0100alp(~alp@2001:861:e3d6:8f80:da2e:4149:618:bb33) (Ping timeout: 246 seconds)
2024-11-15 06:09:04 +0100alp__(~alp@2001:861:e3d6:8f80:8999:178d:724c:ed26)
2024-11-15 06:09:36 +0100 <monochrom> OTOH category theory offers a safe kind of diamond inheritance. It's called push out.
2024-11-15 06:09:59 +0100 <monochrom> Just that you can't do push outs in C++, that's all. :)
2024-11-15 06:10:29 +0100alp__(~alp@2001:861:e3d6:8f80:8999:178d:724c:ed26) (Remote host closed the connection)
2024-11-15 06:10:48 +0100alp__(~alp@2001:861:e3d6:8f80:bf45:d838:789a:be4d)
2024-11-15 06:11:26 +0100alp_(~alp@2001:861:e3d6:8f80:d89c:25:af5b:7d7e) (Ping timeout: 272 seconds)
2024-11-15 06:12:11 +0100alp__(~alp@2001:861:e3d6:8f80:bf45:d838:789a:be4d) (Remote host closed the connection)
2024-11-15 06:12:29 +0100alp__(~alp@2001:861:e3d6:8f80:a950:43a3:4630:597b)
2024-11-15 06:13:36 +0100 <EvanR> pushout = multiple inheritance. Got it. And jquery is a monad!
2024-11-15 06:14:10 +0100alp_(~alp@2001:861:e3d6:8f80:441c:992c:e029:9f42)
2024-11-15 06:14:42 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Remote host closed the connection)
2024-11-15 06:14:59 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net)
2024-11-15 06:15:35 +0100alp_(~alp@2001:861:e3d6:8f80:441c:992c:e029:9f42) (Remote host closed the connection)
2024-11-15 06:15:52 +0100alp_(~alp@2001:861:e3d6:8f80:2a62:6fd6:e732:c038)
2024-11-15 06:17:08 +0100alp__(~alp@2001:861:e3d6:8f80:a950:43a3:4630:597b) (Ping timeout: 272 seconds)
2024-11-15 06:17:17 +0100alp_(~alp@2001:861:e3d6:8f80:2a62:6fd6:e732:c038) (Remote host closed the connection)
2024-11-15 06:17:34 +0100alp_(~alp@2001:861:e3d6:8f80:854c:d0e9:e927:ff1d)
2024-11-15 06:19:18 +0100alp__(~alp@2001:861:e3d6:8f80:5324:b49a:7cd6:3b97)
2024-11-15 06:21:13 +0100euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-11-15 06:22:59 +0100alp_(~alp@2001:861:e3d6:8f80:854c:d0e9:e927:ff1d) (Ping timeout: 260 seconds)
2024-11-15 06:24:44 +0100alp__(~alp@2001:861:e3d6:8f80:5324:b49a:7cd6:3b97) (Ping timeout: 260 seconds)
2024-11-15 06:28:39 +0100euphores(~SASL_euph@user/euphores) euphores