2024/10/22

Newest at the top

2024-10-22 05:37:57 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-10-22 05:33:28 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 05:26:25 +0200bilegeek(~bilegeek@2600:1008:b001:620a:43c3:75c:3744:424a) (Quit: Leaving)
2024-10-22 05:24:15 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 246 seconds)
2024-10-22 05:22:23 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-22 05:21:48 +0200sw4n(~sw4n@2605:59c0:40f0:9610:ac8f:aae7:993d:9d22) (Remote host closed the connection)
2024-10-22 05:21:05 +0200sw4n(~sw4n@2605:59c0:40f0:9610:ac8f:aae7:993d:9d22)
2024-10-22 05:18:06 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 05:07:34 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-10-22 05:07:12 +0200 <geekosaur> …I wish I understood System F well enough to know why row types supposedly don't fit it
2024-10-22 05:06:10 +0200 <geekosaur> sadly, it seems all we are going to get is hacks that pretend to be a viable record system
2024-10-22 05:01:10 +0200nek0(~nek0@user/nek0) (Quit: The Lounge - https://thelounge.chat)
2024-10-22 04:59:57 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 04:53:47 +0200 <monochrom> I would like row types too. :)
2024-10-22 04:49:51 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-10-22 04:44:35 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 04:43:58 +0200td_(~td@i53870910.versanet.de) td_
2024-10-22 04:42:11 +0200td_(~td@i53870932.versanet.de) (Ping timeout: 265 seconds)
2024-10-22 04:39:29 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Remote host closed the connection)
2024-10-22 04:39:28 +0200alexherbo2(~alexherbo@2a02-8440-3200-38ef-c045-1ca5-ca54-68fa.rev.sfr.net) (Remote host closed the connection)
2024-10-22 04:34:47 +0200dyniec(~dyniec@dybiec.info) (Quit: WeeChat 4.2.2)
2024-10-22 04:34:19 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds)
2024-10-22 04:31:41 +0200sdrfan123(~sdrfan123@2607:fb91:db5:49ea:45cf:fed0:ab50:680c) (Quit: Client closed)
2024-10-22 04:31:17 +0200troojg(~troojg@user/troojg) (Ping timeout: 248 seconds)
2024-10-22 04:29:13 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 04:18:14 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-22 04:14:54 +0200 <haskellbridge> <Bowuigi> The list goes on and on. A good row typing system saves a lot of headaches. That is why I want them on my lang lol (oh also this is re:OOP-vs-FP)
2024-10-22 04:14:34 +0200synchromesh(~john@2406:5a00:2497:300:dc88:9a2b:e157:f2e6) synchromesh
2024-10-22 04:13:49 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 04:13:37 +0200synchromesh(~john@2406:5a00:2497:300:dc88:9a2b:e157:f2e6) (Read error: Connection reset by peer)
2024-10-22 04:13:19 +0200 <haskellbridge> <Bowuigi> It even seems to work for generics! Want to use a staged type theory to generate generics at compile time? Just pattern match on the type. Want to do it at runtime? Use recursion, some mapping and clever types. Typecase on the term level? Use the any label. First class patterns? Use the any label. First class messages? Use the any label. Function with arguments in any order? Use the any label and some clever types
2024-10-22 04:12:24 +0200sdrfan123(~sdrfan123@2607:fb91:db5:49ea:45cf:fed0:ab50:680c)
2024-10-22 04:10:09 +0200 <haskellbridge> ... evidence-pass the sizes obtained
2024-10-22 04:10:04 +0200 <haskellbridge> <Bowuigi> This even works (or seems to work) for optimizations! Want automatic allocation of ADTs? Evidence passing. Want automatic deallocations of ADTs? Perceus et al. Want to join multiple allocations into one for speed? Just inline and combine. Want unboxing? Evidence-pass the size of the type. Want to specialize a polymorphic record type so it can be unboxed? Just defunctionalize and specialize as normal and then...
2024-10-22 04:08:59 +0200weary-traveler(~user@user/user363627) (Remote host closed the connection)
2024-10-22 04:06:07 +0200 <haskellbridge> <Bowuigi> The main reason why I like row types is that they are super versatile. Want to do imperative programming? We have effect systems. Want to do OOP? We have every OOP blessing without its curse. Want to do FP? Sure, just do it as normal. Want to do logic programming? Implement MiniKanren. Want to mix all of them? Sure, everything integrates well
2024-10-22 04:01:18 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-10-22 03:56:50 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 03:52:06 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-10-22 03:51:24 +0200 <dmj`> unless you implement something like intensional type analysis
2024-10-22 03:51:08 +0200 <dmj`> monomorphization and polymorphic recursion don't play well
2024-10-22 03:49:17 +0200 <dmj`> rust inlines the instances though I think, haskell uses dictionary passing, and rust doesn't support polymorphic recursion unlike haskell
2024-10-22 03:46:17 +0200identity(~identity@user/ZharMeny) (Quit: ERC 5.6.0.30.1 (IRC client for GNU Emacs 30.0.91))
2024-10-22 03:45:54 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-10-22 03:45:18 +0200xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2024-10-22 03:42:47 +0200 <meejah> l/window 41
2024-10-22 03:41:30 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 03:39:38 +0200k_hachig_k_hachig
2024-10-22 03:34:14 +0200simendsjo(~user@84.211.91.108) (Ping timeout: 252 seconds)
2024-10-22 03:30:19 +0200pointlessslippe1(~pointless@62.106.85.17) pointlessslippe1