Home liberachat/#haskell: Logs Calendar

Logs on 2024-08-18 (liberachat/#haskell)

00:00:38 × ash3en quits (~Thunderbi@2a01:c23:8d72:f00:e960:846c:442d:ea53) (Quit: ash3en)
00:05:16 troojg joins (~troojg@user/troojg)
00:20:09 Inst_ joins (~Inst@user/Inst)
00:20:17 × Inst quits (~Inst@user/Inst) (Killed (NickServ (GHOST command used by Inst_)))
00:20:19 Inst_ is now known as Inst
00:32:19 Volt_ joins (~Volt_@72.252.192.240)
00:37:24 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 252 seconds)
00:43:15 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
00:44:19 × wroathe quits (~wroathe@user/wroathe) (Quit: leaving)
00:46:40 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
00:48:52 segfaultfizzbuzz joins (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net)
00:49:47 <segfaultfizzbuzz> i think people in ##rust are out partying and living normal lives, can i ask a simple functional programming-y rust question here?
00:50:25 <Inst> "don't ask to ask"
00:51:01 <geekosaur> but I don't know why you'd expect it to be any different here
00:51:07 <segfaultfizzbuzz> impl MyFoo { fn do_something(&self) -> i64 { self.bar + self.baz} }
00:51:27 <segfaultfizzbuzz> versus impl MyFoo { fn do_something(foo: MyFoo) -> i64 { foo.bar + foo.baz } }
00:52:03 <segfaultfizzbuzz> so especially when do_something is a pure function (no mutation of self, for example), i'm having trouble understanding why you wouldn't always pass foo
00:52:18 <segfaultfizzbuzz> like, why use &self
00:52:36 <Inst> i think it got answered in ##rust
00:53:19 <segfaultfizzbuzz> eh, i may as well have haskeller opinions if you have something to add...
00:54:06 <Inst> a lot of Haskellers don't know Rust, and quite a few Haskellers who know both Rust and Haskell already left for Haskell, so if there's no activity, you could also try ##programming
00:54:18 <Inst> erm, left for Rust, not left for Haskell
00:56:09 × CrunchyFlakes quits (~CrunchyFl@146.52.130.128) (Quit: ZNC 1.8.2 - https://znc.in)
01:08:02 × segfaultfizzbuzz quits (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Ping timeout: 248 seconds)
01:08:34 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
01:09:00 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
01:10:20 segfaultfizzbuzz joins (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net)
01:10:44 × troojg quits (~troojg@user/troojg) (Ping timeout: 260 seconds)
01:14:42 × segfaultfizzbuzz quits (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Ping timeout: 252 seconds)
01:17:40 Inst_ joins (~Inst@user/Inst)
01:17:41 × xff0x quits (~xff0x@2405:6580:b080:900:cf5d:a592:9293:1abb) (Ping timeout: 248 seconds)
01:18:28 xff0x joins (~xff0x@2405:6580:b080:900:f7ea:ebc:48e7:5791)
01:18:42 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Quit: peterbecich)
01:19:35 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
01:20:50 × Inst quits (~Inst@user/Inst) (Ping timeout: 272 seconds)
01:23:35 segfaultfizzbuzz joins (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net)
01:29:34 neuroevolutus joins (~neuroevol@37.19.200.161)
01:35:13 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds)
01:37:35 wroathe joins (~wroathe@mobile-166-175-56-161.mycingular.net)
01:37:35 × wroathe quits (~wroathe@mobile-166-175-56-161.mycingular.net) (Changing host)
01:37:35 wroathe joins (~wroathe@user/wroathe)
01:40:33 × segfaultfizzbuzz quits (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Ping timeout: 248 seconds)
01:51:49 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 248 seconds)
01:54:06 wroathe joins (~wroathe@mobile-166-175-56-161.mycingular.net)
01:54:06 × wroathe quits (~wroathe@mobile-166-175-56-161.mycingular.net) (Changing host)
01:54:06 wroathe joins (~wroathe@user/wroathe)
01:58:02 Inst_ is now known as Inst
02:03:23 × ZharMeny quits (~user@user/ZharMeny) (Quit: 17 (disambiguation))
02:05:04 × op_4 quits (~tslil@user/op-4/x-9116473) (Remote host closed the connection)
02:05:35 op_4 joins (~tslil@user/op-4/x-9116473)
02:08:58 × nadja quits (~dequbed@banana-new.kilobyte22.de) (Ping timeout: 244 seconds)
02:09:25 sroso joins (~sroso@user/SrOso)
02:09:27 nadja joins (~dequbed@banana-new.kilobyte22.de)
02:09:42 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
02:10:53 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
02:16:57 × neuroevolutus quits (~neuroevol@37.19.200.161) (Ping timeout: 256 seconds)
02:19:18 × td_ quits (~td@i53870926.versanet.de) (Ping timeout: 244 seconds)
02:21:01 td_ joins (~td@i53870932.versanet.de)
02:21:29 tomku joins (~tomku@user/tomku)
02:25:03 wroathe parts (~wroathe@user/wroathe) ()
02:29:32 × Blasius_ quits (~Blasius@90.201.223.82) (Ping timeout: 255 seconds)
02:40:27 wroathe joins (~wroathe@mobile-166-175-56-161.mycingular.net)
02:40:27 × wroathe quits (~wroathe@mobile-166-175-56-161.mycingular.net) (Changing host)
02:40:27 wroathe joins (~wroathe@user/wroathe)
02:49:17 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
02:49:57 euleritian joins (~euleritia@dynamic-176-006-138-245.176.6.pool.telefonica.de)
02:56:11 Blasius joins (~Blasius@5ec169d9.skybroadband.com)
03:07:08 segfaultfizzbuzz joins (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net)
03:07:48 × wroathe quits (~wroathe@user/wroathe) (Quit: Reconnecting)
03:08:01 wroathe joins (~wroathe@mobile-166-175-56-161.mycingular.net)
03:08:01 × wroathe quits (~wroathe@mobile-166-175-56-161.mycingular.net) (Changing host)
03:08:01 wroathe joins (~wroathe@user/wroathe)
03:16:34 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
03:16:48 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
03:17:56 Lord_of_Life_ is now known as Lord_of_Life
03:24:17 × mxs quits (~mxs@user/mxs) (Quit: The Lounge - https://thelounge.chat)
03:24:36 × euleritian quits (~euleritia@dynamic-176-006-138-245.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
03:24:58 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
03:25:17 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
03:26:01 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
03:26:10 × wroathe quits (~wroathe@user/wroathe) (Quit: leaving)
03:49:58 aforemny_ joins (~aforemny@2001:9e8:6cf4:c700:587f:d6ea:1b3:5684)
03:51:17 × aforemny quits (~aforemny@2001:9e8:6cd5:4d00:ecce:5c3c:7d1:3304) (Ping timeout: 258 seconds)
03:56:54 gorignak joins (~gorignak@user/gorignak)
04:14:27 troojg joins (~troojg@user/troojg)
04:14:34 harveypwca joins (~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288)
04:18:03 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
04:18:25 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
04:20:36 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
04:21:10 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
04:23:39 × rini quits (~rini@user/rini) (Remote host closed the connection)
04:27:10 rini joins (~rini@user/rini)
04:31:57 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
04:33:09 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
04:33:25 × segfaultfizzbuzz quits (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Ping timeout: 248 seconds)
04:35:02 rdcdr joins (~rdcdr@user/rdcdr)
04:35:32 × rdcdr_ quits (~rdcdr@75-172-64-176.tukw.qwest.net) (Ping timeout: 255 seconds)
04:40:25 rosco joins (~rosco@175.136.158.234)
04:42:07 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
04:48:09 Inst_ joins (~Inst@user/Inst)
04:48:52 × Inst quits (~Inst@user/Inst) (Killed (NickServ (GHOST command used by Inst_)))
04:48:59 Inst_ is now known as Inst
05:27:42 × harveypwca quits (~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288) (Quit: Leaving)
05:30:37 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
05:31:48 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit)
05:44:14 dsrt^ joins (dsrt@c-98-242-74-66.hsd1.ga.comcast.net)
05:56:10 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
05:56:18 euleritian joins (~euleritia@dynamic-176-006-138-245.176.6.pool.telefonica.de)
05:56:40 × euleritian quits (~euleritia@dynamic-176-006-138-245.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
05:56:59 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
06:01:22 × Square quits (~Square@user/square) (Ping timeout: 248 seconds)
06:03:26 segfaultfizzbuzz joins (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net)
06:13:57 benjaminl joins (~benjaminl@user/benjaminl)
06:24:29 machinedgod joins (~machinedg@d50-99-47-73.abhsia.telus.net)
06:25:21 × segfaultfizzbuzz quits (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Ping timeout: 248 seconds)
06:31:45 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
06:38:15 × mhatta quits (~mhatta@www21123ui.sakura.ne.jp) (Remote host closed the connection)
06:40:55 segfaultfizzbuzz joins (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net)
06:41:38 JuanDaugherty joins (~juan@user/JuanDaugherty)
06:43:47 mhatta joins (~mhatta@www21123ui.sakura.ne.jp)
06:45:19 × segfaultfizzbuzz quits (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Ping timeout: 258 seconds)
06:57:41 ss4 joins (~wootehfoo@user/wootehfoot)
06:58:08 acidjnk joins (~acidjnk@p200300d6e72cfb28f994cf85141dae42.dip0.t-ipconnect.de)
06:59:33 × troojg quits (~troojg@user/troojg) (Ping timeout: 248 seconds)
07:04:03 × machinedgod quits (~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 252 seconds)
07:06:18 × mhatta quits (~mhatta@www21123ui.sakura.ne.jp) (Quit: ZNC 1.9.1+deb1 - https://znc.in)
07:12:21 × raym quits (~ray@user/raym) (Ping timeout: 248 seconds)
07:14:09 raym joins (~ray@user/raym)
07:14:37 segfaultfizzbuzz joins (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net)
07:19:59 × segfaultfizzbuzz quits (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds)
07:23:18 mhatta joins (~mhatta@www21123ui.sakura.ne.jp)
07:25:38 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
07:26:15 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
07:33:44 segfaultfizzbuzz joins (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net)
07:38:13 × segfaultfizzbuzz quits (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Ping timeout: 258 seconds)
07:39:33 Digitteknohippie joins (~user@user/digit)
07:40:05 × Digit quits (~user@user/digit) (Ping timeout: 248 seconds)
07:42:41 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds)
07:43:28 ash3en joins (~Thunderbi@2a02:3100:8222:c400:df81:d984:821:d123)
07:51:10 Digitteknohippie is now known as Digit
07:52:07 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
07:53:06 euleritian joins (~euleritia@dynamic-176-006-138-245.176.6.pool.telefonica.de)
07:53:37 × euleritian quits (~euleritia@dynamic-176-006-138-245.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
07:53:54 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
08:00:13 × rosco quits (~rosco@175.136.158.234) (Quit: Lost terminal)
08:02:21 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
08:07:15 segfaultfizzbuzz joins (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net)
08:13:44 × segfaultfizzbuzz quits (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds)
08:14:20 × Inst quits (~Inst@user/Inst) (Remote host closed the connection)
08:14:40 Inst joins (~Inst@user/Inst)
08:26:33 × Volt_ quits (~Volt_@72.252.192.240) (Quit: )
08:27:51 × Angelz quits (Angelz@user/angelz) (Ping timeout: 276 seconds)
08:46:23 × ss4 quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
08:56:10 segfaultfizzbuzz joins (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net)
08:56:33 oo_miguel joins (~Thunderbi@78.10.207.46)
08:59:05 gmg joins (~user@user/gehmehgeh)
09:00:33 × segfaultfizzbuzz quits (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Ping timeout: 248 seconds)
09:03:06 Angelz joins (Angelz@Angelz.oddprotocol.org)
09:07:17 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
09:10:45 lxsameer joins (~lxsameer@Serene/lxsameer)
09:17:32 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
09:20:53 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 252 seconds)
09:21:38 ss4 joins (~wootehfoo@user/wootehfoot)
09:23:53 segfaultfizzbuzz joins (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net)
09:26:49 × ss4 quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
09:28:12 ss4 joins (~wootehfoo@user/wootehfoot)
09:28:30 × segfaultfizzbuzz quits (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Ping timeout: 272 seconds)
09:28:42 CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de)
09:31:23 × ss4 quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
09:45:06 × xff0x quits (~xff0x@2405:6580:b080:900:f7ea:ebc:48e7:5791) (Ping timeout: 258 seconds)
09:46:40 xff0x joins (~xff0x@2405:6580:b080:900:f7ea:ebc:48e7:5791)
09:48:17 target_i joins (~target_i@user/target-i/x-6023099)
09:50:45 × JamesMowery quits (~JamesMowe@ip98-167-207-182.ph.ph.cox.net) (Ping timeout: 248 seconds)
09:58:41 segfaultfizzbuzz joins (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net)
10:02:45 × segfaultfizzbuzz quits (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds)
10:19:01 segfaultfizzbuzz joins (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net)
10:21:39 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
10:23:18 × segfaultfizzbuzz quits (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Ping timeout: 245 seconds)
10:26:48 segfaultfizzbuzz joins (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net)
10:26:58 × ash3en quits (~Thunderbi@2a02:3100:8222:c400:df81:d984:821:d123) (Quit: ash3en)
10:30:55 × segfaultfizzbuzz quits (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Ping timeout: 252 seconds)
10:41:00 __monty__ joins (~toonn@user/toonn)
10:41:56 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
10:45:17 segfaultfizzbuzz joins (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net)
10:46:20 mreh joins (~matthew@host86-160-168-12.range86-160.btcentralplus.com)
10:48:16 ash3en joins (~Thunderbi@2a02:3100:8222:c400:df81:d984:821:d123)
10:48:53 ZharMeny joins (~user@user/ZharMeny)
10:49:30 × segfaultfizzbuzz quits (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Ping timeout: 258 seconds)
10:50:57 × gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
10:56:23 gentauro joins (~gentauro@user/gentauro)
10:56:40 <haskellbridge> <eldritchcookie> i can't believe that i complained almost a year ago that lifted-base doesn't compile in GHC 9.8 someone went and made a pull request fixing the issue and for some reason there isn't a fixed version
10:58:02 <Rembane> So now you work from trunk?
10:58:41 <haskellbridge> <eldritchcookie> is this message related to my grievances?
10:59:08 <Rembane> A bit. I guess your grievances haven't been adressed?
11:01:18 <haskellbridge> <eldritchcookie> absolutely even if i followed the main branch it still doesn't compile
11:02:13 <Rembane> Oh, then I misunderstood you. I thought they had solved it but not released it.
11:02:51 <mauke> fortunately stack lets you depend on PRs
11:04:46 <haskellbridge> <eldritchcookie> ooh cool is it easy? nix kinda allows the same but you will need 3+ lines of code
11:08:30 × sroso quits (~sroso@user/SrOso) (Quit: Leaving :))
11:13:23 hiecaq joins (~hiecaq@user/hiecaq)
11:19:31 × hiecaq quits (~hiecaq@user/hiecaq) (Remote host closed the connection)
11:26:06 ZharMeny` joins (~user@user/ZharMeny)
11:27:25 segfaultfizzbuzz joins (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net)
11:27:43 <rini> iirc if its on github you can set the ref to "refs/pull/<number>", works in a lot of package managers
11:28:03 × ZharMeny quits (~user@user/ZharMeny) (Ping timeout: 252 seconds)
11:29:49 <rini> ah, refs/pull/<id>/head
11:30:40 billchenchina- joins (~billchenc@103.118.42.229)
11:32:25 <Inst> this isn't actually memoizing like I think it does, right?
11:32:27 <Inst> https://paste.tomsmeding.com/jxAdrzLz
11:33:15 ZharMeny` is now known as ZharMeny
11:33:45 × segfaultfizzbuzz quits (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Ping timeout: 276 seconds)
11:34:46 <Inst> yeah, it's not working the way i think it does
11:35:52 × ash3en quits (~Thunderbi@2a02:3100:8222:c400:df81:d984:821:d123) (Quit: ash3en)
11:37:34 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
11:47:14 segfaultfizzbuzz joins (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net)
11:47:53 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 245 seconds)
11:51:11 × califax quits (~califax@user/califx) (Ping timeout: 260 seconds)
11:51:36 × segfaultfizzbuzz quits (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Ping timeout: 258 seconds)
11:51:55 califax joins (~califax@user/califx)
11:52:19 × TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 252 seconds)
11:53:42 ash3en joins (~Thunderbi@2a02:3100:8222:c400:df81:d984:821:d123)
12:02:03 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds)
12:02:16 euleritian joins (~euleritia@dynamic-176-006-139-095.176.6.pool.telefonica.de)
12:04:23 × euleritian quits (~euleritia@dynamic-176-006-139-095.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
12:04:42 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
12:05:05 × m1dnight quits (~christoph@78-20-63-126.access.telenet.be) (Ping timeout: 255 seconds)
12:06:10 segfaultfizzbuzz joins (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net)
12:10:29 × segfaultfizzbuzz quits (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds)
12:19:54 × billchenchina- quits (~billchenc@103.118.42.229) (Ping timeout: 276 seconds)
12:20:57 billchenchina- joins (~billchenc@2408:843e:a80:2c8b:d8b0:68c1:33fa:2832)
12:26:41 rosco joins (~rosco@175.136.158.234)
12:27:42 segfaultfizzbuzz joins (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net)
12:28:37 × billchenchina- quits (~billchenc@2408:843e:a80:2c8b:d8b0:68c1:33fa:2832) (Ping timeout: 248 seconds)
12:29:04 billchenchina- joins (~billchenc@103.118.42.229)
12:30:40 × billchenchina- quits (~billchenc@103.118.42.229) (Remote host closed the connection)
12:32:21 × segfaultfizzbuzz quits (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Ping timeout: 248 seconds)
12:34:52 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
12:36:21 euleritian joins (~euleritia@dynamic-176-006-139-095.176.6.pool.telefonica.de)
12:36:43 × euleritian quits (~euleritia@dynamic-176-006-139-095.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
12:37:01 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
12:39:06 ss4 joins (~wootehfoo@user/wootehfoot)
12:40:31 × ss4 quits (~wootehfoo@user/wootehfoot) (Client Quit)
12:43:40 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
12:43:57 euleritian joins (~euleritia@dynamic-176-006-139-095.176.6.pool.telefonica.de)
12:45:45 × euleritian quits (~euleritia@dynamic-176-006-139-095.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
12:46:03 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
12:47:06 segfaultfizzbuzz joins (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net)
12:54:48 × jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer)
12:55:42 JuanDaugherty joins (~juan@user/JuanDaugherty)
12:56:14 m1dnight joins (~christoph@78-20-63-126.access.telenet.be)
12:59:44 xdminsy joins (~xdminsy@117.147.70.75)
13:00:43 × xdminsy quits (~xdminsy@117.147.70.75) (Client Quit)
13:03:20 TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker)
13:07:21 × segfaultfizzbuzz quits (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Ping timeout: 276 seconds)
13:18:16 <Inst> is memoize broken?
13:20:01 segfaultfizzbuzz joins (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net)
13:30:45 <int-e> what do you mean by "memoize"?
13:31:27 <Inst> https://hackage.haskell.org/package/memoize-1.1.2/docs/Data-Function-Memoize.html
13:31:29 <Inst> benchmarking this
13:34:28 Smiles joins (uid551636@id-551636.lymington.irccloud.com)
13:34:45 × segfaultfizzbuzz quits (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Ping timeout: 265 seconds)
13:46:06 × TMA quits (tma@twin.jikos.cz) (Ping timeout: 252 seconds)
13:53:51 TMA joins (tma@twin.jikos.cz)
13:54:11 × rosco quits (~rosco@175.136.158.234) (Quit: Lost terminal)
13:54:19 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
14:00:52 × ctk quits (~calimero@ctkarch.org) (Changing host)
14:00:52 ctk joins (~calimero@user/calimeroteknik)
14:02:55 segfaultfizzbuzz joins (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net)
14:06:55 × mreh quits (~matthew@host86-160-168-12.range86-160.btcentralplus.com) (Ping timeout: 258 seconds)
14:08:31 <haskellbridge> <eldritchcookie> can someone remind me again why no one uses safe haskell?
14:14:39 <int-e> s/noone/only lambdabot/
14:17:14 <int-e> I think it's that there's only one single notion of safety captured by Safe Haskell (designed more or less to prevent access to unsafeCoerce or unsafePerformIO by restricting imports so that the type system can do its job properly) and most people, if they care about this kind of safety, either want something different or something more strict.
14:19:13 kuruczgy parts (55b66dd3ae@2a03:6000:1812:100::127f) ()
14:20:33 × tomku quits (~tomku@user/tomku) (Ping timeout: 248 seconds)
14:20:47 tomku joins (~tomku@user/tomku)
14:21:47 rosco joins (~rosco@175.136.158.234)
14:22:00 jinsun joins (~jinsun@user/jinsun)
14:22:17 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
14:23:23 euleritian joins (~euleritia@dynamic-176-006-139-095.176.6.pool.telefonica.de)
14:24:49 × ash3en quits (~Thunderbi@2a02:3100:8222:c400:df81:d984:821:d123) (Quit: ash3en)
14:36:04 killy joins (~killy@staticline-31-183-190-180.toya.net.pl)
14:39:14 × segfaultfizzbuzz quits (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds)
14:39:57 segfaultfizzbuzz joins (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net)
14:45:06 <haskellbridge> <eldritchcookie> lambdabot safe haskell
14:45:21 <haskellbridge> <eldritchcookie> does the bot work from matrix?
14:46:33 <haskellbridge> <eldritchcookie> @help
14:47:04 <Franciman> maybe there is a lambdabot over there, but here it won't work because haskellbridge puts as a prefix of the message your nick
14:47:05 <int-e> nah it doesn't recognize "<eldritchcookie> @help"
14:47:06 <Franciman> so you wrote
14:47:08 <Franciman> exacl
14:47:31 eldritch_cookie joins (~eldritch_@2804:7f4:8082:185:8af3:6b91:d27:8d8d)
14:47:54 <haskellbridge> <mauke> You gotta summon it properly
14:48:17 <haskellbridge> <mauke> O mighty lambdabot,
14:48:17 <haskellbridge> @help
14:48:17 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
14:49:00 <int-e> > fix ((0:) . scanl (+) 1)
14:49:02 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,...
14:49:15 <haskellbridge> <eldritchcookie> do i need the lambdabot on the message or only a newline before the command
14:49:15 <haskellbridge> @help
14:49:15 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
14:50:35 <haskellbridge> <eldritchcookie> cool
14:50:35 <haskellbridge> @help list
14:50:36 <lambdabot> list [module|command]. Show commands for [module] or the module providing [command].
14:50:41 <int-e> ugh
14:51:17 <int-e> Maybe lambdabot should ignore the bridge if that's where this is going?
14:52:25 <Franciman> nice hack, people
14:53:44 <haskellbridge> <eldritchcookie> anyways does it have a quote or wisdom command or does it take multiple args for commands?
14:54:14 <mauke> @quite
14:54:14 <lambdabot> Maybe you meant: quote quit
14:55:05 <mauke> @quote me
14:55:05 <lambdabot> Vellos says: AVATAR. SMURFS. SAME FUCKING STORY.
14:55:08 <haskellbridge> <eldritchcookie> @quote safe haskell
14:55:29 <mauke> @quote safe
14:55:29 <lambdabot> koninkje says: <mar77a> who the hell cares how many elements are there and their type! <koninkje> er, people who care about type safety?
14:55:51 <haskellbridge> <eldritchcookie> wow
14:55:51 <haskellbridge> @quote safe haskell
14:55:51 <lambdabot> No quotes for this person. Maybe you made a typo?
14:56:03 <mauke> @quote safe.haskell
14:56:03 <lambdabot> No quotes match. Abort, Retry, Panic?
14:56:09 × TMA quits (tma@twin.jikos.cz) (Ping timeout: 260 seconds)
14:56:21 <mauke> @quote mauke
14:56:21 <lambdabot> mauke says: the first and foremost task of a haskell compiler is to break haskell programs
14:56:46 <int-e> @ghc
14:56:46 <lambdabot> Illegal deriving item
14:56:53 <mauke> @quote mauke
14:56:53 <lambdabot> mauke says: C++ is very efficient in that a single typo can cause several KB of errors
14:56:54 <vulpine> @quote lambdabot
14:56:54 <lambdabot> lambdabot says: @quote lambdabot
14:57:11 <mauke> yes, that's good wisdom
14:59:15 Digitteknohippie joins (~user@user/digit)
14:59:49 × Digit quits (~user@user/digit) (Ping timeout: 258 seconds)
15:01:50 machinedgod joins (~machinedg@d50-99-47-73.abhsia.telus.net)
15:03:43 × ZharMeny quits (~user@user/ZharMeny) (Ping timeout: 252 seconds)
15:05:00 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 244 seconds)
15:12:14 × vulpine quits (xfnw@user/meow/xfnw) (Quit: Connection reset by purr)
15:12:45 vulpine joins (xfnw@user/meow/xfnw)
15:14:07 rvalue joins (~rvalue@user/rvalue)
15:14:19 Digitteknohippie is now known as Digit
15:17:28 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
15:21:22 × segfaultfizzbuzz quits (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Ping timeout: 248 seconds)
15:30:08 × scubagear quits (scubagear@gateway/vpn/protonvpn/scubagear) (Ping timeout: 272 seconds)
15:30:50 scubagear joins (scubagear@gateway/vpn/protonvpn/scubagear)
15:33:25 × acidjnk quits (~acidjnk@p200300d6e72cfb28f994cf85141dae42.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
15:35:14 × euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.)
15:35:31 mreh joins (~matthew@host86-160-168-12.range86-160.btcentralplus.com)
15:35:56 Guest|39 joins (~Guest|39@23-93-239-145.fiber.dynamic.sonic.net)
15:36:15 × Guest|39 quits (~Guest|39@23-93-239-145.fiber.dynamic.sonic.net) (Client Quit)
15:37:26 ash3en joins (~Thunderbi@2a02:3100:8222:c400:df81:d984:821:d123)
15:47:22 × foul_owl_ quits (~kerry@185.219.141.164) (Ping timeout: 252 seconds)
15:48:33 euphores joins (~SASL_euph@user/euphores)
15:50:15 ZharMeny joins (~user@user/ZharMeny)
15:53:09 × eldritch_cookie quits (~eldritch_@2804:7f4:8082:185:8af3:6b91:d27:8d8d) (Quit: Leaving)
15:56:32 × Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
15:59:15 × mreh quits (~matthew@host86-160-168-12.range86-160.btcentralplus.com) (Ping timeout: 244 seconds)
16:05:44 TMA joins (tma@twin.jikos.cz)
16:06:09 ctk is now known as CalimeroTeknik
16:06:25 × killy quits (~killy@staticline-31-183-190-180.toya.net.pl) (Quit: leaving)
16:09:22 × ZharMeny quits (~user@user/ZharMeny) (Read error: Connection reset by peer)
16:09:28 ZharMeny` joins (~user@user/ZharMeny)
16:11:18 ZharMeny` is now known as ZharMeny
16:11:38 JuanDaugherty joins (~juan@user/JuanDaugherty)
16:11:45 foul_owl_ joins (~kerry@185.219.141.164)
16:19:20 <Inst> > import Data.Function.Memoize
16:19:21 <lambdabot> <hint>:1:1: error: parse error on input ‘import’
16:20:46 × rosco quits (~rosco@175.136.158.234) (Quit: Lost terminal)
16:22:20 sp1ff joins (~user@c-73-11-70-111.hsd1.wa.comcast.net)
16:26:14 pikajude- is now known as pikajude
16:32:08 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
16:32:35 ChaiTRex joins (~ChaiTRex@user/chaitrex)
16:37:19 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
16:39:21 × machinedgod quits (~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 252 seconds)
16:44:05 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
16:44:11 × foul_owl_ quits (~kerry@185.219.141.164) (Ping timeout: 252 seconds)
16:44:51 gmg joins (~user@user/gehmehgeh)
16:45:39 <monochrom> That probably isn't available on lambdabot and yahb2.
16:52:05 mreh joins (~matthew@host86-160-168-12.range86-160.btcentralplus.com)
16:54:58 × mreh quits (~matthew@host86-160-168-12.range86-160.btcentralplus.com) (Client Quit)
17:00:42 <Inst> does anyone still use memoize?
17:01:15 × ash3en quits (~Thunderbi@2a02:3100:8222:c400:df81:d984:821:d123) (Ping timeout: 244 seconds)
17:04:40 Square joins (~Square@user/square)
17:04:57 <davean> Some people but not many, because why would you?
17:05:18 <davean> You can see even on hackage there are recent direct dependencies though that are legit.
17:06:35 foul_owl_ joins (~kerry@185.219.141.164)
17:09:34 <Inst> i'm trying to figure out why a memoized naive fib doesn't work
17:09:58 <davean> Well for that it is irrelivent if people still use it, its not like code rots.
17:10:14 <davean> So what "doesn't work" for you? There are a lot of ways for code to not work.
17:12:43 Inst_ joins (~Inst@user/Inst)
17:12:43 × Inst quits (~Inst@user/Inst) (Killed (NickServ (GHOST command used by Inst_)))
17:12:47 Inst_ is now known as Inst
17:12:53 <Inst> time ./someResultingProg, etc... with and without memoize it's the same
17:12:57 <Inst> print $ memoize fib 40 where fib :: Int -> Int; fib 0 = 1; fib 1 = 1; fib n = fib (n-1) + fib (n-2)
17:13:19 <Inst> am i missing something somewhere?
17:13:22 <davean> well you're using it wrong.
17:13:28 <Inst> i guessed as much
17:13:44 <ncf> the recursive calls need to use the memoised function
17:13:48 <davean> look at what you're memoizing, and consider if you think thats a meaningful thing to memoize
17:13:56 <ncf> (sorry, spoiled it)
17:14:13 <davean> ncf: That does kinda get in the way of learning :-p
17:14:48 <Inst> don't worry, i still don't get it
17:15:14 <c_wraith> It's less magic than you're hoping for
17:15:24 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
17:15:42 <c_wraith> It doesn't *modify* a function to be memoized
17:15:48 <davean> c_wraith: Doesn't everyone hope for lisp in the end?
17:16:12 <davean> yes, it creates a memoized function
17:16:16 <davean> it doesn't modify one
17:16:39 <davean> you only ever call it once the way you did it so it calculates the value, saves it, and never uses it again
17:16:45 <ncf> you want to use memoFix https://hackage.haskell.org/package/memoize-1.1.2/docs/Data-Function-Memoize.html#v:memoFix
17:17:04 <davean> ncf: Thats complicated, I'd say he wants to create an alternative fib
17:17:15 <davean> but yes
17:17:28 <davean> Style differences
17:17:53 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
17:18:28 <c_wraith> I actually kind of like fix vs memoFix as a demonstration of how using an external combinator for recursion adds some power
17:18:40 <c_wraith> but getting into that requires a base understanding of fix
17:18:52 <davean> c_wraith: oh it absolutely does, I just think it takes more looking at what is going on than the lazy version
17:18:57 segfaultfizzbuzz joins (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net)
17:19:17 <c_wraith> Yeah, I don't think it's a good starting spot
17:19:30 <c_wraith> But it's a cool thing to know about
17:19:51 <davean> I totally think he should try to move to it after getting the simpler one working!
17:20:00 <davean> Well simpler conceptually, the fix version is simpler to write
17:20:08 <davean> (I contend its always more complicated to read though :/)
17:20:38 <c_wraith> I use fix to inline loops in IO enough that I've stopped having trouble reading it...
17:20:57 <davean> Its nto about trouble reading it, it simply does infact have more state to track
17:21:41 <ncf> state?
17:21:42 <davean> If the code is how you expect it, you can forget about that indirection, but sometimes it is used in weirder ways and you have to check.
17:22:10 <davean> ncf: things in the ast you have to be aware of the values of
17:23:30 × segfaultfizzbuzz quits (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Ping timeout: 272 seconds)
17:24:07 <Inst> ehhh, no one cares about fib, tbh, it's a toy, i just can't figure out why i can't get memoize to work
17:24:15 <Inst> and the lib itself is obfuscated via template haskell
17:24:42 ash3en joins (~Thunderbi@2a02:3100:8222:c400:df81:d984:821:d123)
17:24:45 <c_wraith> so in order for fib to benefit from memoization, the recursive calls must call the memoized version.
17:24:57 <c_wraith> But you've hardcoded it to call the non-memoized version
17:25:02 <c_wraith> You can
17:25:10 <c_wraith> Err. You can't just magically alter that after the fact
17:25:16 <davean> Inst: it is? I read the code ... I didn't even see template haskell in it.
17:25:32 <davean> c_wraith: in Haskell.
17:25:55 <davean> Lisps can :( Its our one weakness. (Well we can with template Haskell I suppose ... but no one does, thats insanity)
17:25:58 <c_wraith> true enough. I sort of left thta implied)
17:26:25 <Inst> derived instances
17:26:39 <davean> Inst: None of the instances on the paths you care about are derived.
17:26:54 <Inst> k, it's my fault
17:26:57 <davean> c_wraith: well my point here only is that it is a perfectly reasonable thing to want
17:27:20 <ncf> Inst: you should try to understand the simple version from the wiki first https://wiki.haskell.org/Memoization#Memoization_with_recursion
17:27:21 <davean> Inst: Make a new version of the fib function, and keep it to one instance of memoize
17:27:28 <ncf> no template haskell required
17:27:45 <Inst> i understand memoization in principle, as in
17:27:46 <c_wraith> I guess I could totally see a function that takes a DecQ and rewrites the recursive calls to go via a memoization wrapper instead
17:28:02 <davean> instance (Bounded a, Enum a) ⇒ Memoizable (Finite a) where is the instance set his stuff goes through
17:28:21 <ncf> your earlier snippet is evidence that you don't
17:28:25 <davean> c_wraith: Yep, and that would even be sane and supportable.
17:28:50 <Inst> term = 1:1:(\u -> term !! (u - 2) + term !! (u - 1) ) <$> [2..]
17:28:52 <davean> ncf: nah, if we were lisp and memoize was a macro, his earleir code would have been fine
17:29:09 × ash3en quits (~Thunderbi@2a02:3100:8222:c400:df81:d984:821:d123) (Ping timeout: 244 seconds)
17:29:13 <c_wraith> davean: until you start to think about mutual recursion, and... there's so much complexity hiding in that idea
17:29:15 <davean> ncf: this is less an issue with memoize, and more an issue with haskell not being magic enough
17:29:24 <ncf> notice how the fib helper calls memoized_fib, not fib
17:29:32 <davean> c_wraith: oh sure, you need to write an entire new structure with everything it touches.
17:29:35 <Inst> yeah, i saw
17:29:51 <davean> c_wraith: its a lot of code dup, but totally reasonable.
17:30:04 <davean> I'd not call the state pretty
17:30:28 <ncf> if you only memoise the "end result", you get a function that will (slowly) compute fib 42 once, and then return the result instantly when you ask for it again... but if you then ask for fib 41, it will compute that from scratch
17:30:47 <Inst> so fib 0 = 1; fib 1 = 1; fib n = memoize fib (n-1) + memoize fib (n-2) doesn't work?
17:30:49 <davean> Yep, this is why I was pointing out where it was used
17:30:51 <Inst> that doesn't seem to work in my usage
17:30:55 <davean> it doesn't "push down" the memoization
17:31:07 <davean> Inst: Thats *two* calls to memoize
17:31:07 <ncf> the problem with *that* version is that you lose sharing
17:31:15 <davean> Inst: so it'll work, but poorly.
17:31:24 <ncf> memoize works by creating a data structure which is shared between calls
17:31:58 <ncf> so the memoize call needs to be a top-level definition (or at least at the level at which you intend to use the memoised function)
17:32:32 <Inst> iirc from the sample code is seems memoize f = f <$> [someFiniteEnum] !! n
17:32:59 <Inst> ugh, forget it
17:32:59 <davean> Yep, consider what that does
17:33:02 <davean> fib 0 = 1; fib 1 = 1; fib n = memoize $ fib (n-1) + fib (n-2)
17:33:16 <davean> Thats closer - see how it wraps the entire calculation?
17:33:26 <davean> but thats just conceptually what you need
17:33:35 <ncf> that's not well-typed
17:33:40 <davean> I said CONCEPTUALLY
17:33:46 × euleritian quits (~euleritia@dynamic-176-006-139-095.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
17:33:57 <davean> its trivial to make it well typed with a lambda
17:34:05 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
17:34:19 <ncf> you should have done that!
17:34:28 <davean> No I shouldn't have
17:34:42 <davean> I wanted it to be as close to his code as possible to show the issue
17:35:08 <davean> The correct code is a different thing than showing the issue
17:35:54 <Inst> it should be something like this
17:36:19 <Inst> fib n = memoize (\u -> fib (u -2) = fib (u - 1) ) n
17:36:21 <Inst> i think
17:36:23 <davean> fib = memoize $ \case { 0 -> 1; 1 -> 1; n -> fib (n-1) + fib (n-2); }
17:36:38 <davean> using a lambda case
17:36:41 <Inst> ah
17:36:55 <davean> Now, one could pull the 0 and 1 cases out
17:37:21 <davean> and not use a lambda case
17:37:34 <davean> and your 'n's well
17:37:44 <davean> fib = memoize (\u -> fib (u -2) = fib (u - 1) )
17:37:46 <davean> is the same as you wrote
17:38:00 <davean> which, correcting your typos, with the 0 and 1 cases, would work.
17:38:01 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
17:38:08 euleritian joins (~euleritia@dynamic-176-006-139-095.176.6.pool.telefonica.de)
17:38:14 <davean> But you got there :)
17:38:34 × euleritian quits (~euleritia@dynamic-176-006-139-095.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
17:38:52 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
17:39:37 <davean> How you write it is down to style.
17:39:49 <davean> Inst: up for talking about the fix version?
17:39:58 <ncf> that would not work
17:40:17 <davean> hum?
17:40:35 <Inst> yeah, sorry, still here
17:40:39 <Inst> and sorry on imposing
17:40:46 <davean> Inst: this is a channel for this sort of thing.
17:40:51 <davean> ncf: what do you mean?
17:40:52 <Inst> a bit tired
17:40:54 <ncf> if you add the 0 and 1 cases inside the lambda, you're back at Inst's first version. if you add them outside, you need to eta-expand so that all cases have the same number of arguments, and then you lose sharing
17:41:18 <ncf> davean: i guess you can write down the exact code you're thinking of and we can check if it works
17:41:19 <davean> ncf: we're not back at Inst's first version?
17:41:32 <ncf> oh you're right my bad
17:41:41 <davean> I did write the code down
17:41:45 <davean> for the lambdacase version
17:41:54 <ncf> yeah that version is fine
17:42:44 <Inst> i mean i'm too tired to continue, was waiting for assistance for a bit
17:42:45 <davean> as for the sharing, I wasn't going to get into it, but I'm not sure if the conditional above the binary search trees, or more uniform code by having 0 and 1 in the binary search tree is faster, but its just a matter of performance.
17:43:31 <davean> You don't need to share the 0 and 1 cases, and its a VERY microoptimization on if you should or not, that will depend on your processors speculation, etc.
17:43:59 <davean> Inst: well then, I'll just sketch it up for you to contemplate later
17:44:08 <Inst> thanks for being so nice
17:44:49 <Inst> i'm just weirded out though
17:44:56 <Inst> maybe it's the problem with O0
17:45:06 <davean> memoFix (\fib -> \case { 0 -> 1; 1 -> 1; n -> fib (n-1) + fib (n-2); })
17:45:38 <davean> let fib = memoFix (\fib' -> \case { 0 -> 1; 1 -> 1; n -> fib' (n-1) + fib' (n-2); })
17:45:54 <davean> I should write it so it doesn't trip you up :)
17:45:55 <ncf> davean: by that i meant that fib n = memoize (\u -> fib (u - 2) + fib (u - 1)) n will not work, because the call to memoize is not shared
17:46:05 <Inst> fib u = memoize (\v -> case v of; 0 -> 1; 1 -> 1; n -> fib (n - 1) + fib (n - 2) ) u
17:46:34 <Inst> no visible performance improvement here, which is weird
17:46:48 <ncf> yeah that's what i'm saying
17:47:02 <davean> ncf: ah yes, you're right, I got too focused on keeping it close to their code
17:47:10 <ncf> it might work if you define it in a where block, if the compiler is smart enough to lambda-lift it (which i think it is?)
17:47:17 <Inst> but the lambda case version works
17:47:24 <Inst> fib = memoize $ \case {...}
17:47:48 <davean> Yah, I was thinking in the lambda case version :(
17:47:53 <davean> Because lambda case is pretty
17:48:21 <ncf> seems like it isn't: fib n = go n where go = memoize (\u -> fib (u - 2) + fib (u - 1)) doesn't work
17:48:32 <ncf> at least in ghci
17:49:50 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
17:50:19 <ncf> i mean let-float it or whatever
17:50:38 <ncf> as in remove the vacuous dependency on n
17:50:51 <davean> Yah, -O0 interacts weird. This is also how profiling can change code flow :(
17:52:14 euleritian joins (~euleritia@dynamic-176-006-139-095.176.6.pool.telefonica.de)
17:55:08 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: sndvkjsk)
18:01:49 × hueso quits (~root@user/hueso) (Quit: hueso)
18:04:58 <geekosaur> there's a hidden option in 9.8/9.10 that might allow it to work (-fno-unoptimized-bytecode-for-interpreter)
18:05:04 michalz joins (~michalz@185.246.207.217)
18:06:41 acidjnk joins (~acidjnk@p200300d6e72cfb28316c3495bdea7799.dip0.t-ipconnect.de)
18:10:19 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
18:12:09 <davean> Yah its better to write it so it doesn't need it ideally ... but yes, good chance that would help.
18:14:20 hueso joins (~root@user/hueso)
18:16:35 spew joins (~spew@201.141.102.132)
18:19:39 <monochrom> My https://www.vex.net/~trebla/haskell/fix.xhtml explains how to use fix or turn your direct recursion into using fix. Then you just s/fix/memoFix/
18:19:45 wootehfoot joins (~wootehfoo@user/wootehfoot)
18:20:29 × euleritian quits (~euleritia@dynamic-176-006-139-095.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
18:20:34 <monochrom> More broadly there is a whole idea called "open recursion" that covers this and generally boasts how extensible it is.
18:20:35 ash3en joins (~Thunderbi@2a02:3100:8222:c400:df81:d984:821:d123)
18:20:47 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
18:21:35 <monochrom> For example, in class-based OOP, a class that can be subclassed is an open recursion in types. Here, "open" = "extensible".
18:22:02 <monochrom> or perhaps s/types/type templates/
18:29:15 <monochrom> My https://www.vex.net/~trebla/tmp/Loeb.hs connects memoFix with the löb combinator by noting that the data structure is a representable functor. :)
18:30:59 × michalz quits (~michalz@185.246.207.217) (Remote host closed the connection)
18:34:54 × raym quits (~ray@user/raym) (Ping timeout: 260 seconds)
18:35:50 <Inst> cool, 9.10 is out
18:38:28 × spew quits (~spew@201.141.102.132) (Quit: spew)
18:39:45 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
18:40:21 spew joins (~spew@201.141.102.132)
18:42:22 naxx joins (~brandt@177.191-pool-nas4-sc.sccoast.net)
18:46:06 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
18:46:39 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
18:46:46 eldritch joins (anderson@user/eldritch)
18:54:06 tt12310978324 joins (~tt1231@syn-075-185-104-199.res.spectrum.com)
18:55:55 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
18:57:36 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds)
19:00:20 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
19:03:14 Sgeo joins (~Sgeo@user/sgeo)
19:11:32 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
19:16:25 raym joins (~ray@user/raym)
19:20:32 × spew quits (~spew@201.141.102.132) (Quit: spew)
19:21:02 tt123109783243 joins (~tt1231@syn-075-185-104-199.res.spectrum.com)
19:21:47 spew joins (~spew@201.141.102.132)
19:24:04 × tt12310978324 quits (~tt1231@syn-075-185-104-199.res.spectrum.com) (Ping timeout: 260 seconds)
19:24:05 tt123109783243 is now known as tt12310978324
19:24:57 × spew quits (~spew@201.141.102.132) (Client Quit)
19:25:55 spew joins (~spew@201.141.102.132)
19:34:38 JuanDaugherty joins (~juan@user/JuanDaugherty)
19:40:19 SpectacledParrot joins (~user@2600:6c44:777f:76d2:cf91:78ff:416a:d288)
19:41:42 × SpectacledParrot quits (~user@2600:6c44:777f:76d2:cf91:78ff:416a:d288) (Client Quit)
19:44:24 CommonParrotBear joins (~user@2600:6c44:777f:76d2:cf91:78ff:416a:d288)
19:45:21 × CommonParrotBear quits (~user@2600:6c44:777f:76d2:cf91:78ff:416a:d288) (Client Quit)
19:47:26 Achylles joins (~Achylles@45.182.57.14)
19:57:31 CommonParrotBear joins (45ce440a48@user/CommonParrotBear)
20:04:44 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
20:08:43 Inst_ joins (~Inst@user/Inst)
20:11:20 × Inst quits (~Inst@user/Inst) (Ping timeout: 272 seconds)
20:13:42 × Achylles quits (~Achylles@45.182.57.14) (Quit: Leaving)
20:20:53 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
20:46:08 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
20:48:45 mikess joins (~mikess@user/mikess)
20:56:05 troojg joins (~troojg@user/troojg)
20:56:38 RedFlamingos joins (~RedFlamin@user/RedFlamingos)
21:04:00 neuroevolutus joins (~neuroevol@146.70.211.24)
21:10:44 liamzy__ joins (~Inst@user/Inst)
21:13:25 × Inst_ quits (~Inst@user/Inst) (Ping timeout: 248 seconds)
21:25:15 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
21:28:53 pavonia joins (~user@user/siracusa)
21:34:16 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 258 seconds)
21:35:16 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
21:42:01 × neuroevolutus quits (~neuroevol@146.70.211.24) (Ping timeout: 256 seconds)
21:42:48 × troojg quits (~troojg@user/troojg) (Ping timeout: 276 seconds)
21:46:35 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
21:55:39 × euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.)
21:57:03 × ash3en quits (~Thunderbi@2a02:3100:8222:c400:df81:d984:821:d123) (Quit: ash3en)
22:03:12 euphores joins (~SASL_euph@user/euphores)
22:07:04 troojg joins (~troojg@user/troojg)
22:15:18 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds)
22:16:20 mikess parts (~mikess@user/mikess) ()
22:25:29 euleritian joins (~euleritia@dynamic-176-006-139-095.176.6.pool.telefonica.de)
22:34:39 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
22:38:40 × califax quits (~califax@user/califx) (Remote host closed the connection)
22:38:57 califax joins (~califax@user/califx)
22:39:58 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:43:00 × EvanR quits (~EvanR@user/evanr) (Quit: Leaving)
22:56:02 bilegeek joins (~bilegeek@2600:1008:b095:ace0:e956:a894:c484:bbc7)
22:56:52 × ephilalethes quits (~noumenon@113.51-175-156.customer.lyse.net) (Quit: Leaving)
22:58:17 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
23:02:41 wroathe joins (~wroathe@mobile-166-175-56-161.mycingular.net)
23:02:41 × wroathe quits (~wroathe@mobile-166-175-56-161.mycingular.net) (Changing host)
23:02:41 wroathe joins (~wroathe@user/wroathe)
23:08:54 EvanR joins (~EvanR@user/evanr)
23:09:15 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 276 seconds)
23:10:06 × ZharMeny quits (~user@user/ZharMeny) (Ping timeout: 258 seconds)
23:11:25 ZharMeny joins (~user@user/ZharMeny)
23:11:31 machinedgod joins (~machinedg@d50-99-47-73.abhsia.telus.net)
23:12:47 × euleritian quits (~euleritia@dynamic-176-006-139-095.176.6.pool.telefonica.de) (Ping timeout: 258 seconds)
23:16:25 wroathe joins (~wroathe@mobile-166-175-56-161.mycingular.net)
23:16:25 × wroathe quits (~wroathe@mobile-166-175-56-161.mycingular.net) (Changing host)
23:16:25 wroathe joins (~wroathe@user/wroathe)
23:27:27 × RedFlamingos quits (~RedFlamin@user/RedFlamingos) (Remote host closed the connection)
23:27:52 × naxx quits (~brandt@177.191-pool-nas4-sc.sccoast.net) (Quit: WeeChat 4.4.0)
23:33:33 × troojg quits (~troojg@user/troojg) (Remote host closed the connection)
23:43:19 × Ranhir quits (~Ranhir@157.97.53.139) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/)
23:48:54 × xff0x quits (~xff0x@2405:6580:b080:900:f7ea:ebc:48e7:5791) (Ping timeout: 260 seconds)
23:49:19 × ZharMeny quits (~user@user/ZharMeny) (Ping timeout: 260 seconds)
23:51:25 euleritian joins (~euleritia@dynamic-176-000-155-211.176.0.pool.telefonica.de)
23:52:55 × tomku quits (~tomku@user/tomku) (Ping timeout: 264 seconds)
23:53:42 Ranhir joins (~Ranhir@157.97.53.139)
23:55:55 × acidjnk quits (~acidjnk@p200300d6e72cfb28316c3495bdea7799.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
23:56:43 × spew quits (~spew@201.141.102.132) (Remote host closed the connection)
23:57:53 × euleritian quits (~euleritia@dynamic-176-000-155-211.176.0.pool.telefonica.de) (Ping timeout: 255 seconds)
23:58:18 × wroathe quits (~wroathe@user/wroathe) (Quit: leaving)
23:58:21 euleritian joins (~euleritia@dynamic-176-004-132-012.176.4.pool.telefonica.de)
23:59:48 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)

All times are in UTC on 2024-08-18.