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)
2024-10-22 05:48:50 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 05:53:18 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-10-22 06:00:34 +0200unlucy(sid572875@user/unlucy) unlucy
2024-10-22 06:02:34 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 06:07:11 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
2024-10-22 06:16:24 +0200myxos(~myxos@syn-065-028-251-121.res.spectrum.com) (Ping timeout: 252 seconds)
2024-10-22 06:17:57 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 06:21:43 +0200myxos(~myxos@syn-065-028-251-121.res.spectrum.com) myxokephale
2024-10-22 06:22:13 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-10-22 06:24:01 +0200 <Axman6> Bowuigi: That sounds like a great blog post to me... got any free time? =)
2024-10-22 06:33:20 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 06:36:29 +0200werneta(~werneta@syn-071-083-160-242.res.spectrum.com) werneta
2024-10-22 06:38:19 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-10-22 06:40:44 +0200Square2(~Square4@user/square) Square
2024-10-22 06:41:13 +0200araujo(~araujo@45.146.55.99) (Ping timeout: 245 seconds)
2024-10-22 06:41:39 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2024-10-22 06:48:41 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 06:50:46 +0200Square(~Square@user/square) (Ping timeout: 252 seconds)
2024-10-22 06:55:32 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-10-22 07:00:24 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-10-22 07:01:09 +0200michalz(~michalz@185.246.207.205)
2024-10-22 07:01:34 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-10-22 07:06:00 +0200 <haskellbridge> <Bowuigi> Sadly not much free time so far, I have a lot of exams these weeks lol
2024-10-22 07:06:45 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 07:06:57 +0200 <haskellbridge> <Bowuigi> geekosaur System F fits row types really well tho, like HM and F omega (a few papers use all three and don't complain)
2024-10-22 07:07:48 +0200 <haskellbridge> <Bowuigi> System FC/GHC Core might be harder to adapt to though; coercions and all the fancy stuff could become problematic, no idea
2024-10-22 07:09:11 +0200 <haskellbridge> <Bowuigi> Also GHC is heavily optimized to work with ADTs, naive attempts won't achieve the expected performance. The same thing happened when researchers ported Perceus (+extensions) to OCaml
2024-10-22 07:11:30 +0200 <haskellbridge> <Bowuigi> A quick rundown of the features you need for all the stuff I mentioned would be pretty cool ngl, tho some ideas were born in this chat and have no real implementation or even proper semantics. In particular, I really think the specialization should work, but I never tried writing it down
2024-10-22 07:11:53 +0200hgolden__(~hgolden@146.70.173.101) hgolden
2024-10-22 07:13:27 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-10-22 07:13:49 +0200rosco(~rosco@60.53.7.10) rosco
2024-10-22 07:14:14 +0200hgolden_(~hgolden@204.152.216.122) (Ping timeout: 252 seconds)
2024-10-22 07:14:25 +0200jinsun(~jinsun@user/jinsun) jinsun
2024-10-22 07:14:50 +0200 <haskellbridge> <Bowuigi> What I did try to write is an effect system based on the Van Laarhoven Free Monad. It worked but you need fancy stuff if you want a reasonable feature set (type lambdas, most importantly, and possibly row concatenation, which can't be compiled efficiently yet)
2024-10-22 07:18:02 +0200alp(~alp@2001:861:e3d6:8f80:1068:2132:b192:21de)
2024-10-22 07:18:27 +0200alp(~alp@2001:861:e3d6:8f80:1068:2132:b192:21de) (Changing host)
2024-10-22 07:18:27 +0200alp(~alp@user/alp) alp
2024-10-22 07:23:30 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2024-10-22 07:24:16 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-10-22 07:24:46 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 07:27:30 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-10-22 07:27:44 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 255 seconds)
2024-10-22 07:31:33 +0200rmca(~rob@188.120.84.50) (Ping timeout: 248 seconds)
2024-10-22 07:33:27 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-10-22 07:33:43 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2024-10-22 07:34:20 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-10-22 07:39:18 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-10-22 07:40:30 +0200Axman6(~Axman6@user/axman6) (Remote host closed the connection)
2024-10-22 07:40:45 +0200Axman6(~Axman6@user/axman6) Axman6
2024-10-22 07:43:30 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) TheCoffeMaker
2024-10-22 07:44:36 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 07:49:20 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
2024-10-22 07:51:05 +0200JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2024-10-22 07:51:13 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds)
2024-10-22 07:51:46 +0200k_hachig(~k_hachig@2607:fea8:351d:ef0:5d8:3261:6875:6bbe) (Quit: WeeChat 4.4.2)
2024-10-22 07:51:56 +0200euleritian(~euleritia@dynamic-176-006-140-151.176.6.pool.telefonica.de)
2024-10-22 07:54:50 +0200sord937(~sord937@gateway/tor-sasl/sord937) sord937
2024-10-22 07:57:00 +0200Garbanzo(~Garbanzo@2602:304:6eac:dc10::46)
2024-10-22 07:59:57 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-22 08:02:12 +0200bliminse(~bliminse@user/bliminse) (Quit: leaving)
2024-10-22 08:02:48 +0200bliminse(~bliminse@user/bliminse) bliminse
2024-10-22 08:07:10 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-10-22 08:20:59 +0200nek0(~nek0@user/nek0) nek0
2024-10-22 08:24:37 +0200JuanDaugherty(~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
2024-10-22 08:27:28 +0200euphores(~SASL_euph@user/euphores) (Ping timeout: 245 seconds)
2024-10-22 08:29:14 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-10-22 08:33:04 +0200oneeyedalien(~oneeyedal@user/oneeyedalien) oneeyedalien
2024-10-22 08:33:47 +0200oneeyedalien(~oneeyedal@user/oneeyedalien) (Remote host closed the connection)
2024-10-22 08:38:19 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-10-22 08:48:20 +0200Garbanzo(~Garbanzo@2602:304:6eac:dc10::46) (Remote host closed the connection)
2024-10-22 09:00:00 +0200caconym(~caconym@user/caconym) (Quit: bye)
2024-10-22 09:00:38 +0200caconym(~caconym@user/caconym) caconym
2024-10-22 09:01:24 +0200Digitteknohippie(~user@user/digit) Digit
2024-10-22 09:01:55 +0200Digit(~user@user/digit) (Ping timeout: 264 seconds)
2024-10-22 09:05:17 +0200merijn(~merijn@77.242.116.146) merijn
2024-10-22 09:09:25 +0200ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en
2024-10-22 09:09:25 +0200ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Client Quit)
2024-10-22 09:09:27 +0200rosco(~rosco@60.53.7.10) (Quit: Lost terminal)
2024-10-22 09:09:39 +0200rosco(~rosco@60.53.7.10) rosco
2024-10-22 09:11:24 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac
2024-10-22 09:21:59 +0200acidjnk_new(~acidjnk@p200300d6e72cfb0024c2a0322de583e8.dip0.t-ipconnect.de) acidjnk
2024-10-22 09:25:22 +0200werneta(~werneta@syn-071-083-160-242.res.spectrum.com) (Remote host closed the connection)
2024-10-22 09:28:14 +0200killy(~killy@terminal-3-187.retsat1.com.pl)
2024-10-22 09:29:23 +0200DigitteknohippieDigit
2024-10-22 09:35:45 +0200merijn(~merijn@77.242.116.146) (Ping timeout: 248 seconds)
2024-10-22 09:39:03 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
2024-10-22 09:40:30 +0200sawilagar(~sawilagar@user/sawilagar) sawilagar
2024-10-22 09:42:09 +0200merijn(~merijn@77.242.116.146) merijn
2024-10-22 09:42:31 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2024-10-22 09:46:13 +0200merijn(~merijn@77.242.116.146) (Ping timeout: 245 seconds)
2024-10-22 09:48:28 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2024-10-22 09:49:31 +0200merijn(~merijn@77.242.116.146) merijn
2024-10-22 09:56:18 +0200machinedgod(~machinedg@d50-99-47-73.abhsia.telus.net) machinedgod
2024-10-22 10:04:52 +0200hgolden_(~hgolden@146.70.173.37) hgolden
2024-10-22 10:07:44 +0200hgolden__(~hgolden@146.70.173.101) (Ping timeout: 260 seconds)
2024-10-22 10:10:29 +0200merijn(~merijn@77.242.116.146) (Ping timeout: 248 seconds)
2024-10-22 10:11:35 +0200CiaoSen(~Jura@2a05:5800:20b:3a00:ca4b:d6ff:fec1:99da) CiaoSen
2024-10-22 10:13:34 +0200merijn(~merijn@77.242.116.146) merijn
2024-10-22 10:18:39 +0200tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Remote host closed the connection)
2024-10-22 10:18:53 +0200tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
2024-10-22 10:22:55 +0200mrtz(~mrtz@lewi-19-b2-v4wan-169604-cust1264.vm4.cable.virginm.net)
2024-10-22 10:24:48 +0200killy(~killy@terminal-3-187.retsat1.com.pl) (Quit: leaving)
2024-10-22 10:25:14 +0200ft(~ft@p4fc2a216.dip0.t-ipconnect.de) (Quit: leaving)
2024-10-22 10:29:42 +0200cfricke(~cfricke@user/cfricke) cfricke
2024-10-22 10:31:54 +0200chele(~chele@user/chele) chele
2024-10-22 10:35:06 +0200ljdarj(~Thunderbi@user/ljdarj) ljdarj
2024-10-22 10:38:57 +0200mrtz(~mrtz@lewi-19-b2-v4wan-169604-cust1264.vm4.cable.virginm.net) (Remote host closed the connection)
2024-10-22 10:39:14 +0200merijn(~merijn@77.242.116.146) (Ping timeout: 260 seconds)
2024-10-22 10:39:46 +0200econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2024-10-22 10:48:43 +0200Clint(~Clint@user/clint) (Ping timeout: 245 seconds)
2024-10-22 10:51:55 +0200merijn(~merijn@77.242.116.146) merijn
2024-10-22 10:54:09 +0200ubert(~Thunderbi@178.115.35.86.wireless.dyn.drei.com) ubert
2024-10-22 10:58:19 +0200merijn(~merijn@77.242.116.146) (Ping timeout: 264 seconds)
2024-10-22 11:02:02 +0200merijn(~merijn@77.242.116.146) merijn
2024-10-22 11:04:51 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 252 seconds)
2024-10-22 11:07:56 +0200youthlic(~Thunderbi@user/youthlic) (Quit: youthlic)
2024-10-22 11:08:52 +0200merijn(~merijn@77.242.116.146) (Ping timeout: 244 seconds)
2024-10-22 11:09:40 +0200youthlic(~Thunderbi@user/youthlic) youthlic
2024-10-22 11:11:20 +0200lxsameer(~lxsameer@Serene/lxsameer) lxsameer
2024-10-22 11:14:20 +0200mceresa(~mceresa@user/mceresa) (Read error: error:0A000119:SSL routines::decryption failed or bad record mac)
2024-10-22 11:17:10 +0200mreh(~matthew@host86-128-2-51.range86-128.btcentralplus.com) mreh
2024-10-22 11:18:31 +0200merijn(~merijn@77.242.116.146) merijn
2024-10-22 11:19:30 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) kuribas
2024-10-22 11:23:31 +0200L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 264 seconds)
2024-10-22 11:30:23 +0200briandaed(~root@185.234.210.211)
2024-10-22 11:34:57 +0200merijn(~merijn@77.242.116.146) (Ping timeout: 265 seconds)
2024-10-22 11:37:05 +0200CrunchyFlakes(~CrunchyFl@ip1f13e94e.dynamic.kabel-deutschland.de)
2024-10-22 11:43:34 +0200__monty__(~toonn@user/toonn) toonn
2024-10-22 11:46:40 +0200merijn(~merijn@77.242.116.146) merijn
2024-10-22 11:48:05 +0200CrunchyFlakes(~CrunchyFl@ip1f13e94e.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds)
2024-10-22 11:48:16 +0200euleritian(~euleritia@dynamic-176-006-140-151.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-10-22 11:48:33 +0200euleritian(~euleritia@77.22.252.56)
2024-10-22 11:49:42 +0200CiaoSen(~Jura@2a05:5800:20b:3a00:ca4b:d6ff:fec1:99da) (Ping timeout: 252 seconds)
2024-10-22 11:53:29 +0200merijn(~merijn@77.242.116.146) (Ping timeout: 260 seconds)
2024-10-22 11:54:41 +0200CrunchyFlakes(~CrunchyFl@ip1f13e94e.dynamic.kabel-deutschland.de)
2024-10-22 11:56:41 +0200merijn(~merijn@77.242.116.146) merijn
2024-10-22 11:58:42 +0200myme(~myme@40.51-175-185.customer.lyse.net) (Ping timeout: 248 seconds)
2024-10-22 12:01:25 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) Unicorn_Princess
2024-10-22 12:08:59 +0200xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 255 seconds)
2024-10-22 12:11:41 +0200merijn(~merijn@77.242.116.146) (Ping timeout: 255 seconds)
2024-10-22 12:12:04 +0200myme(~myme@2a01:799:d5c:5f00:3450:111a:e305:e38a) myme
2024-10-22 12:12:10 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2)
2024-10-22 12:14:31 +0200mceresa(~mceresa@user/mceresa) mceresa
2024-10-22 12:25:15 +0200merijn(~merijn@77.242.116.146) merijn
2024-10-22 12:30:39 +0200synchromesh(~john@2406:5a00:2497:300:dc88:9a2b:e157:f2e6) (Read error: Connection reset by peer)
2024-10-22 12:32:42 +0200synchromesh(~john@2406:5a00:2497:300:dc88:9a2b:e157:f2e6) synchromesh
2024-10-22 12:39:35 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 255 seconds)
2024-10-22 12:49:37 +0200lxsameer(~lxsameer@Serene/lxsameer) (Ping timeout: 244 seconds)
2024-10-22 12:50:29 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac
2024-10-22 12:52:35 +0200 <tromp> I'm getting a compilation error: • No instance for (MonadFail N.NonEmpty)
2024-10-22 12:53:49 +0200 <tromp> doing A b <- ts where ts is N.NonEmpty Term
2024-10-22 12:54:08 +0200 <mauke> what do you want to happen if the pattern doesn't match?
2024-10-22 12:54:26 +0200mreh(~matthew@host86-128-2-51.range86-128.btcentralplus.com) (Ping timeout: 255 seconds)
2024-10-22 12:54:27 +0200 <tromp> looks like it wants to skip those
2024-10-22 12:54:38 +0200 <mauke> ?
2024-10-22 12:55:12 +0200 <tromp> it's after a N.sort $ do
2024-10-22 12:55:26 +0200 <tromp> and followed by just b
2024-10-22 12:58:28 +0200 <merijn> tromp: Any pattern that can fail incurs a MonadFail constraint when used on the left hand of <-
2024-10-22 12:58:53 +0200 <merijn> tromp: And N.NonEmpty (according to GHC) does not have a MonadFail instance
2024-10-22 12:59:27 +0200 <tromp> i took the code from https://codegolf.stackexchange.com/questions/105991/combinatory-conundrum/106008#106008 (top answer)
2024-10-22 13:00:05 +0200caconym(~caconym@user/caconym) (Quit: bye)
2024-10-22 13:00:05 +0200alexherbo2(~alexherbo@2a02-8440-3211-c257-559a-6e1d-739b-a378.rev.sfr.net) alexherbo2
2024-10-22 13:00:14 +0200 <tromp> and the author provides the output of running the code
2024-10-22 13:00:42 +0200 <kaol> Monad used to have "fail" as a part of it and old code on the Internet may still expect that to work.
2024-10-22 13:01:09 +0200 <tromp> it's a post from 2017
2024-10-22 13:01:41 +0200 <kaol> That's "old" for the purpose of this difference.
2024-10-22 13:02:24 +0200 <tromp> oh, i can still run it online with the "Try it online! link
2024-10-22 13:02:28 +0200caconym(~caconym@user/caconym) caconym
2024-10-22 13:03:28 +0200 <kaol> They may be using an old GHC version or they may give it a catch all MonadFail instance. But this is the reason it won't work if you try it at home.
2024-10-22 13:04:29 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 260 seconds)
2024-10-22 13:04:38 +0200 <kaol> If your purpose is to just follow some code at home, you may define your own MonadFail instance. But watch out if you think of doing the same in production.
2024-10-22 13:04:46 +0200 <tromp> Thanks for help
2024-10-22 13:07:28 +0200merijn(~merijn@77.242.116.146) (Ping timeout: 245 seconds)
2024-10-22 13:07:36 +0200 <kaol> To expand on this a bit more: Having fail in Monad was always ugly since it's not a part of the definition in category theory and for many monads, you can't really do anything but invoke "error" if a pattern match failure happens and that's a silent source of partial functions.
2024-10-22 13:08:53 +0200 <mauke> ~(A b) <- ts
2024-10-22 13:09:40 +0200madjestic(~madjestic@213.208.215.120) madjestic
2024-10-22 13:10:32 +0200 <kaol> I always forget about lazy patterns.
2024-10-22 13:10:57 +0200 <tromp> yep; that "fixes" it
2024-10-22 13:11:29 +0200 <kaol> Still going to be a run time program breaking event if it happens.
2024-10-22 13:13:28 +0200merijn(~merijn@77.242.116.146) merijn
2024-10-22 13:13:50 +0200xff0x(~xff0x@2405:6580:b080:900:61f:49ca:1cad:ed6)
2024-10-22 13:14:25 +0200araujo(~araujo@45.146.55.99)
2024-10-22 13:16:56 +0200L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2024-10-22 13:19:41 +0200ljdarj(~Thunderbi@user/ljdarj) ljdarj
2024-10-22 13:23:28 +0200merijn(~merijn@77.242.116.146) (Ping timeout: 252 seconds)
2024-10-22 13:28:34 +0200CiaoSen(~Jura@2a05:5800:20b:3a00:ca4b:d6ff:fec1:99da) CiaoSen
2024-10-22 13:31:36 +0200merijn(~merijn@77.242.116.146) merijn
2024-10-22 13:33:46 +0200Clint(~Clint@user/clint) Clint
2024-10-22 13:38:46 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-10-22 13:42:25 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) TheCoffeMaker
2024-10-22 13:46:38 +0200merijn(~merijn@77.242.116.146) (Ping timeout: 255 seconds)
2024-10-22 13:48:08 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2024-10-22 13:48:57 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-10-22 13:49:53 +0200eL_Bart0(eL_Bart0@dietunichtguten.org) (Quit: Restarting)
2024-10-22 13:50:01 +0200eL_Bart0-(eL_Bart0@dietunichtguten.org)
2024-10-22 13:50:10 +0200merijn(~merijn@77.242.116.146) merijn
2024-10-22 13:52:42 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 265 seconds)
2024-10-22 13:53:41 +0200araujo(~araujo@45.146.55.99) (Ping timeout: 265 seconds)
2024-10-22 13:56:34 +0200madjestic(~madjestic@213.208.215.120) (Ping timeout: 265 seconds)
2024-10-22 14:02:49 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-10-22 14:06:32 +0200mari-estel(~mari-este@user/mari-estel) mari-estel
2024-10-22 14:10:49 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-10-22 14:15:13 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 248 seconds)
2024-10-22 14:16:21 +0200 <kqr> Is there a way to specify in a cabal file that certain modules in a library should not be exposed publically, but available to a test-suite?
2024-10-22 14:19:12 +0200 <Hecate> hmm
2024-10-22 14:19:29 +0200 <Hecate> Alas I don't think there's such a granularity of exposure available