Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→ 1,802,747 events total
2025-11-07 17:04:49 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-11-07 17:06:25 tromp joins (~textual@2001:1c00:3487:1b00:5425:82ad:9644:72ca)
2025-11-07 17:10:45 Googulator3 joins (~Googulato@team.broadbit.hu)
2025-11-07 17:11:43 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-11-07 17:14:05 × Googulator5 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds)
2025-11-07 17:14:30 × kuribas` quits (~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 265 seconds)
2025-11-07 17:16:16 <haskellbridge> <loonycyborg> Python dynamicness is both blessing and curse. If you can redefine pretty much anything at runtime(like rewrite classes and change dicts with local variables) then it's near impossible to reason about the code in general
2025-11-07 17:16:34 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-11-07 17:16:49 <haskellbridge> <loonycyborg> Exactly same code can have totally different effects depending on how you hack the environment before running it :P
2025-11-07 17:16:56 myxos joins (~myxos@2001:579:8380:f20:6ebf:41cf:49b4:43a6)
2025-11-07 17:17:21 × Googulator3 quits (~Googulato@team.broadbit.hu) (Quit: Client closed)
2025-11-07 17:17:40 Googulator3 joins (~Googulato@team.broadbit.hu)
2025-11-07 17:18:02 × trickard_ quits (~trickard@cpe-57-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-11-07 17:18:15 trickard_ joins (~trickard@cpe-57-98-47-163.wireline.com.au)
2025-11-07 17:19:37 × myxokephale quits (~myxos@2001:579:8380:f20:f473:5072:5243:c7a6) (Ping timeout: 260 seconds)
2025-11-07 17:24:04 × chromoblob quits (~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
2025-11-07 17:25:09 chromoblob joins (~chromoblo@user/chromob1ot1c)
2025-11-07 17:27:30 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-11-07 17:32:44 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-11-07 17:33:53 <[exa]> tomsmeding: actually yeah that seems to be the issue
2025-11-07 17:34:15 <[exa]> so we need a bigger gun than ContT, great! :D
2025-11-07 17:37:14 <tomsmeding> [exa]: another sign that ContT is not what you want: callCC exists
2025-11-07 17:37:55 <tomsmeding> if you find a way to do something decent with too many nested CPS-style functions, let me know
2025-11-07 17:38:27 <[exa]> writing a database that has to merge segments, like lucene
2025-11-07 17:38:45 <[exa]> it needs like 2943872598347 resources open, so there's bracket everywhere
2025-11-07 17:38:50 <tomsmeding> [exa]: because I'm in deep https://git.tomsmeding.com/chad-fast/tree/src/CHAD.hs?id=38150f4f9792156d8c59439fe47ecb69a0a0e00b#n1517
2025-11-07 17:39:15 <[exa]> my eyes
2025-11-07 17:39:22 [exa] pops a bottle of defensive geuze
2025-11-07 17:39:25 <tomsmeding> also these things are CPS not because they open resources but because they introduce a bunch of existential type variables
2025-11-07 17:39:44 <tomsmeding> I could write one-off data types for all of these to wrap the existentials that way but that would just be more verbose
2025-11-07 17:40:14 <tomsmeding> yes with syntax highlighting it's slightly less horrendous (the highlighting on my git site is horribly broken)
2025-11-07 17:40:20 <tomsmeding> emphasis on slightly
2025-11-07 17:41:00 <tomsmeding> [exa]: see also the type right above the link I sent you (drevLambda), as well as this type https://git.tomsmeding.com/chad-fast/tree/src/AST.hs?id=38150f4f9792156d8c59439fe47ecb69a0a0e00b#n657
2025-11-07 17:42:22 × acidjnk quits (~acidjnk@2003:d6:e717:1922:4028:f2f:de8c:479) (Ping timeout: 260 seconds)
2025-11-07 17:43:17 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-11-07 17:45:42 × Googulator3 quits (~Googulato@team.broadbit.hu) (Quit: Client closed)
2025-11-07 17:45:43 Googulator78 joins (~Googulato@team.broadbit.hu)
2025-11-07 17:46:08 × haritz quits (~hrtz@user/haritz) (Remote host closed the connection)
2025-11-07 17:48:06 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-11-07 17:48:12 × tromp quits (~textual@2001:1c00:3487:1b00:5425:82ad:9644:72ca) (Ping timeout: 252 seconds)
2025-11-07 17:49:49 × fp quits (~Thunderbi@89-27-10-140.bb.dnainternet.fi) (Ping timeout: 264 seconds)
2025-11-07 17:50:43 emperori joins (~emperori@2401:4900:6286:fc4d:c464:378c:4752:c5b7)
2025-11-07 17:51:16 haritz joins (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8)
2025-11-07 17:51:16 × haritz quits (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host)
2025-11-07 17:51:16 haritz joins (~hrtz@user/haritz)
2025-11-07 17:51:49 × emperori quits (~emperori@2401:4900:6286:fc4d:c464:378c:4752:c5b7) (Remote host closed the connection)
2025-11-07 17:56:28 × comonad quits (~comonad@p200300d02741a000c6934c09e8b46dfd.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2025-11-07 17:58:44 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
2025-11-07 17:59:05 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-11-07 18:00:45 Googulator69 joins (~Googulato@team.broadbit.hu)
2025-11-07 18:02:16 acidjnk joins (~acidjnk@p200300d6e717192240280f2fde8c0479.dip0.t-ipconnect.de)
2025-11-07 18:03:35 × Googulator69 quits (~Googulato@team.broadbit.hu) (Client Quit)
2025-11-07 18:03:55 × Googulator78 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds)
2025-11-07 18:03:57 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-11-07 18:03:58 Googulator69 joins (~Googulato@team.broadbit.hu)
2025-11-07 18:04:29 machinedgod joins (~machinedg@d75-159-126-101.abhsia.telus.net)
2025-11-07 18:05:40 <[exa]> I'll simply write a note for myself here to never try to golf contT into this :D
2025-11-07 18:06:08 × haritz quits (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
2025-11-07 18:06:55 <[exa]> tomsmeding: you should run hindent on that thing, it reads .... less chaotically I guess
2025-11-07 18:12:41 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-11-07 18:12:54 comonad joins (~comonad@p200300d02741a000c6934c09e8b46dfd.dip0.t-ipconnect.de)
2025-11-07 18:13:14 <tomsmeding> [exa]: and end up with 15 levels deep indentation?
2025-11-07 18:13:52 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2025-11-07 18:14:04 <tomsmeding> [exa]: I'm honestly open for suggestions how to properly format this
2025-11-07 18:14:05 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2025-11-07 18:14:07 <tomsmeding> or even organise this
2025-11-07 18:14:35 <tomsmeding> semantically it's just a long list of let bindings, it's just that the language forces me to make some of those callbacks because of existentials
2025-11-07 18:14:41 haritz joins (~hrtz@140.228.70.141)
2025-11-07 18:14:41 × haritz quits (~hrtz@140.228.70.141) (Changing host)
2025-11-07 18:14:41 haritz joins (~hrtz@user/haritz)
2025-11-07 18:15:07 <[exa]> tomsmeding: oh wait ok I see
2025-11-07 18:15:23 img joins (~img@user/img)
2025-11-07 18:15:30 × haritz quits (~hrtz@user/haritz) (Remote host closed the connection)
2025-11-07 18:15:40 × Googulator69 quits (~Googulato@team.broadbit.hu) (Quit: Client closed)
2025-11-07 18:15:43 Googulator68 joins (~Googulato@team.broadbit.hu)
2025-11-07 18:16:28 <tomsmeding> [exa]: I ran hindent on the thing, is this better? https://paste.tomsmeding.com/OgCpjy7u
2025-11-07 18:17:43 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-11-07 18:17:56 <tomsmeding> 15 was actually an understatement, getting 20 levels here
2025-11-07 18:18:30 <[exa]> could you run the whole thing in Identity, replace the single-cases with binding?
2025-11-07 18:18:36 <[exa]> in Identity do?
2025-11-07 18:18:45 <[exa]> other than that no actual idea, it's brutal
2025-11-07 18:19:16 <[exa]> might be arrows.
2025-11-07 18:19:51 <int-e> IIUC you can't let-bind type evidence
2025-11-07 18:20:29 <tomsmeding> [exa]: I tried just now, doesn't seem to eat the existentials
2025-11-07 18:20:55 <int-e> `Refl <- pure ...` should have a chance
2025-11-07 18:21:05 <int-e> but isn't nice :P
2025-11-07 18:21:22 <tomsmeding> int-e: I have functions that return stuff with existentials; I implement them currently in CPS style by having them take a continuation with some foralls
2025-11-07 18:22:00 <int-e> yeah I don't think you'll get rid of that conveniently
2025-11-07 18:22:03 <tomsmeding> if I put 'Identity' in that continuation then GHC complains on the use of 'Identity' that it can't match variables "because type variable ‘env'1’ would escape its scope"
2025-11-07 18:22:29 <int-e> (CPS isn't that horrible, compared to having ad-hoc existential data types)
2025-11-07 18:22:30 <tomsmeding> I can write a custom data type for each of these functions, but I don't think that's better
2025-11-07 18:22:34 <tomsmeding> ^
2025-11-07 18:23:26 <[exa]> y u so complex programs
2025-11-07 18:23:55 <tomsmeding> I made the decision to make the embedded language in this compiler strongly typed
2025-11-07 18:24:18 <tomsmeding> then I proceeded to implement complicated algorithms in it
2025-11-07 18:24:26 <tomsmeding> the latter is "because this is phd research lolo"
2025-11-07 18:24:32 <tomsmeding> s/lolo/lol/
2025-11-07 18:24:51 <tomsmeding> the former is "because it means that when I manage to make the bloody thing typecheck it has an 80% chance of being correct"
2025-11-07 18:25:09 <tomsmeding> and I feel like if I hadn't, that probability would have been <5%
2025-11-07 18:25:42 Googulator41 joins (~Googulato@team.broadbit.hu)

All times are in UTC.