2024/10/30

Newest at the top

2024-10-30 11:15:25 +0100samhh_(7569f027cf@2a03:6000:1812:100::e4) samhh
2024-10-30 11:14:21 +0100ph88^(~ph88@2a02:8109:9e26:c800:ed53:7d07:6030:570a) (Ping timeout: 265 seconds)
2024-10-30 11:13:54 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-10-30 11:13:28 +0100ggb(a62ffbaf4f@2a03:6000:1812:100::3ac) ggb
2024-10-30 11:12:51 +0100 <ph88> You mean this list? https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/existential_quantification.html#res…
2024-10-30 11:12:37 +0100petrichor(~znc-user@user/petrichor) petrichor
2024-10-30 11:11:56 +0100 <tomsmeding> nice, this list is cool, I should have read it years ago
2024-10-30 11:11:30 +0100 <tomsmeding> apparently this is not sufficient reason to lift the restricion :p
2024-10-30 11:11:10 +0100ph88(~ph88@2a02:8109:9e26:c800:c35a:a881:34b9:612a) ph88
2024-10-30 11:11:08 +0100 <tomsmeding> lol, re the third bullet point: the fact that newtypes cannot be existential leads to this data type https://hackage.haskell.org/package/some-1.0.6/docs/Data-Some.html having a very evil implementation
2024-10-30 11:08:49 +0100 <ph88^> thanks! i'll see if i can understand it
2024-10-30 11:08:47 +0100 <tomsmeding> apparently it's "otherwise the implementation gets even more complicated" :D
2024-10-30 11:08:33 +0100ph88(~ph88@2a02:8109:9e26:c800:3808:5ad1:785a:e722) (Ping timeout: 265 seconds)
2024-10-30 11:08:27 +0100sus(1b7af6299f@user/zeromomentum) zeromomentum
2024-10-30 11:08:26 +0100bwolf(c3bc363dd1@2a03:6000:1812:100::180) bwolf
2024-10-30 11:08:21 +0100rselim(ce261f06ff@user/milesrout) milesrout
2024-10-30 11:08:19 +0100 <tomsmeding> ph88: second bullet point here https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/existential_quantification.html#res…
2024-10-30 11:08:18 +0100RussetParrotBear(45ce440a48@2a03:6000:1812:100::e2)
2024-10-30 11:08:13 +0100ubert(~Thunderbi@178.165.189.55.wireless.dyn.drei.com) ubert
2024-10-30 11:08:11 +0100jleightcap(7bc4014b62@user/jleightcap) jleightcap
2024-10-30 11:08:09 +0100JoelMcCracken(5ea8252fbb@2a03:6000:1812:100::10e3) JoelMcCracken
2024-10-30 11:08:06 +0100samhh(7569f027cf@2a03:6000:1812:100::e4) samhh
2024-10-30 11:07:56 +0100whereiseveryone(206ba86c98@2a03:6000:1812:100::2e4) whereiseveryone
2024-10-30 11:07:53 +0100jakzale(6291399afa@user/jakzale) jakzale
2024-10-30 11:07:52 +0100evanrelf(3addc196af@2a03:6000:1812:100::f0) evanrelf
2024-10-30 11:07:52 +0100chaitlatte0(ea29c0bb16@user/chaitlatte0) chaitlatte0
2024-10-30 11:07:50 +0100bsima1(9d7e39c8ad@2a03:6000:1812:100::dd)
2024-10-30 11:07:49 +0100jkoshy(99b9359beb@user/jkoshy) jkoshy
2024-10-30 11:07:49 +0100smiesner(b0cf5acf8c@user/smiesner) smiesner
2024-10-30 11:07:45 +0100Ankhers(e99e97ef8e@2a03:6000:1812:100::2a2) Ankhers
2024-10-30 11:07:44 +0100aniketd(32aa4844cd@2a03:6000:1812:100::dcb) aniketd
2024-10-30 11:07:43 +0100fn_lumi(3d621153a5@2a03:6000:1812:100::df7) fn_lumi
2024-10-30 11:07:43 +0100titibandit(e33ffbab65@user/titibandit) titibandit
2024-10-30 11:07:41 +0100ursa-major(114efe6c39@2a03:6000:1812:100::11f3) ursa-major
2024-10-30 11:07:39 +0100lane(809450f172@2a03:6000:1812:100::1300) lane
2024-10-30 11:07:39 +0100fvr(ef3e56ca8b@2a03:6000:1812:100::3c4) fvr
2024-10-30 11:06:38 +0100mesaoptimizer(~mesaoptim@user/PapuaHardyNet) PapuaHardyNet
2024-10-30 11:06:34 +0100ph88^(~ph88@2a02:8109:9e26:c800:ed53:7d07:6030:570a)
2024-10-30 11:06:24 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 260 seconds)
2024-10-30 11:06:24 +0100 <tomsmeding> but there are bits and pieces here and there
2024-10-30 11:05:45 +0100 <tomsmeding> ph88: hm, seems the paper doesn't really explain the status quo
2024-10-30 11:05:03 +0100 <preflex> 10
2024-10-30 11:05:03 +0100 <mauke> preflex: calc 2 3 *)+ 4
2024-10-30 11:03:58 +0100 <tomsmeding> ph88: yes, I think that's what's happening
2024-10-30 11:03:50 +0100 <tomsmeding> (I read this a few years ago)
2024-10-30 11:03:46 +0100 <tomsmeding> ph88: dunno, but this paper is related (it presents a generalisation to Haskell's type system that does allow more flexible existentials) and it's sure to include an explanation of the status quo :p https://dl.acm.org/doi/pdf/10.1145/3473569
2024-10-30 11:03:25 +0100 <ph88> you mentioned before that the let binding is lazy, thus not creating the suitable scope ?
2024-10-30 11:02:50 +0100 <tomsmeding> 'let' doesn't make a suitable scope
2024-10-30 11:02:37 +0100 <tomsmeding> and to preserve soundness, the external type of that construct cannot mention the existential type variable
2024-10-30 11:02:35 +0100 <ph88> i had a feeling about scoping. Though i didn't realize it was because of the let-binding and a case would fix that. Is there any documentation to read about let-bindings and scoping issue?