Newest at the top
2024-10-22 04:31:41 +0200 | sdrfan123 | (~sdrfan123@2607:fb91:db5:49ea:45cf:fed0:ab50:680c) (Quit: Client closed) |
2024-10-22 04:31:17 +0200 | troojg | (~troojg@user/troojg) (Ping timeout: 248 seconds) |
2024-10-22 04:29:13 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-22 04:18:14 +0200 | merijn | (~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 +0200 | synchromesh | (~john@2406:5a00:2497:300:dc88:9a2b:e157:f2e6) synchromesh |
2024-10-22 04:13:49 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-22 04:13:37 +0200 | synchromesh | (~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 +0200 | sdrfan123 | (~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 +0200 | weary-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 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-10-22 03:56:50 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-22 03:52:06 +0200 | peterbecich | (~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 +0200 | identity | (~identity@user/ZharMeny) (Quit: ERC 5.6.0.30.1 (IRC client for GNU Emacs 30.0.91)) |
2024-10-22 03:45:54 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-10-22 03:45:18 +0200 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
2024-10-22 03:42:47 +0200 | <meejah> | l/window 41 |
2024-10-22 03:41:30 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-22 03:39:38 +0200 | k_hachig_ | k_hachig |
2024-10-22 03:34:14 +0200 | simendsjo | (~user@84.211.91.108) (Ping timeout: 252 seconds) |
2024-10-22 03:30:19 +0200 | pointlessslippe1 | (~pointless@62.106.85.17) pointlessslippe1 |
2024-10-22 03:30:15 +0200 | troojg | (~troojg@user/troojg) troojg |
2024-10-22 03:30:04 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-10-22 03:29:53 +0200 | Smiles | (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2024-10-22 03:28:54 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 260 seconds) |
2024-10-22 03:26:42 +0200 | pointlessslippe1 | (~pointless@62.106.85.17) (Read error: Connection reset by peer) |
2024-10-22 03:23:25 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-22 03:15:55 +0200 | <sm> | https://dl.acm.org/doi/pdf/10.1145/966873.806468 |
2024-10-22 03:15:15 +0200 | <sm> | allowed us to apply this unproven software technique to a large and important piece of software - successfully. Dan Ingalls, Alan Borning, and Dave Gifford all later noted the similarities between the traits approach and the flavors approach of the MIT LISP machine. |
2024-10-22 03:15:15 +0200 | <sm> | historical trivia from the original 1982 traits paper: "Multiple-inheritance subclassing is a valid and useful method for organizing object-oriented software; as demonstrated by the existence of the Star Workstation. The complexity of the Star WS software has been controlled by object-orientation first, subclassing second and multiple-inheritance third. The Traits Model is a reasonable approach to multiple- inheritance subclassing. ... Eric Harslem |
2024-10-22 03:12:36 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-22 03:12:12 +0200 | araujo | (~araujo@45.146.55.99) |
2024-10-22 03:10:52 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-10-22 03:10:04 +0200 | esph | (~weechat@user/esph) (Ping timeout: 260 seconds) |
2024-10-22 03:08:54 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 265 seconds) |
2024-10-22 03:08:03 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-22 03:06:42 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 246 seconds) |
2024-10-22 03:04:38 +0200 | weary-traveler | (~user@user/user363627) user363627 |
2024-10-22 03:03:19 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-10-22 03:02:32 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-10-22 03:01:41 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Quit: peterbecich) |
2024-10-22 02:57:12 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-22 02:57:00 +0200 | araujo | (~araujo@193.56.116.233) (Ping timeout: 244 seconds) |