Home liberachat/#haskell: Logs Calendar

Logs on 2026-01-27 (liberachat/#haskell)

00:03:37 × Tuplanolla quits (~Tuplanoll@85-156-32-207.elisa-laajakaista.fi) (Quit: Leaving.)
00:07:41 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
00:12:19 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
00:19:39 <raincomplex> do you all have any favorite resources (preferably text) about modularity, problem/system decomposition, designing and organizing complex codebases, that type of thing?
00:23:06 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
00:28:57 trickard_ is now known as trickard
00:30:04 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
00:35:51 × redshuffle quits (~quassel@45.43.70.75) (Remote host closed the connection)
00:35:58 redshuffle joins (~quassel@45.43.70.75)
00:41:08 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
00:46:07 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
00:52:16 peterbecich joins (~Thunderbi@71.84.33.135)
00:56:55 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
00:59:43 × xff0x quits (~xff0x@2405:6580:b080:900:5e15:fad5:8284:4db7) (Ping timeout: 264 seconds)
01:01:31 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
01:12:20 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
01:17:18 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
01:28:07 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
01:31:42 × trickard quits (~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
01:31:55 trickard_ joins (~trickard@cpe-80-98-47-163.wireline.com.au)
01:32:20 × califax quits (~califax@user/califx) (Remote host closed the connection)
01:33:12 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
01:36:45 × tremon quits (~tremon@83.80.159.219) (Quit: getting boxed in)
01:38:45 omidmash3 joins (~omidmash@user/omidmash)
01:40:58 × omidmash quits (~omidmash@user/omidmash) (Ping timeout: 246 seconds)
01:40:58 omidmash3 is now known as omidmash
01:43:21 califax joins (~califax@user/califx)
01:46:03 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
01:48:43 xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
01:50:17 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
01:55:31 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 264 seconds)
02:00:03 jmcantrell_ joins (~weechat@user/jmcantrell)
02:01:25 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
02:01:32 × peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 256 seconds)
02:04:04 × malte quits (~malte@mal.tc) (Ping timeout: 246 seconds)
02:05:37 malte joins (~malte@mal.tc)
02:06:19 × krei-se quits (~krei-se@p5dea1514.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
02:08:10 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
02:09:33 krei-se joins (~krei-se@p200300f1cfff3548000000000000c8c6.dip0.t-ipconnect.de)
02:19:28 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
02:20:45 × trickard_ quits (~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
02:20:59 trickard_ joins (~trickard@cpe-80-98-47-163.wireline.com.au)
02:24:46 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
02:35:14 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
02:40:08 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
02:51:02 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
02:52:17 × trickard_ quits (~trickard@cpe-80-98-47-163.wireline.com.au) (Ping timeout: 244 seconds)
02:52:39 trickard_ joins (~trickard@cpe-80-98-47-163.wireline.com.au)
02:55:37 mixfix41 parts (~sdeny9ee@user/mixfix41) (shift)
02:55:56 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
03:06:48 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
03:07:57 trickard_ is now known as trickard
03:10:49 × machinedgod quits (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 264 seconds)
03:11:37 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
03:17:09 × FANTOM quits (~fantom@87.75.185.177) (Quit: Connection error?!)
03:22:19 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
03:26:15 peterbecich joins (~Thunderbi@71.84.33.135)
03:27:00 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
03:32:03 FANTOM joins (~fantom@87.75.185.177)
03:38:07 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
03:42:48 × terrorjack quits (~terrorjac@2a01:4f8:c17:9d11::) (Quit: The Lounge - https://thelounge.chat)
03:44:04 terrorjack joins (~terrorjac@2a01:4f8:c17:9d11::)
03:44:59 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
03:54:06 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
03:54:06 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
03:58:11 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
03:58:15 shr\ke joins (~shrike@user/paxhumana)
03:58:15 × shr\ke quits (~shrike@user/paxhumana) (Changing host)
03:58:15 shr\ke joins (~shrike@user/shrke:31298)
03:59:21 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
04:02:16 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
04:03:21 × omidmash quits (~omidmash@user/omidmash) (Quit: The Lounge - https://thelounge.chat)
04:03:49 × jreicher quits (~joelr@user/jreicher) (Ping timeout: 255 seconds)
04:04:16 jreicher joins (~joelr@user/jreicher)
04:04:57 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
04:08:03 omidmash joins (~omidmash@user/omidmash)
04:09:53 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
04:14:37 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
04:21:03 × Square quits (~Square4@user/square) (Ping timeout: 244 seconds)
04:24:09 × peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 244 seconds)
04:26:44 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
04:31:31 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
04:38:54 × trickard quits (~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
04:39:08 trickard_ joins (~trickard@cpe-80-98-47-163.wireline.com.au)
04:42:05 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
04:44:08 peterbecich joins (~Thunderbi@71.84.33.135)
04:44:15 trickard_ is now known as trickard
04:47:00 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
04:52:20 haritz joins (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8)
04:52:20 × haritz quits (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host)
04:52:20 haritz joins (~hrtz@user/haritz)
04:53:14 vanishingideal joins (~vanishing@user/vanishingideal)
04:57:53 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
04:58:40 × peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 245 seconds)
05:02:18 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
05:10:53 × jmcantrell_ quits (~weechat@user/jmcantrell) (Ping timeout: 265 seconds)
05:13:15 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
05:16:56 × mange quits (~mange@user/mange) (Quit: Quittin' time!)
05:19:43 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
05:22:39 werneta joins (~werneta@71.83.160.242)
05:29:19 × trickard quits (~trickard@cpe-80-98-47-163.wireline.com.au) (Ping timeout: 240 seconds)
05:30:07 trickard_ joins (~trickard@cpe-80-98-47-163.wireline.com.au)
05:30:57 michalz joins (~michalz@185.246.207.205)
05:31:18 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
05:34:53 peterbecich joins (~Thunderbi@71.84.33.135)
05:36:19 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
05:40:09 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 252 seconds)
05:47:04 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
05:48:27 Lycurgus joins (~juan@user/Lycurgus)
05:52:15 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
05:52:37 × Googulator quits (~Googulato@77-234-89-65.pool.digikabel.hu) (Quit: Client closed)
05:52:48 Googulator joins (~Googulato@2a01-036d-0106-030a-3891-da7f-f3f3-f997.pool6.digikabel.hu)
05:55:08 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
05:55:31 × karenw quits (~karenw@user/karenw) (Ping timeout: 264 seconds)
06:01:36 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
06:10:46 karenw joins (~karenw@user/karenw)
06:12:52 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
06:17:55 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
06:22:03 sord937 joins (~sord937@gateway/tor-sasl/sord937)
06:25:06 × jreicher quits (~joelr@user/jreicher) (Quit: brb)
06:27:16 × karenw quits (~karenw@user/karenw) (Quit: Deep into that darkness peering...)
06:29:45 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
06:34:39 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
06:37:24 × trickard_ quits (~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
06:37:38 trickard_ joins (~trickard@cpe-80-98-47-163.wireline.com.au)
06:40:50 trickard_ is now known as trickard
06:45:07 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
06:49:43 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
06:53:28 × peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 255 seconds)
06:56:05 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
07:00:52 jreicher joins (~joelr@user/jreicher)
07:02:32 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
07:14:08 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
07:15:59 × werneta quits (~werneta@71.83.160.242) (Quit: Lost terminal)
07:19:27 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
07:29:30 × Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
07:38:53 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:41:24 lucabtz joins (~lucabtz@user/lucabtz)
07:47:26 werneta joins (~werneta@71.83.160.242)
07:49:32 × YoungFrog quits (~youngfrog@2a02:a03f:ca07:f900:b685:3825:8bb0:ad7d) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in)
07:49:53 YoungFrog joins (~youngfrog@2a02:a03f:ca07:f900:b685:3825:8bb0:ad7d)
07:55:44 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
07:57:06 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
08:02:09 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
08:09:38 × Googulator quits (~Googulato@2a01-036d-0106-030a-3891-da7f-f3f3-f997.pool6.digikabel.hu) (Quit: Client closed)
08:09:52 Googulator joins (~Googulato@2a01-036d-0106-030a-3891-da7f-f3f3-f997.pool6.digikabel.hu)
08:13:02 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
08:18:01 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
08:21:12 acidjnk joins (~acidjnk@p200300d6e71719605c0a3441a338f285.dip0.t-ipconnect.de)
08:28:31 prdak joins (~Thunderbi@user/prdak)
08:30:26 × trickard quits (~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
08:30:39 trickard_ joins (~trickard@cpe-80-98-47-163.wireline.com.au)
08:31:28 chele joins (~chele@user/chele)
08:33:24 × werneta quits (~werneta@71.83.160.242) (Quit: Lost terminal)
08:39:38 × prdak quits (~Thunderbi@user/prdak) (Quit: prdak)
08:49:22 takuan joins (~takuan@d8D86B9E9.access.telenet.be)
08:53:59 merijn joins (~merijn@77.242.116.146)
09:03:28 bggd_ joins (~bgg@2a01:e0a:fd5:f510:8882:d44f:ddaa:9d2)
09:06:34 CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db)
09:07:39 f-a joins (ff2a@joined.irc.for-some.fun)
09:12:02 <f-a> What is the proper way to shut `head` deprecation warnings in ghci?
09:12:22 trickard_ is now known as trickard
09:12:48 <probie> don't use `head`
09:13:16 <int-e> {-# OPTIONS_GHC -Wno-x-partial #-}
09:13:31 <f-a> thanks int-e
09:14:14 <int-e> import Prelude hiding (head); head (x:xs) = x
09:14:26 int-e runs
09:15:45 × hakutaku quits (~textual@chen.yukari.eu.org) (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:20:15 <gentauro> int-e: pattern matching in Haskell aren't exhaustive by default right?
09:20:37 <gentauro> I recall a talk from SPJ were he stated that PM is and exponential problem
09:21:56 <jreicher> What is an "exponential problem"?
09:22:29 <tomsmeding> no sub-exponential algorithm known, perhaps? (I don't know)
09:22:30 <int-e> that seems unrelated to these particular warnings though (and the fact that they can't be overridden in a good way that would indicate call sites that are vetted to be fine)
09:22:43 <tomsmeding> yes
09:25:31 <jreicher> I still don't get this. I thought pattern matching would be linear. I'm sure I'm misunderstanding the measure.
09:25:52 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
09:26:27 <lortabac> jreicher: trying all the equations one by one would be inefficient
09:26:49 <lortabac> efficient compilation of pattern matching is a little more involved
09:27:10 <probie> The `case` in core is linear, but Haskell itself is a bit more lenient
09:27:22 <jreicher> Linear is inefficient. I just don't understand why it would be worse than linear.
09:27:30 <int-e> gentauro: Doesn't ring a bell but I imagine that if you implement Haskell's pattern matching while avoiding matching the same scrutinee twice, you'll end up with cases that have to keep track of exponentially many cases of what has been matched and what hasn't, and correspondingly, exponentially many code paths.
09:27:33 <tomsmeding> jreicher: exhaustivity checking, I think
09:28:02 <int-e> exponential in the number of cases in the source code
09:28:04 <jreicher> tomsmeding: what's the parameter then? What's "n", if you know what I mean?
09:28:15 <jreicher> That's still vague.
09:29:04 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
09:29:18 <int-e> jreicher: I wasn't answering you anyway, just clarifying what I wrote.
09:31:41 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
09:32:15 <tomsmeding> jreicher: > Sekar et al. [25] show that the problem of finding redundant clauses is NP-complete, by encoding the boolean satisfiability (SAT) problem into it.
09:32:27 <tomsmeding> (citation: section 3.4 of https://people.cs.kuleuven.be/~tom.schrijvers/Research/papers/icfp2015.pdf ; cited work: https://epubs.siam.org/doi/abs/10.1137/S0097539793246252 )
09:32:48 <jreicher> tomsmeding: but why is that pattern matching?
09:33:00 <tomsmeding> it's pattern match exhaustivity checking
09:33:12 <int-e> Something like this should do the trick: https://paste.debian.net/hidden/81e97dc6
09:33:41 × housemate quits (~housemate@202.7.248.67) (Quit: https://ineedsomeacidtocalmmedown.space/)
09:34:02 <tomsmeding> (that first paper describes the algorithm in GHC before the newest LYG algorithm; the LYG paper ( https://dl.acm.org/doi/pdf/10.1145/3408989 ) claims it has the same complexity as that)
09:35:07 <jreicher> Ta
09:35:30 <tomsmeding> Whether this is NP-complete only because the output size may be exponential, or whether it may also be if the output size is small, I don't know
09:36:17 <int-e> Where Haskell demands that you match the first argument, then optionally the fourth, then the second, then optionally the fifth, then the third argument, then optionally the sixth... and now if you want to avoid redundant pattern matches, you have to keep track of which of the first 3 arguments were equal to A when tackling the next 3 cases. And you can scale that up to 2*n arguments and 2^n...
09:36:23 <int-e> ...cases to keep track of.
09:37:26 <jreicher> tomsmeding: IIRC output size isn't relevant to NP-completeness. That class is only defined for decision problems
09:37:28 housemate joins (~housemate@202.7.248.67)
09:37:58 <tomsmeding> sure, but you can typically turn a computation problem into a decision problem by checking whether the output satisfies some condition
09:38:17 <int-e> And you can encode 3-SAT if you're checking pattern completeness.
09:38:31 <tomsmeding> ah right
09:38:50 <tomsmeding> ok so the GMTM paper undersells the problem a little bit, because it likens it to the complexity of hindley-milner
09:39:38 <tomsmeding> which is, iirc, polynomially bounded by the collective size of the types it outputs (for all subterms), and thus only exponential if you give it a program that has exponentially large inferred types
09:42:22 × marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli)
09:43:32 oskarw joins (~user@user/oskarw)
09:45:32 <gentauro> jreicher: and int-e if you pm on `case (x_1, x_2, …, x_n) of …` then you will have an upperbound of 2^n cases
09:45:54 <gentauro> that's what I recall from the SPJ talk
09:46:05 <gentauro> so PM is a "very difficult" problem to solve
09:46:17 <gentauro> rather said, exhaustive PM.
09:47:10 <int-e> gentauro: an upper bound is not a hardness proof though :P
09:47:32 <Axman6> > map (\x -> peek (reverse (pos x)) x) $ holesOf traverse $ words "hello lens world"
09:47:33 <lambdabot> [["olleh","lens","world"],["hello","snel","world"],["hello","lens","dlrow"]]
09:47:42 <jreicher> Hmm. I thought that would be nlogn. I haven't read the papers yet, but you have max n comparisons of logn length bitstrings
09:49:00 <int-e> jreicher: pattern matching isn't strictly left to right because of wildcard patterns
09:49:21 <int-e> so it's not analogous to strings at all
09:50:18 <jreicher> int-e: I know, which is why I was asking for a more specific definition before, but gentauro just offered "n" as the number of cases.
09:50:18 <int-e> and also, in case that wasn't clear, you /can/ translate pattern matching without any blowup if you accept redundant matches
09:50:45 × CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 245 seconds)
09:50:54 <jreicher> I'm just not seeing the problem definition clearly. I freely admit that.
09:52:01 <int-e> jreicher: you're still cross-attributing messages from me and gentauro
09:53:29 <gentauro> int-e: and jreicher: I think I found the talk "Simon Peyton Jones - Pattern Match Warnings - How Hard Can It Be?" https://www.youtube.com/watch?v=8hJtTIkDr5U
09:53:56 <gentauro> I was actually there :)
09:54:17 <gentauro> I really miss the hole eXchange concept :'(
10:05:48 <int-e> jreicher: Anyway. The reason why I wrote up that example was to show that it wouldn't rely on any big patterns or huge numbers of arguments but stay polynomially bounded in the number of cases, at which point the precise parameter you pick stops to matter.
10:06:06 __monty__ joins (~toonn@user/toonn)
10:06:41 <int-e> (unless you want to distinguish between linear and quadratic growth, say, but I didn't do that)
10:09:53 × jreicher quits (~joelr@user/jreicher) (Quit: brb)
10:11:23 jreicher joins (~joelr@user/jreicher)
10:12:27 <gentauro> tl;dw -> https://www.youtube.com/watch?v=8hJtTIkDr5U&t=241s (around 04:01 ish)
10:12:29 × trickard quits (~trickard@cpe-80-98-47-163.wireline.com.au) (Ping timeout: 244 seconds)
10:12:44 trickard_ joins (~trickard@cpe-80-98-47-163.wireline.com.au)
10:13:43 × oskarw quits (~user@user/oskarw) (Ping timeout: 246 seconds)
10:16:40 × trickard_ quits (~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
10:19:15 × xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 265 seconds)
10:23:28 trickard_ joins (~trickard@cpe-80-98-47-163.wireline.com.au)
10:25:32 × jreicher quits (~joelr@user/jreicher) (Quit: Power outage)
10:27:00 × fp quits (~Thunderbi@2001-14ba-6e24-3000--198.rev.dnainternet.fi) (Ping timeout: 256 seconds)
10:28:51 internatetional joins (~nate@2404:c0:2447:3b47:188e:3e81:8514:389a)
10:28:53 × internatetional quits (~nate@2404:c0:2447:3b47:188e:3e81:8514:389a) (Client Quit)
10:29:43 vanishingideal joins (~vanishing@user/vanishingideal)
10:42:56 × trickard_ quits (~trickard@cpe-80-98-47-163.wireline.com.au) (Ping timeout: 265 seconds)
10:44:23 Square joins (~Square4@user/square)
10:44:32 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 240 seconds)
10:45:20 trickard_ joins (~trickard@cpe-80-98-47-163.wireline.com.au)
10:52:02 mange joins (~mange@user/mange)
11:02:59 × _d0t quits (~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 250 seconds)
11:04:08 vanishingideal joins (~vanishing@user/vanishingideal)
11:07:03 _d0t joins (~{-d0t-}@user/-d0t-/x-7915216)
11:08:07 × lucabtz quits (~lucabtz@user/lucabtz) (Ping timeout: 240 seconds)
11:11:37 lucabtz joins (~lucabtz@user/lucabtz)
11:16:25 jreicher joins (~joelr@user/jreicher)
11:17:06 danza joins (~danza@user/danza)
11:18:13 xff0x joins (~xff0x@2405:6580:b080:900:b844:e6e5:f5dd:7cc5)
11:30:41 hakutaku joins (~textual@185.106.95.100)
11:42:01 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 264 seconds)
11:50:58 × danza quits (~danza@user/danza) ()
11:54:27 fp joins (~Thunderbi@wireless-86-50-141-120.open.aalto.fi)
11:55:15 acidjnk_new joins (~acidjnk@p200300d6e700e5235c0a3441a338f285.dip0.t-ipconnect.de)
11:58:22 × acidjnk quits (~acidjnk@p200300d6e71719605c0a3441a338f285.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
12:02:57 comerijn joins (~merijn@77.242.116.146)
12:06:10 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 256 seconds)
12:16:31 × lucabtz quits (~lucabtz@user/lucabtz) (Ping timeout: 264 seconds)
12:29:07 tremon joins (~tremon@83.80.159.219)
12:36:12 vanishingideal joins (~vanishing@user/vanishingideal)
12:37:05 machinedgod joins (~machinedg@d75-159-126-101.abhsia.telus.net)
12:48:37 × mange quits (~mange@user/mange) (Ping timeout: 264 seconds)
12:53:23 mange joins (~mange@user/mange)
12:53:43 lucabtz joins (~lucabtz@user/lucabtz)
12:53:55 × lucabtz quits (~lucabtz@user/lucabtz) (Client Quit)
12:57:39 × mange quits (~mange@user/mange) (Client Quit)
12:58:31 × trickard_ quits (~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
12:58:45 trickard_ joins (~trickard@cpe-80-98-47-163.wireline.com.au)
13:13:05 × jonnie quits (~jonnie@user/jonnie) (Remote host closed the connection)
13:16:55 × fp quits (~Thunderbi@wireless-86-50-141-120.open.aalto.fi) (Ping timeout: 240 seconds)
13:17:50 × trickard_ quits (~trickard@cpe-80-98-47-163.wireline.com.au) (Ping timeout: 245 seconds)
13:18:33 trickard_ joins (~trickard@cpe-80-98-47-163.wireline.com.au)
13:19:17 fp joins (~Thunderbi@wireless-86-50-141-120.open.aalto.fi)
13:20:04 × pie_ quits (~pie_bnc@user/pie/x-2818909) ()
13:24:25 AlexZenon joins (~alzenon@85.174.180.154)
13:24:56 Lycurgus joins (~juan@user/Lycurgus)
13:27:23 AlexNoo joins (~AlexNoo@85.174.180.154)
13:28:56 × AlexZenon quits (~alzenon@85.174.180.154) (Ping timeout: 240 seconds)
13:33:19 pie_ joins (~pie_bnc@user/pie/x-2818909)
13:37:30 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
13:37:51 AlexZenon joins (~alzenon@85.174.180.154)
13:44:31 × AlexZenon quits (~alzenon@85.174.180.154) (Ping timeout: 240 seconds)
13:48:43 AlexZenon joins (~alzenon@85.174.180.154)
13:53:52 oskarw joins (~user@user/oskarw)
13:55:19 × AlexZenon quits (~alzenon@85.174.180.154) (Ping timeout: 240 seconds)
13:59:30 AlexZenon joins (~alzenon@85.174.180.154)
14:01:33 × trickard_ quits (~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
14:01:46 trickard_ joins (~trickard@cpe-80-98-47-163.wireline.com.au)
14:03:02 × Digit quits (~user@user/digit) (Ping timeout: 265 seconds)
14:14:17 qqq joins (~qqq@185.54.21.105)
14:21:39 × confusedalex quits (~confuseda@user/confusedalex) (Remote host closed the connection)
14:22:17 confusedalex joins (~confuseda@user/confusedalex)
14:32:04 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
14:39:23 jonnie joins (~jonnie@user/jonnie)
14:39:44 × trickard_ quits (~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
14:39:58 trickard_ joins (~trickard@cpe-80-98-47-163.wireline.com.au)
14:39:59 × jonnie quits (~jonnie@user/jonnie) (Remote host closed the connection)
14:40:13 jonnie joins (~jonnie@user/jonnie)
14:46:29 danza joins (~danza@user/danza)
14:54:40 Sgeo joins (~Sgeo@user/sgeo)
14:54:48 Digit joins (~user@user/digit)
14:57:26 × Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
15:01:32 Digit is now known as digitteknohippie
15:03:03 digitteknohippie is now known as Digit
15:04:41 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
15:04:52 × trickard_ quits (~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
15:05:06 trickard_ joins (~trickard@cpe-80-98-47-163.wireline.com.au)
15:05:21 gmg joins (~user@user/gehmehgeh)
15:32:07 × fp quits (~Thunderbi@wireless-86-50-141-120.open.aalto.fi) (Ping timeout: 264 seconds)
15:35:51 × danza quits (~danza@user/danza) (Remote host closed the connection)
16:01:17 ft joins (~ft@p508db580.dip0.t-ipconnect.de)
16:02:48 × jonnie quits (~jonnie@user/jonnie) (Remote host closed the connection)
16:04:36 jonnie joins (~jonnie@user/jonnie)
16:05:31 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
16:07:49 × fun-safe-math quits (~fun-safe-@97-120-34-41.ptld.qwest.net) (Ping timeout: 264 seconds)
16:11:12 Zemy_ joins (~Zemy@2600:100c:b0ab:1f04:d8eb:a8ff:fe7d:6284)
16:13:01 × Zemy quits (~Zemy@72.178.108.235) (Ping timeout: 244 seconds)
16:16:06 fp joins (~Thunderbi@2001-14ba-6e24-3000--198.rev.dnainternet.fi)
16:16:11 trickard_ is now known as trickard
16:21:52 Zemy joins (~Zemy@mobile-107-80-206-52.mycingular.net)
16:24:59 × Zemy_ quits (~Zemy@2600:100c:b0ab:1f04:d8eb:a8ff:fe7d:6284) (Ping timeout: 260 seconds)
16:29:00 wickedjargon joins (~user@24.83.46.194)
16:32:14 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 252 seconds)
16:37:17 Zemy_ joins (~Zemy@2600:100c:b0ab:1f04:3847:acff:fe62:cc7d)
16:37:42 ChaiTRex joins (~ChaiTRex@user/chaitrex)
16:37:51 Core1774 joins (~Zemy@12.50.228.210)
16:39:52 × Zemy quits (~Zemy@mobile-107-80-206-52.mycingular.net) (Ping timeout: 256 seconds)
16:41:37 × Zemy_ quits (~Zemy@2600:100c:b0ab:1f04:3847:acff:fe62:cc7d) (Ping timeout: 255 seconds)
16:56:50 Zemy joins (~Zemy@2600:100c:b0ab:1f04:4ca1:5bff:fe9f:a327)
16:57:18 × Core1774 quits (~Zemy@12.50.228.210) (Read error: Connection reset by peer)
16:57:54 Zemy_ joins (~Zemy@syn-192-198-252-043.biz.spectrum.com)
16:58:01 × Zemy quits (~Zemy@2600:100c:b0ab:1f04:4ca1:5bff:fe9f:a327) (Read error: Connection reset by peer)
16:58:45 Zemy joins (~Zemy@2600:100c:b0ab:1f04:48c7:c8ff:fe0b:a1b9)
16:59:19 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
17:01:10 × Zemy_ quits (~Zemy@syn-192-198-252-043.biz.spectrum.com) (Read error: Connection reset by peer)
17:01:50 Zemy_ joins (~Zemy@12.50.228.210)
17:02:28 tromp joins (~textual@2001:1c00:3487:1b00:4c4c:3bb8:a5c6:557e)
17:03:50 × Zemy quits (~Zemy@2600:100c:b0ab:1f04:48c7:c8ff:fe0b:a1b9) (Read error: Connection reset by peer)
17:04:04 Zemy joins (~Zemy@2600:100c:b0ab:1f04:d4be:dff:fe55:a49f)
17:05:30 × Googulator quits (~Googulato@2a01-036d-0106-030a-3891-da7f-f3f3-f997.pool6.digikabel.hu) (Quit: Client closed)
17:05:47 Googulator joins (~Googulato@77-234-89-65.pool.digikabel.hu)
17:06:08 × weary-traveler quits (~user@user/user363627) (Quit: Konversation terminated!)
17:06:37 × Zemy_ quits (~Zemy@12.50.228.210) (Ping timeout: 264 seconds)
17:07:52 Zemy_ joins (~Zemy@syn-192-198-252-043.biz.spectrum.com)
17:11:04 × Zemy quits (~Zemy@2600:100c:b0ab:1f04:d4be:dff:fe55:a49f) (Ping timeout: 260 seconds)
17:14:17 Zemy joins (~Zemy@2600:100c:b0ab:1f04:833:8cff:fe08:53a1)
17:15:11 Core4016 joins (~Zemy@syn-192-198-252-043.biz.spectrum.com)
17:17:16 Core1880 joins (~Zemy@2600:100c:b0ab:1f04:a007:31ff:fee3:feea)
17:17:25 × Zemy_ quits (~Zemy@syn-192-198-252-043.biz.spectrum.com) (Ping timeout: 264 seconds)
17:17:39 × Zemy quits (~Zemy@2600:100c:b0ab:1f04:833:8cff:fe08:53a1) (Read error: Connection reset by peer)
17:19:49 × Core4016 quits (~Zemy@syn-192-198-252-043.biz.spectrum.com) (Ping timeout: 260 seconds)
17:22:39 Zemy joins (~Zemy@mobile-107-80-206-40.mycingular.net)
17:22:40 × Core1880 quits (~Zemy@2600:100c:b0ab:1f04:a007:31ff:fee3:feea) (Read error: Connection reset by peer)
17:22:50 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 245 seconds)
17:22:58 Zemy_ joins (~Zemy@2600:100c:b0ab:1f04:7426:a9ff:fe1a:5fd1)
17:23:09 × shr\ke quits (~shrike@user/shrke:31298) (Read error: Connection reset by peer)
17:23:29 Core5620 joins (~Zemy@mobile-107-80-206-40.mycingular.net)
17:23:38 vanishingideal joins (~vanishing@user/vanishingideal)
17:23:48 shr\ke joins (~shrike@user/paxhumana)
17:23:49 × shr\ke quits (~shrike@user/paxhumana) (Changing host)
17:23:49 shr\ke joins (~shrike@user/shrke:31298)
17:27:00 × Zemy quits (~Zemy@mobile-107-80-206-40.mycingular.net) (Ping timeout: 265 seconds)
17:27:29 × Zemy_ quits (~Zemy@2600:100c:b0ab:1f04:7426:a9ff:fe1a:5fd1) (Ping timeout: 265 seconds)
17:36:42 × rainbyte quits (~rainbyte@186.22.19.214) (Read error: Connection reset by peer)
17:39:31 rainbyte joins (~rainbyte@186.22.19.214)
17:40:39 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 252 seconds)
17:41:06 × euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.)
17:41:09 × trickard quits (~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
17:41:19 × tromp quits (~textual@2001:1c00:3487:1b00:4c4c:3bb8:a5c6:557e) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:41:22 trickard_ joins (~trickard@cpe-80-98-47-163.wireline.com.au)
17:42:26 tromp joins (~textual@2001:1c00:3487:1b00:4c4c:3bb8:a5c6:557e)
17:42:28 × chele quits (~chele@user/chele) (Ping timeout: 265 seconds)
17:43:07 Zemy joins (~Zemy@2600:100c:b0ab:1f04:c43:d0ff:fece:9dae)
17:47:18 × Core5620 quits (~Zemy@mobile-107-80-206-40.mycingular.net) (Ping timeout: 265 seconds)
17:47:23 Zemy_ joins (~Zemy@72.178.108.235)
17:47:43 × ft quits (~ft@p508db580.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
17:48:39 ft joins (~ft@p508db580.dip0.t-ipconnect.de)
17:49:25 × Zemy quits (~Zemy@2600:100c:b0ab:1f04:c43:d0ff:fece:9dae) (Ping timeout: 246 seconds)
17:53:16 trickard_ is now known as trickard
17:55:12 jmcantrell_ joins (~weechat@user/jmcantrell)
17:55:47 euphores joins (~SASL_euph@user/euphores)
17:55:55 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
18:04:59 peterbecich joins (~Thunderbi@71.84.33.135)
18:05:38 × fp quits (~Thunderbi@2001-14ba-6e24-3000--198.rev.dnainternet.fi) (Quit: fp)
18:13:33 × divlamir quits (~divlamir@user/divlamir) (Read error: Connection reset by peer)
18:13:56 × comerijn quits (~merijn@77.242.116.146) (Ping timeout: 256 seconds)
18:13:57 divlamir joins (~divlamir@user/divlamir)
18:21:16 × tromp quits (~textual@2001:1c00:3487:1b00:4c4c:3bb8:a5c6:557e) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:30:01 × notzmv quits (~umar@user/notzmv) (Ping timeout: 246 seconds)
18:35:48 vanishingideal joins (~vanishing@user/vanishingideal)
18:42:19 × acidjnk_new quits (~acidjnk@p200300d6e700e5235c0a3441a338f285.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
18:50:58 tromp joins (~textual@2001:1c00:3487:1b00:4c4c:3bb8:a5c6:557e)
19:04:58 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
19:10:13 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
19:14:37 Hardyhardhard joins (~Hardyhard@user/hardyhardhard)
19:17:28 × Hardyhardhard quits (~Hardyhard@user/hardyhardhard) (Client Quit)
19:19:07 target_i joins (~target_i@user/target-i/x-6023099)
19:20:31 Lycurgus joins (~juan@user/Lycurgus)
19:20:44 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
19:25:42 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
19:28:29 × wickedjargon quits (~user@24.83.46.194) (Remote host closed the connection)
19:31:10 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 252 seconds)
19:31:14 × jreicher quits (~joelr@user/jreicher) (Quit: ERC 5.6.0.30.1 (IRC client for GNU Emacs 30.2))
19:32:56 ChaiTRex joins (~ChaiTRex@user/chaitrex)
19:35:55 acidjnk_new joins (~acidjnk@p200300d6e700e523c8ca6d674f934d23.dip0.t-ipconnect.de)
19:36:32 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
19:40:25 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
19:41:20 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds)
19:43:16 Lord_of_Life_ is now known as Lord_of_Life
19:43:19 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
19:51:53 × peterbecich quits (~Thunderbi@71.84.33.135) (Read error: Connection reset by peer)
19:52:13 peterbecich joins (~Thunderbi@71.84.33.135)
19:54:36 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
19:59:20 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
20:01:23 × Square quits (~Square4@user/square) (Ping timeout: 244 seconds)
20:04:32 Square3 joins (~Square@user/square)
20:04:47 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
20:07:35 × myme quits (~myme@2a01:799:d5e:5f00:5fcd:f459:869a:1345) (Ping timeout: 244 seconds)
20:08:33 myme joins (~myme@2a01:799:d5e:5f00:da5c:bf67:b20f:104d)
20:09:44 thenightmail parts (~thenightm@user/thenightmail) (ERC 5.6.0.30.1 (IRC client for GNU Emacs 30.2))
20:09:49 thenightmail joins (~thenightm@user/thenightmail)
20:10:22 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
20:15:20 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
20:15:50 <dutchie> I feel like I'm missing some insight to fill in the rest of leavesByDepth here: https://paste.tomsmeding.com/rXNhmaqV
20:16:03 <dutchie> I need to sort of recursively sum?
20:17:36 <monochrom> What does "leavesByDepth" mean?
20:18:43 <dutchie> the number of elements of type a at each depth of the tree
20:19:11 <dutchie> so there is 1 at the top of the tree, then one for each child at depth 1, and so on recursively
20:19:35 <dutchie> maybe "leaves" is the wrong word, "values" would be better I guess
20:20:50 <int-e> > map sum (transpose [[1],[1,3,3,1],[1,2]])
20:20:51 <lambdabot> [3,5,3,1]
20:25:27 <monochrom> Yeah what int-e said. In that example, the root has 3 children, map leavesByDepth (those 3 chidlren) = [[1], [1,3,3,1], [1,2]]. So you want to turn that into [1+1+1, 3+2, 3, 1].
20:25:41 <dutchie> ah transpose
20:25:54 <dutchie> of course!
20:26:10 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
20:27:22 <dutchie> thank you
20:30:07 × peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 240 seconds)
20:31:31 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
20:35:01 jreicher joins (~joelr@user/jreicher)
20:41:57 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
20:44:03 pavonia joins (~user@user/siracusa)
20:45:56 f-a parts (ff2a@joined.irc.for-some.fun) ()
20:46:53 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
20:48:39 newgan joins (~halloy132@2601:8d:8700:2b30::722e)
20:52:12 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 252 seconds)
20:53:58 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
20:54:54 ChaiTRex joins (~ChaiTRex@user/chaitrex)
20:57:44 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
20:59:59 × tromp quits (~textual@2001:1c00:3487:1b00:4c4c:3bb8:a5c6:557e) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:02:00 × machinedgod quits (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 245 seconds)
21:02:21 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
21:13:31 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
21:17:28 tromp joins (~textual@2001:1c00:3487:1b00:4c4c:3bb8:a5c6:557e)
21:17:31 × haritz quits (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
21:19:10 × trickard quits (~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
21:19:12 Zemy joins (~Zemy@2600:100c:b01a:eb8d:2cd3:a2ff:fe4b:6248)
21:19:23 trickard_ joins (~trickard@cpe-80-98-47-163.wireline.com.au)
21:20:07 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
21:22:00 × Zemy_ quits (~Zemy@72.178.108.235) (Ping timeout: 245 seconds)
21:30:04 × takuan quits (~takuan@d8D86B9E9.access.telenet.be) (Ping timeout: 255 seconds)
21:31:33 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
21:36:13 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
21:36:31 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
21:47:20 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
21:50:52 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 252 seconds)
21:51:52 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
21:53:03 ChaiTRex joins (~ChaiTRex@user/chaitrex)
21:55:04 × michalz quits (~michalz@185.246.207.205) (Remote host closed the connection)
21:59:16 Zemy_ joins (~Zemy@76.184.46.188)
22:02:01 × Zemy quits (~Zemy@2600:100c:b01a:eb8d:2cd3:a2ff:fe4b:6248) (Ping timeout: 255 seconds)
22:02:09 × trickard_ quits (~trickard@cpe-80-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
22:02:23 trickard_ joins (~trickard@cpe-80-98-47-163.wireline.com.au)
22:02:43 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
22:07:22 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
22:08:32 × jmcantrell_ quits (~weechat@user/jmcantrell) (Ping timeout: 240 seconds)
22:09:56 weary-traveler joins (~user@user/user363627)
22:10:38 jmcantrell_ joins (~weechat@user/jmcantrell)
22:12:17 Zemy joins (~Zemy@2600:100c:b01a:eb8d:ec2f:74ff:fe56:502f)
22:13:19 × trickard_ quits (~trickard@cpe-80-98-47-163.wireline.com.au) (Ping timeout: 246 seconds)
22:13:46 × Zemy quits (~Zemy@2600:100c:b01a:eb8d:ec2f:74ff:fe56:502f) (Read error: Connection reset by peer)
22:13:58 trickard_ joins (~trickard@cpe-80-98-47-163.wireline.com.au)
22:14:01 × Zemy_ quits (~Zemy@76.184.46.188) (Ping timeout: 246 seconds)
22:14:02 Zemy joins (~Zemy@2600:100c:b01a:eb8d:5864:14ff:fe90:18ab)
22:15:04 × xff0x quits (~xff0x@2405:6580:b080:900:b844:e6e5:f5dd:7cc5) (Quit: xff0x)
22:15:35 × shr\ke quits (~shrike@user/shrke:31298) (Read error: Connection reset by peer)
22:15:43 shr\ke joins (~shrike@user/paxhumana)
22:15:43 × shr\ke quits (~shrike@user/paxhumana) (Changing host)
22:15:43 shr\ke joins (~shrike@user/shrke:31298)
22:15:55 Zemy_ joins (~Zemy@mobile-107-80-206-52.mycingular.net)
22:16:02 × Moyst quits (~moyst@user/moyst) (Ping timeout: 265 seconds)
22:16:58 xff0x joins (~xff0x@ai083101.d.east.v6connect.net)
22:17:25 × jmcantrell_ quits (~weechat@user/jmcantrell) (Ping timeout: 264 seconds)
22:18:05 Moyst joins (~moyst@user/moyst)
22:18:29 × Zemy quits (~Zemy@2600:100c:b01a:eb8d:5864:14ff:fe90:18ab) (Ping timeout: 260 seconds)
22:18:31 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
22:19:02 jmcantrell_ joins (~weechat@user/jmcantrell)
22:22:30 × shr\ke quits (~shrike@user/shrke:31298) (Read error: Connection reset by peer)
22:22:49 Zemy joins (~Zemy@2600:100c:b01a:eb8d:b479:45ff:fed4:92fe)
22:24:03 × Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
22:24:29 shr\ke joins (~shrike@user/paxhumana)
22:24:29 × shr\ke quits (~shrike@user/paxhumana) (Changing host)
22:24:29 shr\ke joins (~shrike@user/shrke:31298)
22:25:13 × Zemy_ quits (~Zemy@mobile-107-80-206-52.mycingular.net) (Ping timeout: 264 seconds)
22:26:14 Zemy_ joins (~Zemy@72.178.108.235)
22:27:43 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
22:29:34 × Zemy quits (~Zemy@2600:100c:b01a:eb8d:b479:45ff:fed4:92fe) (Ping timeout: 260 seconds)
22:31:49 × jmcantrell_ quits (~weechat@user/jmcantrell) (Ping timeout: 264 seconds)
22:33:32 jmcantrell_ joins (~weechat@user/jmcantrell)
22:38:56 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
22:43:40 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
22:44:56 × oskarw quits (~user@user/oskarw) (Ping timeout: 240 seconds)
22:45:00 Guest41 joins (~Guest41@137.83.217.79)
22:45:07 <Guest41> hello!
22:45:50 <Guest41> Does anyone else find haskell  hard to learn using chatgpt, I can get working code of cute snippets and programs but I feel like if OpenAI went bankrupt I would be useless lol, or would take forever to type down
22:46:06 × EvanR quits (~EvanR@user/evanr) (Remote host closed the connection)
22:46:42 <ski> how about learning from a textbook ?
22:47:18 <ski> or, perhaps, a course, like
22:47:22 <ski> @where CIS194
22:47:22 <lambdabot> <https://github.com/byorgey/haskell-course>,<https://www.seas.upenn.edu/~cis194/spring13/lectures.html>
22:47:31 <Guest41> I have this one : Introduction to Computation: Haskell, Logic and Automata
22:47:43 <Guest41> but maybe I should go along it with the course as well :-)
22:47:47 ski wouldn't learn anything using an LLM chatbot
22:48:36 <tomsmeding> (you don't know yet which of its output is useful and which is not)
22:48:48 <ski> when you're learning something, you don't want to deal with the risk of hallucinations
22:49:19 <ski> when you know more about an area, you can (more) tell what is nonsense, and what isn't
22:49:28 <ski> when you're just learning, you can't
22:49:30 <Guest41> been programming for a long long while in C,C++,python,verilog,etc. so I can "kind of" tell when it's lying
22:49:52 <Guest41> but you're right I can't just google all the output and hope to double check everything, the small hallucination risk sucks there
22:49:55 mange joins (~mange@user/mange)
22:50:48 <Guest41> Huh actually <https://www.inf.ed.ac.uk/teaching/courses/inf1/fp/> is the course for the textbook I do have, hooray!
22:51:02 <ski> most of those are "mostly the same" (not counting Verilog), when comparing to Haskell
22:51:08 <tomsmeding> having much programming experience is of course very helpful, but still, programming in haskell requires a rather different mindset than for more traditional imperative languages
22:51:25 <tomsmeding> you should expect to feel like a programming noob, at least for a little while :)
22:51:52 <ski> coming at it with a mindset that you don't know programming yet, helps, yes
22:51:57 <tomsmeding> as you get a little experience with functional programming, you'll start to see the connections to what you've been doing so far and you'll be able to use all your knowledge
22:52:17 <Guest41> yeah maybe just having a student mindset instead of trying to blaze thru would help
22:52:31 <ski> some things will be different, sometimes very different. some things will carry over. but it's better to defer comparisions until you've got the basics covered
22:52:37 <Guest41> I always try to make small little projects that increase in complexity and that's how I learn to program in new languages
22:52:41 <ski> you will have to unlearn old habits
22:52:53 <tomsmeding> then again, learn as you wish, as long as you have fun it's probably fine :)
22:53:04 <tomsmeding> keep thinking
22:53:07 <Guest41> so far I've made conways' game of life, snake, a simple sat solver, and now i'm working on a stochastic parrot
22:53:22 <Guest41> yeah lots of unlearning, separating IO for example is very weird :laugh:
22:54:07 <ski> one could view it as taking "separate internal machinery from UI presentation" to a higher degree
22:54:18 <jreicher> Guest41: chatgpt won't teach you anything. That's not what it does.
22:54:41 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
22:55:18 <jreicher> LLMs model language that exists. Teaching, by definition, requires modelling ignorance.
22:55:42 <tomsmeding> there's teaching content on haskell and other FP topics out there, and that's part of the "language that exists"
22:56:10 <tomsmeding> as you can see, I also don't agree that learning just from an LLM is a good strategy, but "teaching is not what is does" is slightly overly reductive
22:56:18 <jreicher> Yes, but summarising well written teaching text can't make it better. It was already well written. It's only going to make it worse.
22:56:29 <tomsmeding> it can't make it better, but it can make it more personalised
22:56:46 <jreicher> I'll concede that's possible, but I think I'd like to see it.
22:57:05 × shr\ke quits (~shrike@user/shrke:31298) (Read error: Connection reset by peer)
22:57:14 shr\ke joins (~shrike@user/paxhumana)
22:57:14 × shr\ke quits (~shrike@user/paxhumana) (Changing host)
22:57:14 shr\ke joins (~shrike@user/shrke:31298)
22:57:42 <tomsmeding> LLMs are an amazing search engine: if you want to know what weird GHC extension gives you `foo @Int` syntax, for example, it's essentially guaranteed to be able to tell you "that's TypeApplications", and then you can look up the docs for that
22:57:57 <tomsmeding> whereas putting "@Int" in a search engine is guaranteed to fail
22:58:39 <jreicher> Yep, I've been using them for searching. But as soon as I feel like I need to learn an underlying concept that might be new for me, I follow the link to the source.
22:58:40 Rembane shakes fist at Google
22:58:48 tomsmeding too
22:59:10 Googulator39 joins (~Googulato@2a01-036d-0106-030a-3891-da7f-f3f3-f997.pool6.digikabel.hu)
22:59:22 tomsmeding shakes fist at Rembane's shaking fist
23:00:10 × tromp quits (~textual@2001:1c00:3487:1b00:4c4c:3bb8:a5c6:557e) (Quit: My iMac has gone to sleep. ZZZzzz…)
23:00:37 <Rembane> tomsmeding: Now we just need to figure out how to shake fist recursively and we will have the ultimate old-man-yelling-at-clouds sourcery!
23:01:10 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
23:01:11 <tomsmeding> there's probably a way to make a circular Shake build recipe called "fist"
23:01:30 ski idly ponders corecursion
23:03:01 <Rembane> fix . Shake $ fist
23:03:27 × Googulator quits (~Googulato@77-234-89-65.pool.digikabel.hu) (Ping timeout: 272 seconds)
23:04:04 Guest41 nods
23:04:14 Guest41 runs away as fast as he can towards textbooks
23:04:20 × Guest41 quits (~Guest41@137.83.217.79) (Quit: Client closed)
23:04:35 <tomsmeding> I think #haskell is not the right place to go if you want to talk about LLMs lol
23:05:03 <jreicher> Oh dear, we really did scare them off.
23:05:45 <tomsmeding> well, some amount of scaring was appropriate, perhaps; not sure if scaring them away was necessary
23:05:47 <tomsmeding> oh well
23:06:04 ski doubts it was scaring off
23:06:30 <Rembane> Maybe they'll come back. We'll see.
23:07:17 <ski> they could just be humorously expressing that they want to go to focus on the links provided, and not be distracted
23:07:46 tromp joins (~textual@2001:1c00:3487:1b00:4c4c:3bb8:a5c6:557e)
23:07:55 <tomsmeding> possible yes, and in any case if we did scare them off I think we were considerate enough; opinions were expressed, but then, that's what you go on the internet for
23:08:41 Lycurgus joins (~juan@user/Lycurgus)
23:12:11 <__monty__> While I'm sure an LLM could also tell you, DDG gives me two hits in the first three results with the query `GHC foo @Int`. Burning a whole lot less energy in the process and not being built on nearly as exploitative a technology.
23:12:32 <tomsmeding> that's better than I expected
23:12:44 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
23:12:51 <tomsmeding> and the user guide is even one of them!
23:15:04 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
23:16:33 <jreicher> The whole energy consumption aspect is pretty depressing. I really struggle with that.
23:17:00 <tomsmeding> it's one of the main reasons I hesitate to use them even for tasks they are appropriate for
23:17:10 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
23:20:59 <haskellbridge> <magic_rb> For me also the moral, copyright, and corporate control aspects
23:21:59 <[exa]> c'mon guys no one ever had issues from listening to a good advisor with plenty of great ideas coming from whoknowswhere
23:22:10 <jreicher> I really like Hinton's point (other people have probably made it to) that biological brains provide a tradeoff of being uncopyable but very low power consumption. It's a surprising (for me) way of looking at it, but makes sense.
23:22:39 × tromp quits (~textual@2001:1c00:3487:1b00:4c4c:3bb8:a5c6:557e) (Quit: My iMac has gone to sleep. ZZZzzz…)
23:23:30 <[exa]> jreicher: wouldn't say "uncopyable", more like "gotten too squishy to do much else than thinking"
23:23:58 tomsmeding likes squishy matrices
23:25:24 <jreicher> "Uncopyable" is my paraphrase. The full point is that with software you can produce multiple instances from the one training history. But when you train a biological brain, you only have that instance.
23:26:47 <[exa]> like, getting identical copies of fresh brains ain't easy for sure
23:26:50 karenw joins (~karenw@user/karenw)
23:27:11 [exa] -> back to haskell
23:28:13 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
23:29:14 <Rembane> I want a hot spare
23:33:09 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
23:38:16 <__monty__> Are brains really that low energy? 2000 kcal/day = 2.3 kWh/day. From a random website a computer used 8 h/day will use about 146 kWh/year. So that's roughly half a brain. Unless we face that fact that most of our brain power is probably dedicated to "wasted" computation, like acquiring food, procreating etc.
23:43:32 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
23:44:00 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)
23:48:31 × merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
23:49:28 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 260 seconds)
23:55:55 EvanR joins (~EvanR@user/evanr)
23:58:51 machinedgod joins (~machinedg@d75-159-126-101.abhsia.telus.net)
23:59:45 merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl)

All times are in UTC on 2026-01-27.