2025/12/01

Newest at the top

2025-12-01 02:34:26 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-01 02:30:30 +0100jmcantrell_(~weechat@user/jmcantrell) jmcantrell
2025-12-01 02:30:01 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-01 02:24:12 +0100omidmash3omidmash
2025-12-01 02:24:12 +0100omidmash(~omidmash@user/omidmash) (Ping timeout: 244 seconds)
2025-12-01 02:22:08 +0100omidmash3(~omidmash@user/omidmash) omidmash
2025-12-01 02:19:49 +0100 <EvanR> the 1950s when you had like cathode ray tubes and such
2025-12-01 02:19:10 +0100 <EvanR> lol
2025-12-01 02:19:10 +0100Pozyomka(~pyon@user/pyon) pyon
2025-12-01 02:18:57 +0100Pozyomka(~pyon@user/pyon) (Quit: brb)
2025-12-01 02:18:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-01 02:16:56 +0100sindu(~sindu@2.148.32.207.tmi.telenormobil.no) (Ping timeout: 240 seconds)
2025-12-01 02:14:39 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-01 02:12:47 +0100ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2025-12-01 02:12:07 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au)
2025-12-01 02:11:53 +0100trickard(~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-01 02:10:27 +0100 <haskellbridge> <zoil> monochrom: you cat get back to talking about the 1950's now
2025-12-01 02:05:04 +0100 <haskellbridge> <zoil> _le sigh_
2025-12-01 02:05:00 +0100 <haskellbridge> <zoil> so anyway, possibly singlestons help but in a way that ill probably never understand
2025-12-01 02:04:44 +0100 <haskellbridge> <zoil> i have to go actually
2025-12-01 02:03:32 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-01 02:01:31 +0100 <haskellbridge> <zoil> https://paste.tomsmeding.com/gHFMMx2t
2025-12-01 02:01:12 +0100peterbecich(~Thunderbi@172.222.148.214) peterbecich
2025-12-01 02:01:00 +0100X-Scale(~ARM@6.67.114.89.rev.vodafone.pt) X-Scale
2025-12-01 02:00:32 +0100 <haskellbridge> <zoil> maybe it would be worth trying the length version, thats really common
2025-12-01 01:59:16 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-01 01:58:04 +0100 <haskellbridge> <zoil> like, the stateful constraints make sense, but the length constraint is just garbage
2025-12-01 01:57:50 +0100 <haskellbridge> <zoil> id rather just be able to read off constraints that arent insane
2025-12-01 01:57:15 +0100 <haskellbridge> <zoil> https://kf8nh.com/_heisenbridge/media/matrix.org/hTIHFOzGuFAqswyfkLuIVoBL/yfXyRcmB1_8/image.png
2025-12-01 01:56:49 +0100 <glguy> and a mess of complicated error messages and special utility functions to manage it all
2025-12-01 01:56:37 +0100 <haskellbridge> <zoil> basically, anything that requires more than one instance, like some kind of recusion matching on the tail or something, and then im in constraints hell
2025-12-01 01:56:28 +0100 <glguy> this route leads to brittle programs that are hard to update and refactor
2025-12-01 01:56:07 +0100 <haskellbridge> <zoil> id rather do it right at the onset, than have these constraints following me around
2025-12-01 01:55:51 +0100 <haskellbridge> <zoil> possible*
2025-12-01 01:55:46 +0100 <haskellbridge> <zoil> but, iiuc your saying its theoretically possivle
2025-12-01 01:55:43 +0100 <glguy> yeah, it's better to just not overcomplicate your program
2025-12-01 01:55:33 +0100 <haskellbridge> <zoil> i mean, this is all super interesting, and i think it might even work, but im hardly going to be able to do it
2025-12-01 01:54:48 +0100glguyponders if that's exactly right, but anyway, the way to get type information from a value is using a GADT
2025-12-01 01:54:47 +0100 <haskellbridge> <zoil> thats what learys answer looks like its managing to acheive
2025-12-01 01:53:41 +0100 <glguy> singletons are
2025-12-01 01:53:19 +0100 <glguy> proxies are not for runtime type information
2025-12-01 01:53:07 +0100 <glguy> read doesn't have a place to put the runtime type witness, it's type is fixed by the type class definition
2025-12-01 01:53:03 +0100 <haskellbridge> <zoil> i dont see why it would erase type information from a proxy, thats all they are for! crazy compiler
2025-12-01 01:52:35 +0100 <haskellbridge> <zoil> glguy: I could do that! i just dont want constraints all over the place from recusrive classes that cant be asserted to be exhaustive
2025-12-01 01:52:21 +0100 <glguy> It's not that it's fussy; it's just that it if the information has been erased, you can't use it
2025-12-01 01:52:08 +0100 <Leary> zoil: You would need e.g. `data WhichNE xs where { IsCons :: WhichNE (Cons x xs); IsLast :: WhichNE (Last x) }; class KnownNE ne where { knownNE :: WhichNE ne }; <both instances>; instance KnownNE xs => Read (Transfers xs) where { read s = case knownNE of { ... } }`.
2025-12-01 01:52:00 +0100 <haskellbridge> <zoil> that sounds like the kind of thing the compiler is fussy about
2025-12-01 01:51:56 +0100 <glguy> You'd have to make a new GADTs so that at runtime you can learn which type is needed via case
2025-12-01 01:51:47 +0100 <haskellbridge> <zoil> no type information at runtime! oh no!
2025-12-01 01:51:29 +0100 <haskellbridge> <zoil> or does it just work the way id like it too! :_D