Newest at the top
| 2025-12-01 02:34:26 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-01 02:30:30 +0100 | jmcantrell_ | (~weechat@user/jmcantrell) jmcantrell |
| 2025-12-01 02:30:01 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 02:24:12 +0100 | omidmash3 | omidmash |
| 2025-12-01 02:24:12 +0100 | omidmash | (~omidmash@user/omidmash) (Ping timeout: 244 seconds) |
| 2025-12-01 02:22:08 +0100 | omidmash3 | (~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 +0100 | Pozyomka | (~pyon@user/pyon) pyon |
| 2025-12-01 02:18:57 +0100 | Pozyomka | (~pyon@user/pyon) (Quit: brb) |
| 2025-12-01 02:18:55 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-01 02:16:56 +0100 | sindu | (~sindu@2.148.32.207.tmi.telenormobil.no) (Ping timeout: 240 seconds) |
| 2025-12-01 02:14:39 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-01 02:12:47 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 2025-12-01 02:12:07 +0100 | trickard_ | (~trickard@cpe-85-98-47-163.wireline.com.au) |
| 2025-12-01 02:11:53 +0100 | trickard | (~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 +0100 | merijn | (~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 +0100 | peterbecich | (~Thunderbi@172.222.148.214) peterbecich |
| 2025-12-01 02:01:00 +0100 | X-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 +0100 | merijn | (~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 +0100 | glguy | ponders 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 |