2024/10/22

2024-10-22 00:00:29 +0200 <geekosaur> (strongly deprecated since OCaml 2.0 though)
2024-10-22 00:00:32 +0200 <mauke> technically also true of Perl
2024-10-22 00:07:25 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 00:10:38 +0200Sgeo(~Sgeo@user/sgeo) Sgeo
2024-10-22 00:11:49 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-22 00:13:51 +0200 <dmj`> rust is by default immutable, pass by value, with opt-in laziness and mutability, haskell is default immutable, pass by value, but default laziness and opt-in mutability. rust traits aren't compiled w/ dictionaries, and I don't know how rust existentials are handled
2024-10-22 00:15:38 +0200tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Remote host closed the connection)
2024-10-22 00:15:53 +0200tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) tcard
2024-10-22 00:22:48 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 00:24:35 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-10-22 00:27:29 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-10-22 00:29:39 +0200k_hachig(~k_hachig@2607:fea8:351d:ef0:5d8:3261:6875:6bbe) (Ping timeout: 260 seconds)
2024-10-22 00:35:29 +0200k_hachig_(~k_hachig@2607:fea8:351d:ef0:5d8:3261:6875:6bbe) k_hachig
2024-10-22 00:35:31 +0200alp(~alp@user/alp) (Ping timeout: 264 seconds)
2024-10-22 00:35:51 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 246 seconds)
2024-10-22 00:40:33 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 00:40:47 +0200neuroevolutus(~neuroevol@79.127.222.218) (Ping timeout: 256 seconds)
2024-10-22 00:43:44 +0200vglfr(~vglfr@c-73-250-25-113.hsd1.md.comcast.net) (Ping timeout: 252 seconds)
2024-10-22 00:44:22 +0200vglfr(~vglfr@2607:fb91:89c:94e1:ac39:c397:e2d4:2df7) vglfr
2024-10-22 00:45:21 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-10-22 00:45:34 +0200machinedgod(~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 252 seconds)
2024-10-22 00:47:49 +0200 <sm> there are *so many* characteristics within "OOP" and "FP" that are orthogonal or at best related
2024-10-22 00:48:36 +0200vglfr(~vglfr@2607:fb91:89c:94e1:ac39:c397:e2d4:2df7) (Ping timeout: 252 seconds)
2024-10-22 00:48:40 +0200 <sm> until we can name and explain every one of them there'll be no end to the discussions :)
2024-10-22 00:49:09 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-10-22 00:49:19 +0200mantraofpie_mantraofpie
2024-10-22 00:49:25 +0200vglfr(~vglfr@2607:fb90:ea26:e52:ad3:f751:e463:3b12) vglfr
2024-10-22 00:50:50 +0200 <haskellbridge> <sm> I guess this is all related to today's, https://news.ycombinator.com/item?id=41901577
2024-10-22 00:52:00 +0200L29Ah(~L29Ah@wikipedia/L29Ah) ()
2024-10-22 00:52:40 +0200L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2024-10-22 00:52:55 +0200ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2024-10-22 00:53:53 +0200BolzmannPain2(~BolzmannP@2a02:3035:66f:43d3:a705:5462:8b6b:2ae2)
2024-10-22 00:54:33 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 245 seconds)
2024-10-22 00:55:12 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 276 seconds)
2024-10-22 00:55:12 +0200ljdarj1ljdarj
2024-10-22 00:55:55 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 00:58:57 +0200araujo(~araujo@45.146.55.185) (Ping timeout: 248 seconds)
2024-10-22 01:00:23 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2024-10-22 01:07:15 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2024-10-22 01:09:17 +0200Everything(~Everythin@178-133-160-21.mobile.vf-ua.net) (Quit: leaving)
2024-10-22 01:11:19 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 01:15:38 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-22 01:22:08 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-10-22 01:25:15 +0200Square(~Square@user/square) Square
2024-10-22 01:26:41 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 01:30:57 +0200k_hachig_(~k_hachig@2607:fea8:351d:ef0:5d8:3261:6875:6bbe) (Ping timeout: 252 seconds)
2024-10-22 01:33:15 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-10-22 01:33:36 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds)
2024-10-22 01:33:43 +0200vglfr(~vglfr@2607:fb90:ea26:e52:ad3:f751:e463:3b12) (Ping timeout: 245 seconds)
2024-10-22 01:34:08 +0200acidjnk_new(~acidjnk@p200300d6e72cfb2850471ab9600a8860.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
2024-10-22 01:35:31 +0200sawilagar(~sawilagar@user/sawilagar) (Ping timeout: 264 seconds)
2024-10-22 01:41:38 +0200k_hachig_(~k_hachig@2607:fea8:351d:ef0:5d8:3261:6875:6bbe) k_hachig
2024-10-22 01:42:51 +0200araujo(~araujo@193.56.116.233)
2024-10-22 01:44:07 +0200vglfr(~vglfr@c-73-250-25-113.hsd1.md.comcast.net) vglfr
2024-10-22 01:45:03 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 01:52:05 +0200BolzmannPain2(~BolzmannP@2a02:3035:66f:43d3:a705:5462:8b6b:2ae2) (Quit: Client closed)
2024-10-22 01:52:56 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-10-22 01:57:32 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-10-22 02:01:42 +0200SlackCoder(~SlackCode@64-94-63-8.ip.weststar.net.ky) (Quit: Leaving)
2024-10-22 02:01:50 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds)
2024-10-22 02:04:01 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 02:04:30 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2024-10-22 02:08:18 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2024-10-22 02:08:40 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-10-22 02:17:35 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-10-22 02:19:24 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 02:22:00 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds)
2024-10-22 02:23:53 +0200swamp_(~zmt00@user/zmt00) zmt00
2024-10-22 02:24:12 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-22 02:24:15 +0200swamp_(~zmt00@user/zmt00) (Max SendQ exceeded)
2024-10-22 02:25:05 +0200swamp_(~zmt00@user/zmt00) zmt00
2024-10-22 02:25:30 +0200swamp_(~zmt00@user/zmt00) (Max SendQ exceeded)
2024-10-22 02:26:17 +0200swamp_(~zmt00@user/zmt00) zmt00
2024-10-22 02:27:14 +0200ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2024-10-22 02:27:36 +0200zmt01(~zmt00@user/zmt00) (Ping timeout: 252 seconds)
2024-10-22 02:28:25 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-10-22 02:30:43 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
2024-10-22 02:30:43 +0200ljdarj1ljdarj
2024-10-22 02:35:11 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 02:37:50 +0200pavonia(~user@user/siracusa) (Read error: Connection reset by peer)
2024-10-22 02:40:30 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-10-22 02:46:58 +0200pavonia(~user@user/siracusa) siracusa
2024-10-22 02:49:30 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 272 seconds)
2024-10-22 02:51:19 +0200xff0x(~xff0x@2405:6580:b080:900:402e:506a:8caf:1fb3) (Ping timeout: 244 seconds)
2024-10-22 02:52:28 +0200 <Axman6> sam113101: traits (among many other features of Rust were strongly inspured by Haskell's type classes - https://readmedium.com/ideas-from-other-languages-that-influenced-rust-8ffb5589b0fe
2024-10-22 02:52:37 +0200 <Axman6> s/Rust/Rust)
2024-10-22 02:52:40 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 02:57:00 +0200araujo(~araujo@193.56.116.233) (Ping timeout: 244 seconds)
2024-10-22 02:57:12 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-22 03:01:41 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Quit: peterbecich)
2024-10-22 03:02:32 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-10-22 03:03:19 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-10-22 03:04:38 +0200weary-traveler(~user@user/user363627) user363627
2024-10-22 03:06:42 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 246 seconds)
2024-10-22 03:08:03 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 03:08:54 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 265 seconds)
2024-10-22 03:10:04 +0200esph(~weechat@user/esph) (Ping timeout: 260 seconds)
2024-10-22 03:10:52 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-10-22 03:12:12 +0200araujo(~araujo@45.146.55.99)
2024-10-22 03:12:36 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
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: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:55 +0200 <sm> https://dl.acm.org/doi/pdf/10.1145/966873.806468
2024-10-22 03:23:25 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 03:26:42 +0200pointlessslippe1(~pointless@62.106.85.17) (Read error: Connection reset by peer)
2024-10-22 03:28:54 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 260 seconds)
2024-10-22 03:29:53 +0200Smiles(uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2024-10-22 03:30:04 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-10-22 03:30:15 +0200troojg(~troojg@user/troojg) troojg
2024-10-22 03:30:19 +0200pointlessslippe1(~pointless@62.106.85.17) pointlessslippe1
2024-10-22 03:34:14 +0200simendsjo(~user@84.211.91.108) (Ping timeout: 252 seconds)
2024-10-22 03:39:38 +0200k_hachig_k_hachig
2024-10-22 03:41:30 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 03:42:47 +0200 <meejah> l/window 41
2024-10-22 03:45:18 +0200xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2024-10-22 03:45:54 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
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: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:51:08 +0200 <dmj`> monomorphization and polymorphic recursion don't play well
2024-10-22 03:51:24 +0200 <dmj`> unless you implement something like intensional type analysis
2024-10-22 03:52:06 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-10-22 03:56:50 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 04:01:18 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
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:08:59 +0200weary-traveler(~user@user/user363627) (Remote host closed the connection)
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:10:09 +0200 <haskellbridge> ... evidence-pass the sizes obtained
2024-10-22 04:12:24 +0200sdrfan123(~sdrfan123@2607:fb91:db5:49ea:45cf:fed0:ab50:680c)
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:13:37 +0200synchromesh(~john@2406:5a00:2497:300:dc88:9a2b:e157:f2e6) (Read error: Connection reset by peer)
2024-10-22 04:13:49 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 04:14:34 +0200synchromesh(~john@2406:5a00:2497:300:dc88:9a2b:e157:f2e6) synchromesh
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:18:14 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-22 04:29:13 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 04:31:17 +0200troojg(~troojg@user/troojg) (Ping timeout: 248 seconds)
2024-10-22 04:31:41 +0200sdrfan123(~sdrfan123@2607:fb91:db5:49ea:45cf:fed0:ab50:680c) (Quit: Client closed)
2024-10-22 04:34:19 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds)
2024-10-22 04:34:47 +0200dyniec(~dyniec@dybiec.info) (Quit: WeeChat 4.2.2)
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:39:29 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Remote host closed the connection)
2024-10-22 04:42:11 +0200td_(~td@i53870932.versanet.de) (Ping timeout: 265 seconds)
2024-10-22 04:43:58 +0200td_(~td@i53870910.versanet.de) td_
2024-10-22 04:44:35 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 04:49:51 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-10-22 04:53:47 +0200 <monochrom> I would like row types too. :)
2024-10-22 04:59:57 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 05:01:10 +0200nek0(~nek0@user/nek0) (Quit: The Lounge - https://thelounge.chat)
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: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:07:34 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-10-22 05:18:06 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 05:21:05 +0200sw4n(~sw4n@2605:59c0:40f0:9610:ac8f:aae7:993d:9d22)
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:22:23 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-22 05:24:15 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 246 seconds)
2024-10-22 05:26:25 +0200bilegeek(~bilegeek@2600:1008:b001:620a:43c3:75c:3744:424a) (Quit: Leaving)
2024-10-22 05:33:28 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 05:37:57 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)