2022/09/30

2022-09-30 00:00:09 +0200Guest2990(~Guest29@2601:281:d47e:a4c0:a09a:346e:21e1:c743) (Quit: Client closed)
2022-09-30 00:00:14 +0200 <darkling> TECO's somewhat before my time, sadly|fortunately
2022-09-30 00:00:58 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 265 seconds)
2022-09-30 00:02:40 +0200 <geekosaur> TV and a command prompt when I was blowing off time in the computer center my senior year of HS, when I was spending half-days at CWRU taking accelerated calculus
2022-09-30 00:02:49 +0200 <geekosaur> (TV being DEC's visual TECO)
2022-09-30 00:03:31 +0200nate3(~nate@98.45.169.16) (Ping timeout: 246 seconds)
2022-09-30 00:03:32 +0200 <darkling> I started my computing career on a ZX80.
2022-09-30 00:03:43 +0200 <geekosaur> the dialup machine I was using from home was too small for emacs, although IIRC I did manage to get Jove running at some point
2022-09-30 00:04:50 +0200 <darkling> I first met microEmacs squeezed into a DOS system alongside DBase IV in.. 1992? Kind of got stuck on the UI :)
2022-09-30 00:09:01 +0200 <sm> darkling: high five! my first home computer
2022-09-30 00:09:47 +0200 <geekosaur> Ohio Scientific SuperBoard II
2022-09-30 00:10:15 +0200 <geekosaur> (C1P as a build-it-yourself kit, but dad had someone at work assemble it)
2022-09-30 00:10:38 +0200 <sm> that sounds fun, and early
2022-09-30 00:11:04 +0200 <geekosaur> late 70s
2022-09-30 00:11:05 +0200 <sm> before apple I guess ?
2022-09-30 00:11:26 +0200 <geekosaur> I think Apple was around but already overpriced 🙂
2022-09-30 00:11:42 +0200 <darkling> Looks about the same time. WP has a Superboard II in a wooden case to match the Apple II.
2022-09-30 00:11:48 +0200 <geekosaur> so the not-cool-kids got to play with C1Ps, KIM-1s, etc.
2022-09-30 00:12:24 +0200tdfpsws^(~tdfpsws@173-160-76-137-atlanta.hfc.comcastbusiness.net)
2022-09-30 00:12:30 +0200 <monochrom> Yeah Apple II was probably overpriced. We guys in Hong Kong etc made and sold/bought clones for one tenth the price.
2022-09-30 00:12:52 +0200 <darkling> The 8-bit home micro era was weird, spectacular, and regrettably short-lived.
2022-09-30 00:13:16 +0200 <geekosaur> I remember the KayPro 1 coming out
2022-09-30 00:13:31 +0200 <geekosaur> huge luggable for several thousand dollars
2022-09-30 00:14:08 +0200 <monochrom> Then again we went on to do the same to IBM PCs and XTs and ATs too so I guess everything was overpriced.
2022-09-30 00:14:08 +0200 <geekosaur> who'd have imagined we'd have more computing power on our smartphones when we grew up?
2022-09-30 00:14:48 +0200 <darkling> More computing power than a *Cray*...
2022-09-30 00:15:07 +0200Guest89(~Guest89@2a10:8012:11:bcba:9076:128d:d21b:9a21)
2022-09-30 00:15:17 +0200Guest89(~Guest89@2a10:8012:11:bcba:9076:128d:d21b:9a21) (Client Quit)
2022-09-30 00:15:27 +0200 <EvanR> this programming textbook from 1980 has a remark to that effect, about the increasing complexity, density, speed of computers
2022-09-30 00:15:43 +0200 <EvanR> let me see what the exact wording is
2022-09-30 00:15:45 +0200 <darkling> I did a lecture on the history of supercomputing a couple of times. I started with Seymour Cray's first machine, the CDC6600.
2022-09-30 00:16:14 +0200 <geekosaur> flip side, crays were never about the computing power as such. similarly IBM mainframes were fairly weak, slow CPUs; it was the I/O channels that made them serious mainframes
2022-09-30 00:16:40 +0200 <darkling> I then passed round a board with the best match of spec to that (4x the clock rate, 2x the RAM). €8 each in quantities of 1000...
2022-09-30 00:16:45 +0200 <EvanR> "At present, integrated-circuit technology is rapidly developing, and one can only guess where the future will lead."
2022-09-30 00:16:53 +0200 <geekosaur> and very low memory, but memory was used for scratchpad: all the real data was on tape
2022-09-30 00:16:55 +0200 <EvanR> (Assembly Language for the PDP-11)
2022-09-30 00:16:57 +0200 <monochrom> I am most happy that the days of "so which 5 CDs should I bring with me today?" are over because the flash memory on my phone stores the entirety of my music library.
2022-09-30 00:17:08 +0200 <darkling> :)
2022-09-30 00:17:44 +0200 <geekosaur> and then we moved on from music libraries and use Pandora/Spotify instead 🙂
2022-09-30 00:17:53 +0200michalz(~michalz@185.246.207.197) (Remote host closed the connection)
2022-09-30 00:18:11 +0200 <monochrom> I think PCIe 4.0 or 5.0 or 6.0 or whatever beats Cray or mainframe I/O speeds too.
2022-09-30 00:18:14 +0200 <darkling> I've got a script that runs once every three months, to build images for the 6 DVDs that I can fit in my car's audio system...
2022-09-30 00:18:14 +0200 <EvanR> moved on from music library to the sane 2 genres on youtube + gratuitous ads
2022-09-30 00:18:25 +0200 <EvanR> same*
2022-09-30 00:18:51 +0200 <geekosaur> monochrom, simultaneously?
2022-09-30 00:19:07 +0200 <EvanR> I miss pirating terabytes of music and not listening to any of it
2022-09-30 00:19:15 +0200 <geekosaur> if you have a separate bus for every peripheral, *now* you're talking mainframe
2022-09-30 00:19:16 +0200 <darkling> monochrom: I think the Cray^H^H^H^HIntel node interconnects are still pretty impressive.
2022-09-30 00:20:20 +0200 <geekosaur> oh, and each its own CPU so you can just blast data at it and let the IOCP deal
2022-09-30 00:20:24 +0200 <DigitalKiwi> EvanR: i have over 20GB of trance music lol
2022-09-30 00:20:26 +0200 <darkling> I did some work on them about a decade ago. Very interesting stuff.
2022-09-30 00:21:05 +0200 <darkling> The butterfly/dragonfly architectures were pretty spectacular.
2022-09-30 00:21:40 +0200titibandit(~titibandi@xdsl-212-8-150-57.nc.de) (Remote host closed the connection)
2022-09-30 00:22:06 +0200 <darkling> A major step up from the hypertoruses everyone was using before then.
2022-09-30 00:23:55 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds)
2022-09-30 00:24:09 +0200 <DigitalKiwi> https://chromium.googlesource.com/chromiumos/third_party/u-boot/+/firmware-butterfly-2788.B
2022-09-30 00:24:22 +0200 <DigitalKiwi> that one?
2022-09-30 00:24:31 +0200 <DigitalKiwi> https://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices/hp-pavilion-14-ch…
2022-09-30 00:25:13 +0200 <darkling> Neither of those. :)
2022-09-30 00:25:47 +0200tdfpsws^(~tdfpsws@173-160-76-137-atlanta.hfc.comcastbusiness.net) (Remote host closed the connection)
2022-09-30 00:26:00 +0200 <darkling> This sort of thing: https://www.cs.umd.edu/class/fall2019/cmsc714/slides/10-cmsc714-fattree-dragonfly.pdf
2022-09-30 00:26:11 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:f03d:9d14:c4b1:e7e0)
2022-09-30 00:26:56 +0200rockymarine(~rocky@user/rockymarine)
2022-09-30 00:27:34 +0200jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff)
2022-09-30 00:27:41 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-30 00:28:07 +0200 <DigitalKiwi> this is the cpu it has lol https://ark.intel.com/content/www/us/en/ark/products/56056/intel-celeron-processor-847-2m-cache-1-… i upgraded it to 16GB of ram and a 500GB SSD
2022-09-30 00:29:09 +0200 <darkling> Although the actual implementation looked a bit different. Basically you could guarantee 9 hops to any node in the network, with about 1.5 million CPUs available on the largest configuration.
2022-09-30 00:29:13 +0200lyle(~lyle@104.246.145.85) (Ping timeout: 268 seconds)
2022-09-30 00:29:22 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 00:30:13 +0200 <sm> yow
2022-09-30 00:30:14 +0200 <darkling> On a 3-torus of that size, you'd be looking at 170 hops.
2022-09-30 00:30:41 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:f03d:9d14:c4b1:e7e0) (Ping timeout: 260 seconds)
2022-09-30 00:32:21 +0200 <EvanR> now that's cray
2022-09-30 00:32:26 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 260 seconds)
2022-09-30 00:37:28 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 246 seconds)
2022-09-30 00:39:08 +0200 <DigitalKiwi> if i were designing silicon i would simply arrange it in a hypercube
2022-09-30 00:39:41 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-09-30 00:40:12 +0200 <darkling> Pushes up the cost of your routers quote a lot.
2022-09-30 00:40:19 +0200 <darkling> log(N) in the CPUs.
2022-09-30 00:40:34 +0200 <DigitalKiwi> https://mostlyabsurd.com/files/2022-09-29-174013_914x858_scrot.png
2022-09-30 00:40:44 +0200 <DigitalKiwi> https://en.wikipedia.org/wiki/10-cube#/media/File:10-cube.svg
2022-09-30 00:40:53 +0200 <DigitalKiwi> they came so close
2022-09-30 00:41:35 +0200 <darkling> The CM-1 and CM-2 got up to 2^16 nodes, but that's small change these days.
2022-09-30 00:42:02 +0200 <darkling> Big deal in 1987, though.
2022-09-30 00:42:50 +0200 <DigitalKiwi> i'm sick of them giving us silicon chips/wafers! i want silicon lasagna/baklava
2022-09-30 00:43:01 +0200 <DigitalKiwi> https://en.wikipedia.org/wiki/Baklava#/media/File:Baklava_-_Turkish_special,_80-ply.JPEG
2022-09-30 00:43:02 +0200 <darkling> Hehe.
2022-09-30 00:43:35 +0200 <darkling> So if you keep folding the baklava, does it eventually get really really sharp?
2022-09-30 00:44:19 +0200 <DigitalKiwi> it's impossible to have more than 9 layers of baklava due to the laws of physics
2022-09-30 00:44:40 +0200 <darkling> Did you mean 2^9 layers?
2022-09-30 00:44:59 +0200 <hpc> i keep my 9-layer baklava next to my spherical souffles
2022-09-30 00:45:00 +0200 <DigitalKiwi> i think i mean it's impossible to fold it more than 9 times heh
2022-09-30 00:45:13 +0200 <EvanR> nuclear baklava is one region of neutron star interior
2022-09-30 00:45:21 +0200darklingturns on his baklava lamp.
2022-09-30 00:45:26 +0200 <DigitalKiwi> s/9/7/
2022-09-30 00:46:05 +0200causal(~user@50.35.83.177) (Quit: WeeChat 3.6)
2022-09-30 00:46:24 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
2022-09-30 00:46:26 +0200 <DigitalKiwi> https://www.sciencefocus.com/science/whats-the-maximum-number-of-times-that-you-can-fold-a-piece-o…
2022-09-30 00:46:58 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-09-30 00:47:45 +0200 <jackdk> The real reason that baklava admits a finite number of foldings is that they keep getting eaten.
2022-09-30 00:48:56 +0200 <monochrom> :)
2022-09-30 00:52:23 +0200 <DigitalKiwi> if it doesn't come from the nuclear baklava region of the neutron star it's just sparkling biscuit
2022-09-30 00:54:02 +0200mikoto-chan(~mikoto-ch@193.184.30.141)
2022-09-30 00:55:01 +0200 <DigitalKiwi> tired: silicon chips, wired: silicon pringles chips
2022-09-30 00:55:45 +0200acidjnk_new(~acidjnk@p200300d6e7137a84f9679ba27a252492.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2022-09-30 01:03:30 +0200LukeHoersten(~LukeHoers@user/lukehoersten)
2022-09-30 01:06:39 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 01:06:52 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-09-30 01:07:13 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-09-30 01:08:09 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 265 seconds)
2022-09-30 01:08:33 +0200thyriaen(~thyriaen@2a02:8109:8340:686c:7383:e0e2:ad95:9fce)
2022-09-30 01:08:34 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-30 01:09:11 +0200mikoto-chan(~mikoto-ch@193.184.30.141) (Ping timeout: 250 seconds)
2022-09-30 01:09:29 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-09-30 01:10:17 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-09-30 01:10:55 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 250 seconds)
2022-09-30 01:11:14 +0200mikoto-chan(~mikoto-ch@2001:999:500:5a8f:6292:d4f9:57fd:9538)
2022-09-30 01:13:08 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 01:13:47 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 252 seconds)
2022-09-30 01:15:05 +0200 <hpc> heh, print circuits on ruffled silicon for air flow
2022-09-30 01:17:49 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds)
2022-09-30 01:19:26 +0200jargon(~jargon@184.101.88.60)
2022-09-30 01:20:30 +0200mikoto-chan(~mikoto-ch@2001:999:500:5a8f:6292:d4f9:57fd:9538) (Ping timeout: 244 seconds)
2022-09-30 01:27:11 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-09-30 01:28:54 +0200zeenk(~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!)
2022-09-30 01:29:47 +0200fjMSX(~hypni2p@2.92.213.55)
2022-09-30 01:41:06 +0200kenaryn(~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr)
2022-09-30 01:41:22 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-09-30 01:42:22 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-30 01:44:21 +0200 <kenaryn> Hello! Please which one is the superclass of the other between `Ord` and `Eq`?
2022-09-30 01:45:07 +0200thyriaen(~thyriaen@2a02:8109:8340:686c:7383:e0e2:ad95:9fce) (Quit: Leaving)
2022-09-30 01:45:10 +0200Midjak(~Midjak@82.66.147.146)
2022-09-30 01:46:21 +0200 <Axman6> Eq is a superclass of Ord - you must be able to test for equality to be able to compare ordering
2022-09-30 01:46:25 +0200 <Axman6> @src Ord
2022-09-30 01:46:25 +0200 <lambdabot> class (Eq a) => Ord a where
2022-09-30 01:46:25 +0200 <lambdabot> compare :: a -> a -> Ordering
2022-09-30 01:46:25 +0200 <lambdabot> (<), (<=), (>), (>=) :: a -> a -> Bool
2022-09-30 01:46:25 +0200 <lambdabot> max, min :: a -> a -> a
2022-09-30 01:46:47 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 252 seconds)
2022-09-30 01:46:59 +0200phma(phma@2001:5b0:210b:aca8:55c3:ae:c6b9:e9a1) (Read error: No route to host)
2022-09-30 01:47:26 +0200phma(phma@2001:5b0:210b:aca8:ecff:405c:745f:81a2)
2022-09-30 01:48:40 +0200shreyasminocha(51fdc93eda@user/shreyasminocha) (Read error: Connection reset by peer)
2022-09-30 01:48:48 +0200shreyasminocha(51fdc93eda@user/shreyasminocha)
2022-09-30 01:49:41 +0200Arsen(arsen@managarm/dev/Arsen) (Remote host closed the connection)
2022-09-30 01:50:51 +0200Arsen(arsen@managarm/dev/Arsen)
2022-09-30 01:55:26 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-09-30 01:55:43 +0200berberman(~berberman@user/berberman)
2022-09-30 01:57:02 +0200mvk(~mvk@2607:fea8:5ce3:8500::778c)
2022-09-30 02:00:53 +0200nate3(~nate@98.45.169.16)
2022-09-30 02:02:20 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 268 seconds)
2022-09-30 02:02:52 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 258 seconds)
2022-09-30 02:03:36 +0200adanwan_(~adanwan@gateway/tor-sasl/adanwan)
2022-09-30 02:03:38 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds)
2022-09-30 02:03:48 +0200califax(~califax@user/califx) (Quit: ZNC 1.8.2 - https://znc.in)
2022-09-30 02:04:01 +0200jpds1(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 258 seconds)
2022-09-30 02:04:30 +0200califax(~califax@user/califx)
2022-09-30 02:05:16 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-09-30 02:05:25 +0200nate3(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-09-30 02:05:33 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 258 seconds)
2022-09-30 02:05:49 +0200 <jackdk> The `:info` command in GHCi is also useful for answering questions like this:
2022-09-30 02:05:49 +0200adanwan_(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2022-09-30 02:05:51 +0200 <jackdk> % :info Ord
2022-09-30 02:05:52 +0200 <yahb2> type Ord :: * -> Constraint ; class Eq a => Ord a where ; compare :: a -> a -> Ordering ; (<) :: a -> a -> Bool ; (<=) :: a -> a -> Bool ; (>) :: a -> a -> Bool ; (>=) :: a -> a -> Bool ;...
2022-09-30 02:05:52 +0200ec(~ec@gateway/tor-sasl/ec)
2022-09-30 02:06:18 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-09-30 02:06:38 +0200jpds1(~jpds@gateway/tor-sasl/jpds)
2022-09-30 02:06:58 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-09-30 02:06:58 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-09-30 02:06:58 +0200wroathe(~wroathe@user/wroathe)
2022-09-30 02:12:09 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 02:13:03 +0200 <EvanR> because Ord is supposed to be a "total order"
2022-09-30 02:13:21 +0200 <EvanR> other kind of orderings are cool, some don't entail equality issues
2022-09-30 02:15:20 +0200levitating(~irc@user/levitating) (Ping timeout: 265 seconds)
2022-09-30 02:16:54 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-30 02:17:12 +0200chomwitt(~chomwitt@2a02:587:dc14:f500:9e6a:c6cb:5be3:53b3) (Ping timeout: 264 seconds)
2022-09-30 02:21:31 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 260 seconds)
2022-09-30 02:23:21 +0200 <ski> equality issues ?
2022-09-30 02:23:51 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 260 seconds)
2022-09-30 02:24:34 +0200sagax(~sagax_nb@user/sagax) (Ping timeout: 244 seconds)
2022-09-30 02:26:25 +0200 <EvanR> you might not need to or want to define equality
2022-09-30 02:27:01 +0200 <EvanR> or in the case of real numbers, can't xD (have decidable equality)
2022-09-30 02:42:12 +0200levitating(~irc@user/levitating)
2022-09-30 02:42:38 +0200 <L29Ah> https://hackage.haskell.org/package/array-0.5.4.0/docs/src/Data.Array.Base.html#local-698958662167… omg this looks very complex, is it even fast? is there a simpler unboxed array impl?
2022-09-30 02:43:35 +0200 <geekosaur> there are unboxed Vectors
2022-09-30 02:44:33 +0200 <L29Ah> https://hackage.haskell.org/package/vector-0.13.0.0/docs/src/Data.Vector.Generic.html#unsafeIndex this looks even more complex
2022-09-30 02:46:51 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2022-09-30 02:47:02 +0200adanwan_(~adanwan@gateway/tor-sasl/adanwan)
2022-09-30 02:50:57 +0200 <EvanR> looks like when you access an array of unboxed Char you get an actual Char and not an unboxed thing
2022-09-30 02:51:17 +0200 <EvanR> so it's not like C in this case...
2022-09-30 02:52:55 +0200 <EvanR> I guess you can pattern match on C# to use the unboxed char in your unboxed algorithm?
2022-09-30 02:54:45 +0200 <dolio> Why would you?
2022-09-30 02:55:13 +0200 <EvanR> in a desperate attempt to avoid allocating boxes?
2022-09-30 02:55:35 +0200 <Axman6> L29Ah: what's "complex" about that code?
2022-09-30 02:55:53 +0200 <dolio> Right, ignorance.
2022-09-30 02:55:54 +0200 <L29Ah> Axman6: very many functions
2022-09-30 02:56:26 +0200 <Axman6> they just encode the various uptions that arrays need to be able to do
2022-09-30 02:56:49 +0200 <Axman6> and you'll see all the definitions are simple, and straight forward
2022-09-30 02:56:54 +0200 <geekosaur> and I saw an INLINE_FUSED in there so I assume it goes away
2022-09-30 02:57:39 +0200kiri1606[m](~kiri1606m@2001:470:69fc:105::2:8ec9)
2022-09-30 02:58:03 +0200 <EvanR> automagic unboxing? cool
2022-09-30 02:58:15 +0200 <geekosaur> (although INLINE_FUSED isn't a ghc thing so I assume there's some CPP going on)
2022-09-30 02:58:21 +0200 <L29Ah> ok i gotta read generated assembly first it seems
2022-09-30 02:58:24 +0200mikoto-chan(~mikoto-ch@2001:999:688:67e8:7b13:7bf9:475:595a)
2022-09-30 02:58:35 +0200 <L29Ah> still i see a sus `xor` call at that first link!
2022-09-30 02:59:10 +0200 <L29Ah> a bit of context: i'm trying to rice up https://github.com/l29ah/hyborg/blob/master/Chunker/BuzHash.hs#L52
2022-09-30 02:59:44 +0200 <L29Ah> now kinda sad that i didn't write it in C
2022-09-30 02:59:48 +0200levitating(~irc@user/levitating) (Ping timeout: 265 seconds)
2022-09-30 03:00:04 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 03:00:37 +0200sagax(~sagax_nb@user/sagax)
2022-09-30 03:03:43 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-09-30 03:03:56 +0200 <kenaryn> Thank you Axman6 jackdk yahb2 EvanR :)
2022-09-30 03:04:21 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 244 seconds)
2022-09-30 03:05:45 +0200xff0x(~xff0x@2405:6580:b080:900:2f8c:7144:6283:fa6) (Ping timeout: 250 seconds)
2022-09-30 03:06:26 +0200levitating(~irc@user/levitating)
2022-09-30 03:06:35 +0200 <jackdk> Polite of you to thank the bot too ^^
2022-09-30 03:06:56 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 03:07:21 +0200 <kenaryn> yeah AI will have sooner or later feelings too
2022-09-30 03:07:45 +0200 <EvanR> %botsnack
2022-09-30 03:08:43 +0200 <Axman6> @botsnack
2022-09-30 03:08:43 +0200 <lambdabot> :)
2022-09-30 03:10:46 +0200Colere(~colere@about/linux/staff/sauvin)
2022-09-30 03:10:56 +0200LoupGris(~colere@about/linux/staff/sauvin) (Ping timeout: 265 seconds)
2022-09-30 03:11:02 +0200 <Axman6> L29Ah: the xor is in there because IArray for Bool is a packed representation, so the Bools are stored as individual bits, you'd expect to see code like that in any language that has a packed array of bits
2022-09-30 03:11:41 +0200archsinner(~archsinne@2603-9000-8400-033b-0000-0000-0000-1df1.inf6.spectrum.com)
2022-09-30 03:12:25 +0200archsinner(~archsinne@2603-9000-8400-033b-0000-0000-0000-1df1.inf6.spectrum.com) ()
2022-09-30 03:13:09 +0200Furor(~colere@about/linux/staff/sauvin)
2022-09-30 03:13:13 +0200archsinner(~archsinne@2603-9000-8400-033b-0000-0000-0000-1df1.inf6.spectrum.com)
2022-09-30 03:13:55 +0200kenaryn(~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr) (Quit: leaving)
2022-09-30 03:13:57 +0200 <ski> EvanR : yea, but not having decidable equality is not the same as not having equality
2022-09-30 03:14:19 +0200 <dolio> The reals in fact aren't a total order, though.
2022-09-30 03:14:29 +0200 <dolio> Only a linear order.
2022-09-30 03:14:33 +0200 <ski> they're a linear order, though
2022-09-30 03:14:36 +0200 <ski> yea
2022-09-30 03:15:53 +0200Colere(~colere@about/linux/staff/sauvin) (Ping timeout: 252 seconds)
2022-09-30 03:15:53 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds)
2022-09-30 03:16:07 +0200archsinner(~archsinne@2603-9000-8400-033b-0000-0000-0000-1df1.inf6.spectrum.com) (Quit: archsinner)
2022-09-30 03:17:05 +0200 <EvanR> what's the difference, wikipedia can't explain it
2022-09-30 03:17:14 +0200frost(~frost@user/frost)
2022-09-30 03:17:26 +0200 <dolio> Linear applies to (<)
2022-09-30 03:17:36 +0200 <EvanR> ok
2022-09-30 03:17:58 +0200 <ski> linear has comparision/cotransitivity. if `a < c' then `a < b' or `b < c'
2022-09-30 03:18:10 +0200 <dolio> Yeah.
2022-09-30 03:18:33 +0200 <ski> but there's no dichotomy (either `a =< b' or `b =< c') nor trichotomy (either `a < b' or `a = b' or `a > b')
2022-09-30 03:20:33 +0200 <dolio> (<) on the reals is constructively stronger, because it tells you how to separate its arguments. (≤) is defined by negation of (<), I think.
2022-09-30 03:20:50 +0200 <dolio> Or, if not defined, equivalent.
2022-09-30 03:21:27 +0200 <ski> yes
2022-09-30 03:22:35 +0200ski. o O ( <https://ncatlab.org/nlab/show/linear+order> )
2022-09-30 03:24:08 +0200jpds1(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 258 seconds)
2022-09-30 03:26:28 +0200 <geekosaur> did you mean (≥)?
2022-09-30 03:26:29 +0200jpds1(~jpds@gateway/tor-sasl/jpds)
2022-09-30 03:26:48 +0200 <ski> hm, right
2022-09-30 03:26:52 +0200 <ski> (or flipping?
2022-09-30 03:26:56 +0200 <ski> )
2022-09-30 03:27:05 +0200 <dolio> Yeah, you have to flip the arguments to define ≤.
2022-09-30 03:27:41 +0200 <ski> and you can define apartness as being either less or greater than
2022-09-30 03:28:33 +0200ski. o O ( <https://ncatlab.org/nlab/show/apartness+relation> )
2022-09-30 03:28:47 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:f03d:9d14:c4b1:e7e0)
2022-09-30 03:33:12 +0200 <ski> hm, iirc Pascal has finite subsets of ranges and enumerations, typically implemented as bitvectors
2022-09-30 03:33:17 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:f03d:9d14:c4b1:e7e0) (Ping timeout: 244 seconds)
2022-09-30 03:35:04 +0200 <ski> > complement 0 :: Integer
2022-09-30 03:35:06 +0200 <lambdabot> -1
2022-09-30 03:35:34 +0200 <EvanR> that's... correct
2022-09-30 03:35:58 +0200 <ski> > popCount (-1)
2022-09-30 03:36:00 +0200 <lambdabot> -1
2022-09-30 03:36:07 +0200 <EvanR> that's not
2022-09-30 03:36:19 +0200 <EvanR> population -1
2022-09-30 03:36:37 +0200 <ski> i think when there's infinitely many `1's, they're counting the number of `0's, and subtracting that from `-1' ?
2022-09-30 03:36:52 +0200 <ski> > map popCount [-1,-2 ..]
2022-09-30 03:36:54 +0200 <lambdabot> [-1,-1,-2,-1,-2,-2,-3,-1,-2,-2,-3,-2,-3,-3,-4,-1,-2,-2,-3,-2,-3,-3,-4,-2,-3,...
2022-09-30 03:37:30 +0200 <ski> > map popCount [0 ..]
2022-09-30 03:37:32 +0200 <lambdabot> [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3,2,3...
2022-09-30 03:37:32 +0200 <EvanR> haha for any finite integer (??) there's an infinite string of zeros or ones off the end
2022-09-30 03:38:08 +0200 <EvanR> that's imperfect and ad hoc, it should be generalized immediately to arbitrary zeros and ones
2022-09-30 03:38:26 +0200 <Clinton[m]> What am I doing wrong here with pattern synonyms, or do I need an extension?... (full message at <https://libera.ems.host/_matrix/media/r0/download/libera.chat/fd17ec5ff0ce981d1427274d4b9fc9690f9c…>)
2022-09-30 03:38:27 +0200 <ski> hmm .. seems `popCount (-n)' rather does `- popCount n' ? .. weird
2022-09-30 03:38:50 +0200 <Clinton[m]> * What am I doing wrong here with pattern synonyms, or do I need an extension (other than `PatternSynonyms` of course)?... (full message at <https://libera.ems.host/_matrix/media/r0/download/libera.chat/5e93f79760c908ac49715b3a77c8e3c829b5…>)
2022-09-30 03:38:59 +0200 <EvanR> > popCount (-5 :: Int)
2022-09-30 03:39:01 +0200 <lambdabot> 63
2022-09-30 03:39:01 +0200 <Clinton[m]> * What am I doing wrong here with pattern synonyms, or do I need an extension (other than `PatternSynonyms` of course)?... (full message at <https://libera.ems.host/_matrix/media/r0/download/libera.chat/371822ac5679469a90a590e34b67fac4a58f…>)
2022-09-30 03:39:17 +0200 <ski> EvanR : well, you can't construct those `2'-adic numbers, with ring operations
2022-09-30 03:40:01 +0200jpds1(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-09-30 03:41:29 +0200 <ski> note that ⌜⋯010101₂ = −½⌝
2022-09-30 03:41:33 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 03:42:01 +0200 <EvanR> 🤔
2022-09-30 03:42:10 +0200tomku(~tomku@user/tomku) (Quit: Lost terminal)
2022-09-30 03:42:20 +0200 <EvanR> are those your new quotes or what
2022-09-30 03:43:17 +0200 <dolio> That's the Gödel code quotation.
2022-09-30 03:43:47 +0200 <ski> well .. Quine quotes
2022-09-30 03:43:56 +0200 <ski> (that i use for unicode)
2022-09-30 03:44:11 +0200jpds1(~jpds@gateway/tor-sasl/jpds)
2022-09-30 03:44:21 +0200 <EvanR> in what sense is that equality true
2022-09-30 03:45:15 +0200nate3(~nate@98.45.169.16)
2022-09-30 03:45:22 +0200tomku(~tomku@user/tomku)
2022-09-30 03:45:27 +0200 <ski> er, sorry, that should be ⌜⋯010101₂ = −⅓⌝
2022-09-30 03:46:11 +0200 <ski> try adding three copies of that binary numeral together, and you'll get ⌜⋯111111₂⌝, which is negative one
2022-09-30 03:46:12 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
2022-09-30 03:48:23 +0200ProbablyReturnin(~ProbablyR@S01069050ca4e3573.cg.shawcable.net)
2022-09-30 03:48:55 +0200ProbablyReturnin(~ProbablyR@S01069050ca4e3573.cg.shawcable.net) ()
2022-09-30 03:49:18 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2022-09-30 03:49:49 +0200 <EvanR> gnarly
2022-09-30 03:50:42 +0200tomku(~tomku@user/tomku) (Quit: Lost terminal)
2022-09-30 03:50:59 +0200ski. o O ( <https://en.wikipedia.org/wiki/P-adic_number#Positional_notation> )
2022-09-30 03:52:46 +0200tomku(~tomku@user/tomku)
2022-09-30 03:54:41 +0200 <byorgey> Clinton[m]: I think you just need to get rid of the parentheses around (x :=: y)
2022-09-30 03:55:05 +0200sympt(~sympt@user/sympt) (Read error: Connection reset by peer)
2022-09-30 03:55:40 +0200 <ski> in `2'-adic, you can represent all rationals (as "repeating digits to the left"), except for those (when put in reduced form) whose denominator is divisible by `2'
2022-09-30 03:56:33 +0200 <ski> (and ditto for `p'-adic, for any prime number `p'. you have digits `{0,1,...,p-1}', as usual for base `p', except that you can repeat infinitely to the left)
2022-09-30 03:57:10 +0200sympt(~sympt@user/sympt)
2022-09-30 03:58:28 +0200 <ski> Clinton[m] : hmm .. did you intend to effectively make an existential ?
2022-09-30 03:59:19 +0200 <ski> (.. since that type doesn't look too useful, to me -- with or without the pattern synonym. but perhaps this is a simplification of what you're really trying)
2022-09-30 04:01:37 +0200beteigeuze(~Thunderbi@a79-169-109-107.cpe.netcabo.pt)
2022-09-30 04:03:38 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 04:05:03 +0200 <Clinton[m]> ski: `pattern (:==:) x y = Equal x y` works fine I worked out in the end. My example wasn't complete, in the real example in `Equal` (which is actually something different) `a` is not of kind `Type` but instead another kind and `Equal` has a number of constructors which expose the actual type.
2022-09-30 04:05:23 +0200 <ski> sure, not saying it doesn't work
2022-09-30 04:05:40 +0200 <ski> just that you couldn't actually do anything with `x' and `y', after matching on the pattern
2022-09-30 04:06:21 +0200 <ski> hm .. you want to avoid exposing the type representation ?
2022-09-30 04:06:51 +0200 <Clinton[m]> In my actual code I can, but yes, in the example I agree no I can't.
2022-09-30 04:07:02 +0200skinods
2022-09-30 04:08:42 +0200 <Clinton[m]> @ski:... (full message at <https://libera.ems.host/_matrix/media/r0/download/libera.chat/c92e19c0584fc25777bd17f72a6ddf17bd69…>)
2022-09-30 04:08:43 +0200 <lambdabot> Unknown command, try @list
2022-09-30 04:09:44 +0200Cale(~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com)
2022-09-30 04:11:13 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 268 seconds)
2022-09-30 04:12:01 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 246 seconds)
2022-09-30 04:13:04 +0200beteigeuze(~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Ping timeout: 268 seconds)
2022-09-30 04:13:32 +0200td_(~td@muedsl-82-207-238-058.citykom.de) (Ping timeout: 260 seconds)
2022-09-30 04:14:07 +0200 <ski> (fwiw, there's no need / custom to adorn nicknames with sigils (like `@') on IRC. just mention the nick of the person you wish to address, or reference. in case of the former, e.g. starting the message with the name, followed by a comma or colon, and the rest of the message. most IRC clients will highlight/alert the user when their nick is mentioned first think (iow so with no `@' before it) in the message.
2022-09-30 04:14:13 +0200 <ski> not as many will do it if it occurs otherwhere in the message)
2022-09-30 04:14:24 +0200 <ski> (`@' also happens to already mean something else, on IRC .. namely channel operator)
2022-09-30 04:14:52 +0200 <ski> Clinton[m] : ok, a GADT
2022-09-30 04:15:01 +0200td_(~td@94.134.91.160)
2022-09-30 04:15:07 +0200 <ski> indexed by a datakind
2022-09-30 04:15:34 +0200skiwould probably write `data Alice :: Bob -> * where' (or `Type' in place of `*', if you prefer), there ..
2022-09-30 04:15:47 +0200 <ski> (.. since the name `a' is of no use there)
2022-09-30 04:17:06 +0200 <ski> Clinton[m] : .. did you want to make a pattern synonym for the general type Alice a or for one of the specialized ones, Alice 'Integer resp. Alice 'Text ?
2022-09-30 04:18:21 +0200 <Clinton[m]> Ah, okay, I've just bumped into a separate problem.... (full message at <https://libera.ems.host/_matrix/media/r0/download/libera.chat/ac79b8834810e59ba6bf7b3429df6ded4f25…>)
2022-09-30 04:18:28 +0200 <Clinton[m]> s///, s///
2022-09-30 04:20:03 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-09-30 04:20:03 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-09-30 04:20:03 +0200finn_elijaFinnElija
2022-09-30 04:20:04 +0200mrianbloom(uid350277@id-350277.ilkley.irccloud.com) (Quit: Connection closed for inactivity)
2022-09-30 04:22:44 +0200 <ski> Clinton[m] : you could make a "singleton" type
2022-09-30 04:22:59 +0200 <ski> data BobIs :: Bob -> *
2022-09-30 04:23:01 +0200 <ski> where
2022-09-30 04:23:18 +0200 <ski> IsInteger :: BobIs 'Integer
2022-09-30 04:23:28 +0200 <ski> IsText :: BobIs 'Text
2022-09-30 04:23:34 +0200 <ski> and then you could do
2022-09-30 04:23:42 +0200 <ski> class Chuck (a :: Bob)
2022-09-30 04:23:44 +0200 <ski> where
2022-09-30 04:23:54 +0200 <ski> f :: BobIs a -> Alice a
2022-09-30 04:23:55 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:f03d:9d14:c4b1:e7e0)
2022-09-30 04:24:32 +0200zebrag(~chris@user/zebrag) (Remote host closed the connection)
2022-09-30 04:26:09 +0200 <ski> (called a "singleton" since, for each particular type `a' of kind `Bob', `BobIs a' has just one (total) value .. so you can pass this value, and pattern-match on it, as an ersatz for not being able to pattern-match on a type (`forall') parameter of kind `Bob')
2022-09-30 04:26:27 +0200rockymarine(~rocky@user/rockymarine)
2022-09-30 04:27:01 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 252 seconds)
2022-09-30 04:28:50 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 04:29:54 +0200 <ski> (whereas, `f :: a -> Alice a' wouldn't work, since the latter `a' has, as you noted, kind `Bob', while the former has to be a concrete type (one which is capable of being inhabited, having values), iow having kind `*' (or being an unboxed type or a few more variants))
2022-09-30 04:37:44 +0200LinuxHP-UX
2022-09-30 04:41:31 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 260 seconds)
2022-09-30 04:41:58 +0200 <ski> (so .. `f :: BobIs a -> Alice a' here works as a replacement for the proper dependent type (signature) `f :: (a ::) Bob -> Alice a' (or `f :: foreach (a :: Bob) -> Alice a' in Dependent Haskell syntax, iirc))
2022-09-30 04:45:01 +0200mikoto-chan(~mikoto-ch@2001:999:688:67e8:7b13:7bf9:475:595a) (Ping timeout: 260 seconds)
2022-09-30 04:45:39 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Quit: Lost terminal)
2022-09-30 04:56:11 +0200mikoto-chan(~mikoto-ch@2001:999:588:88d8:9998:df71:a0e0:69a1)
2022-09-30 05:06:56 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 265 seconds)
2022-09-30 05:08:34 +0200vglfr(~vglfr@145.224.100.190) (Ping timeout: 268 seconds)
2022-09-30 05:08:38 +0200 <kiri1606[m]> Hello! I’m trying to understand this piece of code but I’m having a hard time deciphering the last line. `fmap (c:)` followed by `$`…... (full message at <https://libera.ems.host/_matrix/media/r0/download/libera.chat/50eb7698d7a55001eb86a802a721b8e35496…>)
2022-09-30 05:09:06 +0200razetime(~quassel@117.254.35.71)
2022-09-30 05:10:30 +0200 <c_wraith> It's followed by <$> , not $
2022-09-30 05:11:26 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-09-30 05:12:51 +0200 <kiri1606[m]> Oops, that’s what I meant! Yeah i don’t understand what that means here. (I know that <$> is functor application, but i can’t seem to make sense of it here)
2022-09-30 05:13:12 +0200 <kiri1606[m]> * functor application/fmap, but
2022-09-30 05:13:22 +0200rockymarine(~rocky@user/rockymarine)
2022-09-30 05:13:34 +0200 <c_wraith> so, it's a nested fmap. Another way to write that would be fmap (fmap (c:)) (...)
2022-09-30 05:14:01 +0200jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection)
2022-09-30 05:14:03 +0200 <ski> or `(fmap . fmap) (c :) (...)'
2022-09-30 05:14:11 +0200 <c_wraith> so it's applying the function (c:) to a value nested inside two functors
2022-09-30 05:14:26 +0200 <c_wraith> (c:) just prepends the value c to a list.
2022-09-30 05:14:55 +0200 <c_wraith> so basically it's "parse the rest of the expected input, then prepend c to the generated input"
2022-09-30 05:15:23 +0200 <ski> in this case, `fmap . fmap' has type `(String -> String) -> (Maybe (String,String) -> Maybe (String,String))'
2022-09-30 05:15:23 +0200 <kiri1606[m]> Ah,`(fmap . fmap) (c :) (...)' I’m familiar with this, so it’s basically the equivalent of applying a function that’s embedded 2 layers deep ?
2022-09-30 05:15:28 +0200 <c_wraith> yes
2022-09-30 05:15:38 +0200 <ski> the outer functor is `Maybe', the inner is `(String,)'
2022-09-30 05:17:10 +0200 <ski> (so the `String' that's "changed" by `(c :) :: String -> String' here is the second component of the pair .. which is the monadic result, for `Parser'. the first `String' is the remainder of the token (`Char') stream)
2022-09-30 05:17:49 +0200 <kiri1606[m]> Thanks c_wraith ski! It makes sense now. I was a bit confused as i wasn’t sure of the « precedence », like… i thought that <$> was an argument passed to the first fmap
2022-09-30 05:17:50 +0200 <ski> btw, there is no need to say `(c:cs) -> ...', it could just say `c:cs -> ...'
2022-09-30 05:18:02 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 265 seconds)
2022-09-30 05:18:03 +0200 <kiri1606[m]> Gotcha
2022-09-30 05:18:16 +0200 <c_wraith> kiri1606[m]: ah. for reference, infix operators are always lower precedence than prefix function application
2022-09-30 05:18:17 +0200 <ski> yea, function application binds tighter than infix operators
2022-09-30 05:18:33 +0200skilow fours c_wraith
2022-09-30 05:18:47 +0200 <kiri1606[m]> Thanks! That’s a useful tip to keep at the back of my head
2022-09-30 05:18:58 +0200 <DigitalKiwi> i like parens though (aesthetically, so not lisp lol)
2022-09-30 05:19:33 +0200 <kiri1606[m]> * a function on something that’s embedded
2022-09-30 05:19:33 +0200 <ski> (record construction&update binds tigher, though ! .. as do `!',`~',`@' in patterns. and `@' (meaning something else) in expressions)
2022-09-30 05:24:39 +0200zmt01(~zmt00@user/zmt00) (Read error: Connection reset by peer)
2022-09-30 05:25:47 +0200zmt00(~zmt00@user/zmt00)
2022-09-30 05:25:51 +0200nate3(~nate@98.45.169.16) (Ping timeout: 260 seconds)
2022-09-30 05:26:38 +0200tomku(~tomku@user/tomku) (Quit: Lost terminal)
2022-09-30 05:27:14 +0200razetime(~quassel@117.254.35.71) (Ping timeout: 265 seconds)
2022-09-30 05:28:53 +0200tomku(~tomku@user/tomku)
2022-09-30 05:29:47 +0200rockymarine(~rocky@user/rockymarine)
2022-09-30 05:30:56 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 05:34:23 +0200mcglk(~mcglk@131.191.49.120) (Ping timeout: 250 seconds)
2022-09-30 05:35:13 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 252 seconds)
2022-09-30 05:35:26 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
2022-09-30 05:36:39 +0200mcglk(~mcglk@131.191.49.120)
2022-09-30 05:36:42 +0200vglfr(~vglfr@145.224.100.164)
2022-09-30 05:36:49 +0200king_gs(~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5)
2022-09-30 05:36:56 +0200king_gs(~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5) (Client Quit)
2022-09-30 05:42:19 +0200mikoto-chan(~mikoto-ch@2001:999:588:88d8:9998:df71:a0e0:69a1) (Ping timeout: 246 seconds)
2022-09-30 05:44:24 +0200mikoto-chan(~mikoto-ch@2001:999:589:2115:1305:6aca:b6bf:af91)
2022-09-30 05:46:11 +0200Vajb(~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57) (Read error: Connection reset by peer)
2022-09-30 05:47:00 +0200Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi)
2022-09-30 05:47:39 +0200rockymarine(~rocky@user/rockymarine)
2022-09-30 05:50:51 +0200mikoto-chan(~mikoto-ch@2001:999:589:2115:1305:6aca:b6bf:af91) (Ping timeout: 250 seconds)
2022-09-30 05:51:04 +0200nate3(~nate@98.45.169.16)
2022-09-30 05:57:27 +0200nate3(~nate@98.45.169.16) (Ping timeout: 244 seconds)
2022-09-30 06:03:35 +0200Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-09-30 06:04:08 +0200Vajb(~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57)
2022-09-30 06:06:38 +0200razetime(~quassel@117.254.35.71)
2022-09-30 06:10:09 +0200nate3(~nate@98.45.169.16)
2022-09-30 06:15:05 +0200nate3(~nate@98.45.169.16) (Ping timeout: 265 seconds)
2022-09-30 06:32:27 +0200jargon(~jargon@184.101.88.60) (Remote host closed the connection)
2022-09-30 06:32:57 +0200fef(~thedawn@user/thedawn)
2022-09-30 06:36:57 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 258 seconds)
2022-09-30 06:41:11 +0200darkstardevx(~darkstard@192.183.207.94) (Ping timeout: 265 seconds)
2022-09-30 06:53:21 +0200darkstardevx(~darkstard@192.183.207.94)
2022-09-30 06:54:58 +0200darkstardevx(~darkstard@192.183.207.94) (Remote host closed the connection)
2022-09-30 06:55:22 +0200darkstardevx(~darkstard@192.183.207.94)
2022-09-30 06:59:11 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 260 seconds)
2022-09-30 07:09:30 +0200nate3(~nate@98.45.169.16)
2022-09-30 07:13:28 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-30 07:14:59 +0200nate3(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-09-30 07:19:11 +0200Maeda(~Maeda@91-161-10-149.subs.proxad.net) (Quit: leaving)
2022-09-30 07:20:20 +0200chomwitt(~chomwitt@2a02:587:dc14:f500:3759:458b:6e75:9dca)
2022-09-30 07:30:15 +0200FurorLoupGris
2022-09-30 07:32:38 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2022-09-30 07:36:49 +0200tmiller(~tmiller@199.241.26.152) (Quit: WeeChat 3.6)
2022-09-30 07:49:39 +0200michalz(~michalz@185.246.207.221)
2022-09-30 07:53:44 +0200landonf(landonf@mac68k.info) (Quit: ZNC - http://znc.sourceforge.net)
2022-09-30 07:55:14 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 244 seconds)
2022-09-30 07:59:47 +0200nate3(~nate@98.45.169.16)
2022-09-30 08:01:14 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds)
2022-09-30 08:04:27 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-09-30 08:04:45 +0200nate3(~nate@98.45.169.16) (Ping timeout: 250 seconds)
2022-09-30 08:13:51 +0200 <Axman6> Anyone know what the unsafeCoerce# is doing in https://hackage.haskell.org/package/array-0.5.4.0/docs/src/Data.Array.Base.html#thawSTUArray?
2022-09-30 08:16:18 +0200 <Axman6> oh it's converting an IO call into an ST one
2022-09-30 08:16:48 +0200 <Axman6> unsafeCoerce# :: (State# RealWorld -> (# State# RealWorld, Ptr Any #)) -> State# s -> (# State# s, Any #)
2022-09-30 08:20:13 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 08:23:18 +0200king_gs(~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5)
2022-09-30 08:24:31 +0200king_gs(~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5) (Client Quit)
2022-09-30 08:24:35 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 248 seconds)
2022-09-30 08:31:04 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-09-30 08:34:30 +0200Sose(~sose@mobile-access-567367-206.dhcp.inet.fi) (Ping timeout: 244 seconds)
2022-09-30 08:36:06 +0200acidjnk_new(~acidjnk@p200300d6e7137a84319f91f8881062b6.dip0.t-ipconnect.de)
2022-09-30 08:38:38 +0200ellensol(~ellen@ua-84-216-129-63.bbcust.telenor.se)
2022-09-30 08:39:46 +0200gmg(~user@user/gehmehgeh)
2022-09-30 08:42:56 +0200joeyh(joeyh@2600:3c03::f03c:91ff:fe73:b0d2) (Ping timeout: 255 seconds)
2022-09-30 08:45:06 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-09-30 08:45:58 +0200ft(~ft@p3e9bc57b.dip0.t-ipconnect.de) (Quit: leaving)
2022-09-30 08:49:26 +0200rockymarine(~rocky@user/rockymarine)
2022-09-30 08:52:44 +0200Sose(~sose@mobile-access-567367-206.dhcp.inet.fi)
2022-09-30 08:54:39 +0200glguy(~glguy@libera/staff-emeritus/glguy) (Ping timeout: 244 seconds)
2022-09-30 08:55:39 +0200mncheck(~mncheck@193.224.205.254)
2022-09-30 08:57:08 +0200glguy(~glguy@libera/staff-emeritus/glguy)
2022-09-30 08:59:12 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 264 seconds)
2022-09-30 09:02:03 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:255f:4d0:bef0:41ba)
2022-09-30 09:02:55 +0200glguy(~glguy@libera/staff-emeritus/glguy) (Ping timeout: 244 seconds)
2022-09-30 09:04:02 +0200rockymarine(~rocky@user/rockymarine)
2022-09-30 09:04:24 +0200cfricke(~cfricke@user/cfricke)
2022-09-30 09:05:13 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-30 09:06:21 +0200MajorBiscuit(~MajorBisc@c-001-026-007.client.tudelft.eduvpn.nl)
2022-09-30 09:10:02 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 265 seconds)
2022-09-30 09:11:53 +0200king_gs(~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5)
2022-09-30 09:13:12 +0200fserucas(~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7)
2022-09-30 09:14:15 +0200king_gs(~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5) (Client Quit)
2022-09-30 09:15:53 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-09-30 09:18:45 +0200ellensol(~ellen@ua-84-216-129-63.bbcust.telenor.se) (Read error: Connection reset by peer)
2022-09-30 09:22:08 +0200glguy(~glguy@libera/staff-emeritus/glguy)
2022-09-30 09:24:24 +0200acidjnk_new(~acidjnk@p200300d6e7137a84319f91f8881062b6.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2022-09-30 09:27:18 +0200acidjnk_new(~acidjnk@p200300d6e7137a84319f91f8881062b6.dip0.t-ipconnect.de)
2022-09-30 09:32:25 +0200nate3(~nate@98.45.169.16)
2022-09-30 09:34:16 +0200 <maerwald> wow... ghci core dumps on alpine 3.15
2022-09-30 09:36:27 +0200tcard_(~tcard@p696070-ipngn8501hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving)
2022-09-30 09:36:42 +0200mixfix41(~sdeny9ee@user/mixfix41)
2022-09-30 09:37:13 +0200nate3(~nate@98.45.169.16) (Ping timeout: 252 seconds)
2022-09-30 09:39:41 +0200nschoe(~quassel@141.101.51.197)
2022-09-30 09:42:55 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Ping timeout: 265 seconds)
2022-09-30 09:42:57 +0200tcard(~tcard@p696070-ipngn8501hodogaya.kanagawa.ocn.ne.jp)
2022-09-30 09:44:20 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf)
2022-09-30 09:46:17 +0200ellensol(~ellen@emp-95-224.eduroam.uu.se)
2022-09-30 09:47:42 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 09:49:51 +0200shriekingnoise(~shrieking@186.137.167.202) (Quit: Quit)
2022-09-30 09:51:31 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Ping timeout: 248 seconds)
2022-09-30 09:52:03 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 248 seconds)
2022-09-30 09:52:18 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf)
2022-09-30 09:53:04 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2022-09-30 09:56:10 +0200waldo(~waldo@user/waldo)
2022-09-30 09:57:29 +0200kenran(~user@user/kenran)
2022-09-30 09:58:02 +0200akegalj(~akegalj@93-139-186-42.adsl.net.t-com.hr)
2022-09-30 09:58:34 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-09-30 10:00:22 +0200k8yun(~k8yun@user/k8yun) (Quit: Leaving)
2022-09-30 10:03:37 +0200razetime(~quassel@117.254.35.71) (Ping timeout: 252 seconds)
2022-09-30 10:08:10 +0200titibandit(~titibandi@xdsl-212-8-150-57.nc.de)
2022-09-30 10:08:21 +0200paddymahoney(~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com)
2022-09-30 10:09:45 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com)
2022-09-30 10:11:12 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 10:15:37 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 250 seconds)
2022-09-30 10:16:19 +0200 <kenran> okay, another day, another (last) try to manhandle the named pipes problem I had yesterday :D I could just go the domain socket route instead, but I _need_ to know whether I'm just making mistakes or there could really be an OS bug involved somewhere.
2022-09-30 10:16:44 +0200 <[exa]> kenran: what's the issue?
2022-09-30 10:17:37 +0200 <[exa]> btw y u no domain sockets?
2022-09-30 10:20:57 +0200razetime(~quassel@117.254.35.71)
2022-09-30 10:28:49 +0200 <probie> kenran: how are you reading from the named pipes? Off memory things like Data.ByteString.readFile don't work
2022-09-30 10:29:22 +0200hsw__(~hsw@112-104-87-196.adsl.dynamic.seed.net.tw) (Quit: Leaving)
2022-09-30 10:29:37 +0200hsw(~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net)
2022-09-30 10:32:10 +0200 <dr_merijn> probie: Well, it does, just, like, probably not what you'd expect if you don't know what's happening underneath :p
2022-09-30 10:34:13 +0200frost(~frost@user/frost) (Quit: Client closed)
2022-09-30 10:34:55 +0200kenran(~user@user/kenran) (Remote host closed the connection)
2022-09-30 10:34:59 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:f03d:9d14:c4b1:e7e0) (Remote host closed the connection)
2022-09-30 10:35:24 +0200kenran(~user@user/kenran)
2022-09-30 10:35:53 +0200kuribas(~user@ptr-17d51emgkkoi3ymbxyx.18120a2.ip6.access.telenet.be)
2022-09-30 10:44:21 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-30 10:46:13 +0200mixfix41(~sdeny9ee@user/mixfix41) (Ping timeout: 265 seconds)
2022-09-30 10:46:38 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-09-30 10:48:20 +0200califax(~califax@user/califx)
2022-09-30 10:52:02 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2022-09-30 10:52:56 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 10:57:24 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 264 seconds)
2022-09-30 10:57:24 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Ping timeout: 264 seconds)
2022-09-30 10:58:47 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf)
2022-09-30 11:00:15 +0200steve[m]1(~stevetrou@2001:470:69fc:105::e0b) (Quit: You have been kicked for being idle)
2022-09-30 11:14:11 +0200zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-09-30 11:22:05 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-09-30 11:23:02 +0200zaquest(~notzaques@5.130.79.72)
2022-09-30 11:25:21 +0200Sose(~sose@mobile-access-567367-206.dhcp.inet.fi) (Ping timeout: 268 seconds)
2022-09-30 11:26:45 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2022-09-30 11:27:58 +0200wonko(~wjc@2a0e:1c80:11::50)
2022-09-30 11:28:13 +0200Sose(~sose@mobile-access-567367-206.dhcp.inet.fi)
2022-09-30 11:31:36 +0200razetime(~quassel@117.254.35.71) (Ping timeout: 260 seconds)
2022-09-30 11:31:42 +0200razetime_(~quassel@117.254.35.71)
2022-09-30 11:32:38 +0200CiaoSen(~Jura@p200300c957332e002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-09-30 11:35:28 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:f03d:9d14:c4b1:e7e0)
2022-09-30 11:37:34 +0200wonko(~wjc@2a0e:1c80:11::50) (Ping timeout: 246 seconds)
2022-09-30 11:39:00 +0200wonko(~wjc@2a0e:1c80:11::50)
2022-09-30 11:39:59 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:f03d:9d14:c4b1:e7e0) (Ping timeout: 244 seconds)
2022-09-30 11:46:28 +0200wonko(~wjc@2a0e:1c80:11::50) (Changing host)
2022-09-30 11:46:28 +0200wonko(~wjc@user/wonko)
2022-09-30 11:46:38 +0200nschoe(~quassel@141.101.51.197) (Ping timeout: 265 seconds)
2022-09-30 11:52:23 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 244 seconds)
2022-09-30 11:59:31 +0200wonko(~wjc@user/wonko) (Ping timeout: 248 seconds)
2022-09-30 11:59:54 +0200wonko(~wjc@2a0e:1c80:11::50)
2022-09-30 12:00:02 +0200acidjnk(~acidjnk@p200300d6e7137a8424c1978e90463b18.dip0.t-ipconnect.de)
2022-09-30 12:00:29 +0200waldo(~waldo@user/waldo) (Ping timeout: 250 seconds)
2022-09-30 12:01:09 +0200nate3(~nate@98.45.169.16)
2022-09-30 12:01:40 +0200acidjnk_new(~acidjnk@p200300d6e7137a84319f91f8881062b6.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-09-30 12:01:41 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Quit: WeeChat 3.6)
2022-09-30 12:02:06 +0200hpc(~juzz@ip98-169-32-242.dc.dc.cox.net) (Ping timeout: 265 seconds)
2022-09-30 12:02:40 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2022-09-30 12:03:34 +0200hpc(~juzz@ip98-169-32-242.dc.dc.cox.net)
2022-09-30 12:05:59 +0200nate3(~nate@98.45.169.16) (Ping timeout: 265 seconds)
2022-09-30 12:06:36 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 260 seconds)
2022-09-30 12:10:07 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 252 seconds)
2022-09-30 12:12:30 +0200luffy(~chenqisu1@183.217.201.220)
2022-09-30 12:13:38 +0200__monty__(~toonn@user/toonn)
2022-09-30 12:26:05 +0200DavidBinder(~DavidBind@134.2.10.18)
2022-09-30 12:27:44 +0200waldo(~waldo@user/waldo)
2022-09-30 12:28:51 +0200CiaoSen(~Jura@p200300c957332e002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2022-09-30 12:30:50 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 12:33:10 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2022-09-30 12:33:13 +0200ellensol(~ellen@emp-95-224.eduroam.uu.se) (Ping timeout: 246 seconds)
2022-09-30 12:34:00 +0200luffy(~chenqisu1@183.217.201.220) (Ping timeout: 265 seconds)
2022-09-30 12:35:12 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 260 seconds)
2022-09-30 12:35:23 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-09-30 12:36:54 +0200fef(~thedawn@user/thedawn) (Ping timeout: 258 seconds)
2022-09-30 12:37:52 +0200Sose(~sose@mobile-access-567367-206.dhcp.inet.fi) (Ping timeout: 244 seconds)
2022-09-30 12:42:21 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2022-09-30 12:42:46 +0200Sose(~sose@mobile-access-567367-206.dhcp.inet.fi)
2022-09-30 12:43:41 +0200 <dminuoso> Given an UDP protocol where a single protocol data unit will never exceed a single UDP segment, is there any real benefit to using `binary` over just a handwritten Get/Put that work on a static single bytestring?
2022-09-30 12:44:58 +0200CiaoSen(~Jura@p200300c957332e002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-09-30 12:45:04 +0200 <dminuoso> The more I think about it, the only reason for its existence is to work with lazy bytestrings
2022-09-30 12:45:25 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 12:45:34 +0200gmg(~user@user/gehmehgeh)
2022-09-30 12:48:38 +0200ellensol(~ellen@emp-95-224.eduroam.uu.se)
2022-09-30 12:49:40 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 246 seconds)
2022-09-30 12:53:10 +0200ellensol(~ellen@emp-95-224.eduroam.uu.se) (Ping timeout: 246 seconds)
2022-09-30 12:57:15 +0200ellensol(~ellen@emp-95-224.eduroam.uu.se)
2022-09-30 12:59:12 +0200wonko(~wjc@2a0e:1c80:11::50) (Ping timeout: 264 seconds)
2022-09-30 13:01:37 +0200ellensol(~ellen@emp-95-224.eduroam.uu.se) (Ping timeout: 244 seconds)
2022-09-30 13:02:02 +0200Midjak(~Midjak@82.66.147.146) (Ping timeout: 265 seconds)
2022-09-30 13:02:30 +0200Pickchea(~private@user/pickchea)
2022-09-30 13:04:34 +0200xff0x(~xff0x@2405:6580:b080:900:b7c1:3130:710b:2a7f)
2022-09-30 13:04:58 +0200waleee(~waleee@192.165.44.49)
2022-09-30 13:09:10 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-09-30 13:09:59 +0200Lycurgus(~juan@user/Lycurgus)
2022-09-30 13:10:20 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 13:14:33 +0200talismanick(~talismani@2601:200:c100:c9e0::24ac) (Ping timeout: 244 seconds)
2022-09-30 13:14:58 +0200 <jackdk> I don't like `binary` because it has some dicey instances for Double: https://github.com/kolmodin/binary/issues/69
2022-09-30 13:15:06 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
2022-09-30 13:15:45 +0200Sose(~sose@mobile-access-567367-206.dhcp.inet.fi) (Ping timeout: 252 seconds)
2022-09-30 13:17:19 +0200mncheck(~mncheck@193.224.205.254) (Write error: Connection reset by peer)
2022-09-30 13:17:57 +0200 <dr_merijn> binary the package is great
2022-09-30 13:18:01 +0200 <dr_merijn> Binary the class is trash
2022-09-30 13:18:25 +0200 <dr_merijn> You should never use the Binary class for anything but throwaway prototypes and even *then*
2022-09-30 13:19:12 +0200Sose(~sose@mobile-access-567367-206.dhcp.inet.fi)
2022-09-30 13:19:34 +0200 <dminuoso> Fair, I think Ill roll my own eventually though. There's just nothing in `binary` I care about, its just an extra dependency.
2022-09-30 13:19:44 +0200 <dr_merijn> The Binary class introduces it's own (non-futureproof) custom padding/tagging scheme which means you can't use it for data you intend to parse outside Haskell anyway, and for data parsed by Haskell it's bad if you ever intend to read old data
2022-09-30 13:19:56 +0200 <dr_merijn> You should always just use explicit Get/Put
2022-09-30 13:20:08 +0200 <dr_merijn> (for stuff you care about, anyway)
2022-09-30 13:20:09 +0200 <dminuoso> Sure, I mean Im using non-classes with it right now
2022-09-30 13:20:57 +0200 <dr_merijn> dminuoso: That was mostly wrt to jackdk's comments
2022-09-30 13:20:57 +0200 <dminuoso> Unrelatedly, for a datatype of unary constructors, is there a way to get the boxed value out as a Dynamic?
2022-09-30 13:21:01 +0200 <dminuoso> dr_merijn: Ah fair enough.
2022-09-30 13:21:18 +0200Sose(~sose@mobile-access-567367-206.dhcp.inet.fi) (Remote host closed the connection)
2022-09-30 13:21:32 +0200 <dr_merijn> The Double issues are only for the Binary class, getDoublebe etc. all just do "what you'd expect"
2022-09-30 13:21:40 +0200Sose(~sose@mobile-access-567367-206.dhcp.inet.fi)
2022-09-30 13:22:33 +0200 <dminuoso> Given that Im doing protocol decoding, Im checking their internal behavior irrespetive of my expectations. :P
2022-09-30 13:23:37 +0200 <dr_merijn> dminuoso: getDouble/getFloat just use the standard 4/8 byte IEEE-754 encoding
2022-09-30 13:23:46 +0200meinside(uid24933@id-24933.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2022-09-30 13:23:50 +0200 <dr_merijn> Which is the obvious sensible thing to do
2022-09-30 13:24:20 +0200 <dminuoso> yeah I read the bug report, its a bit weird
2022-09-30 13:25:17 +0200 <dminuoso> Speaking of things that are annoying and wrong, these belong right in there:
2022-09-30 13:25:22 +0200 <dminuoso> attoparsec: decimal :: Integral a => Parser a
2022-09-30 13:25:29 +0200 <dminuoso> megaparsec: decimal :: forall e s m a . (MonadParsec e s m, Token s ~ Word8, Num a) => m a
2022-09-30 13:26:16 +0200 <dminuoso> These should in addition deserve a Bounded constraint.
2022-09-30 13:26:31 +0200acidjnk(~acidjnk@p200300d6e7137a8424c1978e90463b18.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-09-30 13:27:22 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-09-30 13:29:34 +0200ellensol(~ellen@emp-95-224.eduroam.uu.se)
2022-09-30 13:33:36 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 13:38:17 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
2022-09-30 13:40:06 +0200ft(~ft@p3e9bc57b.dip0.t-ipconnect.de)
2022-09-30 13:43:58 +0200lyle(~lyle@104.246.145.85)
2022-09-30 13:44:08 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-09-30 13:46:58 +0200acidjnk(~acidjnk@p200300d6e7137a84917195bd27e414df.dip0.t-ipconnect.de)
2022-09-30 13:49:19 +0200Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt juan@acm.org)
2022-09-30 13:51:30 +0200Sose(~sose@mobile-access-567367-206.dhcp.inet.fi) (Ping timeout: 268 seconds)
2022-09-30 13:53:02 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-30 13:56:21 +0200Sose(~sose@mobile-access-567367-206.dhcp.inet.fi)
2022-09-30 13:58:36 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 264 seconds)
2022-09-30 14:00:14 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 14:01:50 +0200notzmv(~zmv@user/notzmv)
2022-09-30 14:01:59 +0200faultline(~christian@200116b82b18a100216c022468c65178.dip.versatel-1u1.de)
2022-09-30 14:03:24 +0200Sose(~sose@mobile-access-567367-206.dhcp.inet.fi) (Ping timeout: 264 seconds)
2022-09-30 14:05:01 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 260 seconds)
2022-09-30 14:06:00 +0200faultline(~christian@200116b82b18a100216c022468c65178.dip.versatel-1u1.de) (Remote host closed the connection)
2022-09-30 14:10:18 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-09-30 14:11:52 +0200Sose(~sose@mobile-access-567367-206.dhcp.inet.fi)
2022-09-30 14:13:34 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
2022-09-30 14:17:53 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-09-30 14:19:57 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2022-09-30 14:20:08 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 14:24:41 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds)
2022-09-30 14:29:02 +0200 <dr_merijn> Athas: Doing the lord's work with that XDG support, so I don't have to but can still make my config portable across environments :>
2022-09-30 14:32:12 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Ping timeout: 264 seconds)
2022-09-30 14:35:41 +0200yvan-sraka(~yvan-srak@37.173.255.198)
2022-09-30 14:37:09 +0200ellensol(~ellen@emp-95-224.eduroam.uu.se) (Ping timeout: 252 seconds)
2022-09-30 14:37:19 +0200wonko(~wjc@2a0e:1c80:11::50)
2022-09-30 14:39:39 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 14:40:01 +0200Sose(~sose@mobile-access-567367-206.dhcp.inet.fi) (Ping timeout: 260 seconds)
2022-09-30 14:41:34 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf)
2022-09-30 14:42:15 +0200jpds1(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 258 seconds)
2022-09-30 14:43:15 +0200wonko(~wjc@2a0e:1c80:11::50) (Ping timeout: 268 seconds)
2022-09-30 14:43:42 +0200jpds1(~jpds@gateway/tor-sasl/jpds)
2022-09-30 14:43:46 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 246 seconds)
2022-09-30 14:49:10 +0200Cerins(~Cerins@balticom-142-106-43.balticom.lv)
2022-09-30 14:51:04 +0200gmg(~user@user/gehmehgeh) (Ping timeout: 258 seconds)
2022-09-30 14:52:13 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds)
2022-09-30 14:53:23 +0200ec(~ec@gateway/tor-sasl/ec)
2022-09-30 14:53:44 +0200gmg(~user@user/gehmehgeh)
2022-09-30 14:54:39 +0200ellensol(~ellen@emp-95-224.eduroam.uu.se)
2022-09-30 14:55:10 +0200yvan-sraka(~yvan-srak@37.173.255.198) (Ping timeout: 252 seconds)
2022-09-30 15:00:27 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 15:02:03 +0200ellensol(~ellen@emp-95-224.eduroam.uu.se) (Ping timeout: 250 seconds)
2022-09-30 15:02:38 +0200joeyh(~joeyh@kitenet.net)
2022-09-30 15:07:10 +0200califax(~califax@user/califx) (Read error: Connection reset by peer)
2022-09-30 15:07:10 +0200jpds1(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-09-30 15:07:10 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2022-09-30 15:07:35 +0200jpds1(~jpds@gateway/tor-sasl/jpds)
2022-09-30 15:08:19 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds)
2022-09-30 15:09:26 +0200califax(~califax@user/califx)
2022-09-30 15:09:44 +0200Sose(~sose@mobile-access-567367-206.dhcp.inet.fi)
2022-09-30 15:10:43 +0200gmg(~user@user/gehmehgeh)
2022-09-30 15:14:09 +0200Sose(~sose@mobile-access-567367-206.dhcp.inet.fi) (Client Quit)
2022-09-30 15:14:27 +0200califax(~califax@user/califx) (Ping timeout: 258 seconds)
2022-09-30 15:14:30 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 15:16:24 +0200expipiplus1(~expipiplu@2001:470:69fc:105::d713)
2022-09-30 15:17:32 +0200califax(~califax@user/califx)
2022-09-30 15:18:34 +0200ellensol(~ellen@emp-95-224.eduroam.uu.se)
2022-09-30 15:18:57 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds)
2022-09-30 15:23:23 +0200ellensol(~ellen@emp-95-224.eduroam.uu.se) (Ping timeout: 268 seconds)
2022-09-30 15:25:34 +0200akegalj(~akegalj@93-139-186-42.adsl.net.t-com.hr) (Quit: leaving)
2022-09-30 15:28:59 +0200zebrag(~chris@user/zebrag)
2022-09-30 15:29:07 +0200kuribas(~user@ptr-17d51emgkkoi3ymbxyx.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
2022-09-30 15:29:23 +0200yvan-sraka(~yvan-srak@37.173.255.198)
2022-09-30 15:31:38 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-09-30 15:32:48 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-09-30 15:33:32 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-09-30 15:36:14 +0200razetime_(~quassel@117.254.35.71) (Ping timeout: 265 seconds)
2022-09-30 15:36:36 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:255f:4d0:bef0:41ba) (Quit: WeeChat 2.8)
2022-09-30 15:39:11 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:b833:229b:a9d8:c346)
2022-09-30 15:41:42 +0200ellensol(~ellen@emp-95-224.eduroam.uu.se)
2022-09-30 15:43:37 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:b833:229b:a9d8:c346) (Ping timeout: 246 seconds)
2022-09-30 15:44:21 +0200jpds1(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 258 seconds)
2022-09-30 15:47:02 +0200jpds1(~jpds@gateway/tor-sasl/jpds)
2022-09-30 15:50:25 +0200razetime(~quassel@117.254.35.71)
2022-09-30 15:50:36 +0200ellensol(~ellen@emp-95-224.eduroam.uu.se) (Ping timeout: 260 seconds)
2022-09-30 15:54:22 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-09-30 15:54:22 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-09-30 15:54:22 +0200wroathe(~wroathe@user/wroathe)
2022-09-30 15:59:56 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 16:00:42 +0200xd1le(~xd1le@user/xd1le)
2022-09-30 16:01:10 +0200ellensol(~ellen@ua-84-216-129-63.bbcust.telenor.se)
2022-09-30 16:01:38 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.6)
2022-09-30 16:02:13 +0200xd1le(~xd1le@user/xd1le) ()
2022-09-30 16:02:40 +0200nate3(~nate@98.45.169.16)
2022-09-30 16:04:00 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 244 seconds)
2022-09-30 16:04:18 +0200ellensol(~ellen@ua-84-216-129-63.bbcust.telenor.se) (Read error: Connection reset by peer)
2022-09-30 16:06:21 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-30 16:06:35 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 244 seconds)
2022-09-30 16:06:41 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-09-30 16:07:12 +0200 <ozkutuk> Is there any tutorial/guide on how to use SYB? I could only find this 2003 paper, but I don't if it's even relevant anymore
2022-09-30 16:07:40 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-09-30 16:07:47 +0200nate3(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-09-30 16:07:56 +0200yvan-sraka(~yvan-srak@37.173.255.198) (Remote host closed the connection)
2022-09-30 16:10:21 +0200 <davean> ozkutuk: A paper is the expression of the idea. If its not relevant anymore than SYB isn't relevant anymore.
2022-09-30 16:11:02 +0200califax(~califax@user/califx)
2022-09-30 16:11:24 +0200 <davean> That doesn't mean the code in the paper ever matches the code in the package, because papers try to focus on the core of the idea, not the details of a particular implimentation
2022-09-30 16:11:34 +0200 <davean> Those details fall inside the realm of just programming though.
2022-09-30 16:15:45 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-09-30 16:18:13 +0200 <ChaiTRex> Does anyone know what terminal line editing library GHCi uses for letting people edit while composing a line to be evaluated?
2022-09-30 16:18:25 +0200 <ozkutuk> davean: Well, yes, I certainly do find papers valuable in that regard. It is just that I am looking for a more "practical" material, for the lack of a better term
2022-09-30 16:18:55 +0200califax(~califax@user/califx)
2022-09-30 16:19:00 +0200 <davean> The paper should allow you to produce your own implimentation, if you can produce your own implimentation using an existing one should be trivial.
2022-09-30 16:19:42 +0200ellensol(~ellen@emp-95-224.eduroam.uu.se)
2022-09-30 16:19:49 +0200shriekingnoise(~shrieking@186.137.167.202)
2022-09-30 16:19:52 +0200 <dr_merijn> ChaiTRex: ghci uses haskeline
2022-09-30 16:19:53 +0200gustik(~gustik@2a01:c844:2457:2220:475d:34f:d571:996f)
2022-09-30 16:20:08 +0200 <dr_merijn> @hackage haskeline
2022-09-30 16:20:09 +0200 <lambdabot> https://hackage.haskell.org/package/haskeline
2022-09-30 16:20:21 +0200 <ChaiTRex> dr_merijn: Thanks.
2022-09-30 16:20:41 +0200 <dr_merijn> ChaiTRex: It's pretty easy to use, I managed to implemented something with interactive database-based auto completion
2022-09-30 16:20:44 +0200 <dr_merijn> Pretty neat
2022-09-30 16:23:04 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 16:24:14 +0200 <ozkutuk> davean: Right. Either way reading the paper is probably a good idea, I think I'll do that. Thanks
2022-09-30 16:24:29 +0200 <ChaiTRex> dr_merijn: I found that using ANSI escape sequences messed up the line editor's idea of where the cursor was on the screen relative to the characters it inserted. Searched GitHub and found that it needs \STX after each ANSI sequence.
2022-09-30 16:25:37 +0200 <geekosaur> are you on an M1/M2 Mac by any chance?
2022-09-30 16:27:17 +0200 <EvanR> haskell line has 3 l's and haskeline lost two of them?
2022-09-30 16:27:28 +0200ellensol(~ellen@emp-95-224.eduroam.uu.se) (Ping timeout: 265 seconds)
2022-09-30 16:27:54 +0200ellensol(~ellen@emp-95-224.eduroam.uu.se)
2022-09-30 16:28:15 +0200 <ChaiTRex> geekosaur: If you mean me, no, I'm on Ubuntu.
2022-09-30 16:29:02 +0200 <geekosaur> interesting. haskeline has generally worked for me on various platforms, but has a bug in M1/M2 macs because of a mis-declared FFI call
2022-09-30 16:29:23 +0200 <geekosaur> whoch leads among other things to corrupted lines
2022-09-30 16:31:27 +0200Guest60(~Guest60@2400:1a00:b011:ad4b:5555:45e3:e613:a20f)
2022-09-30 16:31:33 +0200 <ChaiTRex> This was due to haskeline's claim that it can't detect the end of ANSI escape sequences (presumably it would be a lot of work to include all of the details), and so \STX is used as the indication that one just ended. My colorful GHCi prompt finally works.
2022-09-30 16:32:21 +0200 <ChaiTRex> https://github.com/judah/haskeline/wiki/ControlSequencesInPrompt
2022-09-30 16:33:17 +0200 <geekosaur> oh, that kind of problem, not general issues
2022-09-30 16:33:24 +0200 <geekosaur> that makes more sense
2022-09-30 16:33:46 +0200 <geekosaur> although I'd expect it to be able to detect escape sequences reliably, ANSI sequences are very structured
2022-09-30 16:34:13 +0200 <geekosaur> (when I started out I worked with a lot of pre-ANSI terminals, those sucked a lot)
2022-09-30 16:34:55 +0200 <Guest60> Hi all, is it possible to create list from my algebraic data types?
2022-09-30 16:34:56 +0200 <Guest60> Example:
2022-09-30 16:34:57 +0200 <Guest60> data MakeMeAList = One | Two | Three | Four | Five
2022-09-30 16:34:57 +0200 <Guest60> listMaker :: [MakeMeAList]
2022-09-30 16:34:58 +0200 <Guest60> listMaker =
2022-09-30 16:34:58 +0200 <Guest60>     -- ????
2022-09-30 16:36:14 +0200 <geekosaur> derive Enum and Bounded and use [minBound .. maxBound]
2022-09-30 16:36:15 +0200xstill_(xstill@fimu/xstill) (Quit: Ping timeout (120 seconds))
2022-09-30 16:36:20 +0200 <ChaiTRex> Guest60: Yes, you can just write something like `[One, Two, Five, Three]`.
2022-09-30 16:36:52 +0200 <geekosaur> @let data MakeMeAList = One | Two | Three | Four | Five deriving (Enum, Bounded)
2022-09-30 16:36:54 +0200 <lambdabot> Defined.
2022-09-30 16:37:10 +0200CiaoSen(~Jura@p200300c957332e002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2022-09-30 16:37:15 +0200 <geekosaur> > [minBound .. maxBound :: MakeMeAList]
2022-09-30 16:37:16 +0200 <lambdabot> error:
2022-09-30 16:37:16 +0200 <lambdabot> • No instance for (Show MakeMeAList)
2022-09-30 16:37:16 +0200 <lambdabot> arising from a use of ‘show_M71299666854855747388’
2022-09-30 16:37:25 +0200 <geekosaur> @let data MakeMeAList = One | Two | Three | Four | Five deriving (Enum, Bounded, Show)
2022-09-30 16:37:26 +0200 <lambdabot> /sandbox/tmp/.L.hs:202:1: error:
2022-09-30 16:37:26 +0200 <lambdabot> Multiple declarations of ‘MakeMeAList’
2022-09-30 16:37:26 +0200 <lambdabot> Declared at: /sandbox/tmp/.L.hs:195:1
2022-09-30 16:37:30 +0200 <geekosaur> @undefine
2022-09-30 16:37:30 +0200 <lambdabot> Undefined.
2022-09-30 16:37:33 +0200 <geekosaur> @let data MakeMeAList = One | Two | Three | Four | Five deriving (Enum, Bounded, Show)
2022-09-30 16:37:34 +0200 <lambdabot> Defined.
2022-09-30 16:37:36 +0200ellensol(~ellen@emp-95-224.eduroam.uu.se) (Ping timeout: 265 seconds)
2022-09-30 16:37:37 +0200 <geekosaur> > [minBound .. maxBound :: MakeMeAList]
2022-09-30 16:37:39 +0200 <lambdabot> [One,Two,Three,Four,Five]
2022-09-30 16:37:52 +0200xstill_(xstill@fimu/xstill)
2022-09-30 16:38:20 +0200 <EvanR> \o/
2022-09-30 16:39:22 +0200 <Guest60> ChaiTRex if do that then, i'll have to update my list maker everytime i update `MakeMeAList` which im trying to avoid.
2022-09-30 16:39:40 +0200 <ChaiTRex> What is the function supposed to return?
2022-09-30 16:39:58 +0200 <Guest60> geekosaur thanks a lot, it helped
2022-09-30 16:40:31 +0200FragByte(~christian@user/fragbyte) (Quit: Quit)
2022-09-30 16:40:42 +0200 <Guest60> ChaiTRex i want it to return list of `MakeMeAList`, eg `listMaker :: [MakeMeAList]`
2022-09-30 16:41:17 +0200 <geekosaur> "list of" doesn't actually help much. "a list of all" would be what I did, but "list if" covers a lot of possibilities
2022-09-30 16:42:30 +0200FragByte(~christian@user/fragbyte)
2022-09-30 16:43:53 +0200waleee(~waleee@192.165.44.49) (Ping timeout: 265 seconds)
2022-09-30 16:44:52 +0200 <Guest60> Forgive my wrong usage of terms, im coming from imperative world and getting my feet wet in haskell for the first time.
2022-09-30 16:44:53 +0200 <Guest60> Yes list of all elements of `MakeMeAList` type. geekosaur
2022-09-30 16:46:16 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-09-30 16:46:28 +0200kenran(~user@user/kenran) (Remote host closed the connection)
2022-09-30 16:46:46 +0200jakalx(~jakalx@base.jakalx.net)
2022-09-30 16:46:59 +0200 <EvanR> to a first approximation, data types are nouns while functions are verbs. Since classes tend to be NounVerbers it can be tough to disentangle. But these all have counterexamples, YMMV
2022-09-30 16:47:38 +0200 <ski> (fwiw, functional vs. imperative doesn't factor into that. people in imperative world would have just as much trouble trying to figure out which elements you wanted in your list)
2022-09-30 16:48:10 +0200Midjak(~Midjak@82.66.147.146)
2022-09-30 16:48:43 +0200 <geekosaur> right, it was just an unclear question. I assumed froim the `MakeMeAList` that you wanted a list of all values, but could easily have been wrong
2022-09-30 16:51:25 +0200 <EvanR> data NumbersFive = One | Two | Three | Four | Five deriving (Enum, Bounded, Show)
2022-09-30 16:51:47 +0200 <ski> various different approaches to (or info on) generic programming (in rough order of appearance, iirc) :
2022-09-30 16:51:53 +0200 <ski> Patrik Jansson's page : <https://www.cse.chalmers.se/~patrikj/poly/>
2022-09-30 16:51:59 +0200 <ski> Scrap Your Boilerplate (SYB) : <https://hackage.haskell.org/package/syb>,<https://wiki.haskell.org/Scrap_your_boilerplate>,<https://wiki.haskell.org/Applications_and_libraries/Generic_programming/SyB>
2022-09-30 16:52:09 +0200 <ski> `GHC.Generics' : <https://wiki.haskell.org/GHC.Generics>,<https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/generics.html>
2022-09-30 16:52:15 +0200 <ski> Compositional Data Types (compdata) : <https://hackage.haskell.org/package/compdata>
2022-09-30 16:52:22 +0200 <ski> Compos (almost compositional functions over recursive data types) : <https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.233.3357>
2022-09-30 16:52:35 +0200 <ski> Uniplate :
2022-09-30 16:52:35 +0200 <ski> <https://hackage.haskell.org/package/uniplate>,<https://wiki.haskell.org/Uniplate>,<https://web.archive.org/web/20180702150456/http://community.haskell.org/~ndm/uniplate/>,<https://www.cs.york.ac.uk/fp/darcs/uniplate/uniplate.htm>,<https://www.cs.york.ac.uk/fp/haddock/uniplate/>,<http://neilmitchell.blogspot.com/2007/06/boilerplate-considered-harmful-uniplate.html>,<https://ndmitchell.com/>,<https://hackage.h
2022-09-30 16:52:41 +0200 <ski> askell.org/package/lens-4.15.4/docs/Control-Lens-Plated.html>
2022-09-30 16:52:42 +0200 <ski> ozkutuk ^
2022-09-30 16:52:45 +0200 <ski> Multiplate : <https://hackage.haskell.org/package/multiplate>,<https://wiki.haskell.org/Multiplate>
2022-09-30 16:53:03 +0200 <ski> (hm, maybe `GHC.Generics' was a bit later ..)
2022-09-30 16:55:03 +0200 <EvanR> makeMeAllList = [minBound .. maxBound] but since this isn't actually a function could just be called
2022-09-30 16:55:10 +0200 <EvanR> allTheThings = [minBound .. maxBound]
2022-09-30 16:55:37 +0200 <ski> (sometimes called `universe' or `finiteUniverse', i think)
2022-09-30 16:56:12 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2022-09-30 16:59:15 +0200 <EvanR> I guess the haskell equivalent of a noun verber is a module
2022-09-30 16:59:45 +0200 <EvanR> or maybe a thread
2022-09-30 17:00:21 +0200 <davean> I've lost the analogy
2022-09-30 17:00:53 +0200 <EvanR> anti analogy of what tense to use for naming things
2022-09-30 17:00:56 +0200 <davean> I mean a datatype is a calculation?
2022-09-30 17:01:10 +0200 <davean> unless by verb you mean externally visible actions?
2022-09-30 17:01:20 +0200 <davean> I'm so lost
2022-09-30 17:01:21 +0200 <EvanR> grammar
2022-09-30 17:01:29 +0200 <EvanR> MakeMeAList
2022-09-30 17:01:46 +0200 <EvanR> seems especially odd
2022-09-30 17:01:48 +0200 <davean> type MakeMeAList a = [a]
2022-09-30 17:02:05 +0200 <EvanR> it's just a style question, obviously you could put anything
2022-09-30 17:02:20 +0200 <EvanR> oh yeah, a data type can be a type function lol
2022-09-30 17:02:47 +0200 <davean> Sorta, if you want it to actually match a function would have to leave a space in the grammar for a parameter to say which list to make
2022-09-30 17:03:02 +0200 <davean> and the reference to the list is the actual MakeMeAList unqualified
2022-09-30 17:03:14 +0200 <davean> hence it sorta having to be data type? But thats an action its self.
2022-09-30 17:03:28 +0200 <davean> you can setup making the list or make the list
2022-09-30 17:03:28 +0200 <EvanR> well they just wanted to an actual list
2022-09-30 17:03:34 +0200 <EvanR> not a type
2022-09-30 17:03:55 +0200 <davean> Sure, its just that ... well, at the end of the day thats a calculation too?
2022-09-30 17:04:09 +0200 <Guest60> yeah, english is not my first language :)
2022-09-30 17:04:47 +0200 <EvanR> in some metaphysics somewhere I'm sure a rock sitting inanimate on the desert floor is a calculation
2022-09-30 17:04:47 +0200ellensol(~ellen@emp-95-224.eduroam.uu.se)
2022-09-30 17:06:47 +0200Sgeo(~Sgeo@user/sgeo)
2022-09-30 17:06:50 +0200 <EvanR> calculus originally "pebble used as a reckoning counter" (rockoning?) I've gone down a rabbit hole now
2022-09-30 17:12:16 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2022-09-30 17:12:46 +0200mrianbloom(uid350277@id-350277.ilkley.irccloud.com)
2022-09-30 17:12:52 +0200ellensol(~ellen@emp-95-224.eduroam.uu.se) (Ping timeout: 260 seconds)
2022-09-30 17:13:01 +0200 <mrianbloom> If the incoherent instances extension is deprecated, what replaced it?
2022-09-30 17:13:51 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-09-30 17:14:10 +0200 <mrianbloom> Or can you just use the pragmas without any extension enabled?
2022-09-30 17:14:48 +0200 <ski> wasn't Demosthenes (rhetorician) said to have put pebbles in his mouth, while standing by the sea, trying to talk louder than it, in order to improve upon his stuttering and general bad talking skills ?
2022-09-30 17:15:39 +0200 <geekosaur> the extension wasn't granular enough so you just use the pragmas instead
2022-09-30 17:15:45 +0200 <geekosaur> they're not controlled by the extension
2022-09-30 17:16:08 +0200jakalx(~jakalx@base.jakalx.net)
2022-09-30 17:16:27 +0200 <mrianbloom> I see. And in general do you just make your most general instance {-# INCOHERENT #-}?
2022-09-30 17:16:27 +0200 <geekosaur> (pragmas are by definition extensions)
2022-09-30 17:16:50 +0200shapr(~user@68.54.166.125)
2022-09-30 17:17:18 +0200 <geekosaur> that I wouldn't tell you; I generally try to avoid needing those pragmas in the first place
2022-09-30 17:17:37 +0200 <c_wraith> No. why would I do that to myself? Incoherent instances are well named. They make your program incoherent.
2022-09-30 17:17:53 +0200 <ski> <https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/instances.html#instance-overlap> doesn't seem to have an incoherent pragma example (nor <https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/pragmas.html#overlapping-overlappab…>)
2022-09-30 17:18:07 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds)
2022-09-30 17:20:00 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:b833:229b:a9d8:c346)
2022-09-30 17:20:03 +0200 <mrianbloom> I see, I'm using Data.Comp.Multi so I think it's unavoidable if I want the other functionality.
2022-09-30 17:22:36 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 264 seconds)
2022-09-30 17:26:40 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
2022-09-30 17:27:09 +0200Guest60(~Guest60@2400:1a00:b011:ad4b:5555:45e3:e613:a20f) (Quit: Client closed)
2022-09-30 17:34:33 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-09-30 17:35:35 +0200 <davean> mrianbloom: I have no clue about that myself, but why do you think that vs. overlapping or undecidable?
2022-09-30 17:35:54 +0200 <davean> Why do you specificly think 2 could apply at the same time?
2022-09-30 17:36:13 +0200 <davean> even when you can have a priority system to select between them
2022-09-30 17:36:22 +0200 <davean> or what would prevent that priority system?
2022-09-30 17:37:55 +0200califax(~califax@user/califx)
2022-09-30 17:45:01 +0200rockymarine(~rocky@user/rockymarine)
2022-09-30 17:47:39 +0200waldo(~waldo@user/waldo) (Quit: quit)
2022-09-30 17:48:10 +0200califax(~califax@user/califx) (Ping timeout: 258 seconds)
2022-09-30 17:51:31 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 17:52:19 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:b833:229b:a9d8:c346) (Remote host closed the connection)
2022-09-30 17:53:09 +0200kenran(~user@user/kenran)
2022-09-30 17:59:11 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 252 seconds)
2022-09-30 18:00:06 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 18:01:04 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-09-30 18:05:18 +0200califax(~califax@user/califx)
2022-09-30 18:05:51 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:b833:229b:a9d8:c346)
2022-09-30 18:06:10 +0200DavidBinder(~DavidBind@134.2.10.18) (Quit: Leaving)
2022-09-30 18:13:56 +0200fserucas(~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Quit: Leaving)
2022-09-30 18:20:36 +0200jero98772(~jero98772@2800:484:1d80:d8ce:3490:26c5:1782:da8c)
2022-09-30 18:21:11 +0200euandreh(~euandreh@179.214.113.107) (Ping timeout: 252 seconds)
2022-09-30 18:21:32 +0200dr_merijn(~dr_merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 265 seconds)
2022-09-30 18:27:25 +0200Everything(~Everythin@37.115.210.35)
2022-09-30 18:34:10 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-30 18:36:18 +0200jpds1(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-09-30 18:37:35 +0200jpds1(~jpds@gateway/tor-sasl/jpds)
2022-09-30 18:38:29 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 244 seconds)
2022-09-30 18:41:38 +0200waldo(~waldo@user/waldo)
2022-09-30 18:44:51 +0200 <dminuoso> Incoherent instances are, for the most part, rather horrible and not something the average user would ever enable.
2022-09-30 18:45:32 +0200 <dminuoso> I'm sure there's some highly exotic place for them, but for mortal Haskellers enabling IncoherentInstances is not a good idea.
2022-09-30 18:49:10 +0200MajorBiscuit(~MajorBisc@c-001-026-007.client.tudelft.eduvpn.nl) (Quit: WeeChat 3.5)
2022-09-30 18:50:22 +0200 <davean> dminuoso: well, there are restrictions on overlapping and if the incoherent instances produce the exact same computation you're fine
2022-09-30 18:50:31 +0200 <davean> which can resolve some non-termiantion issues
2022-09-30 18:50:38 +0200 <davean> I just don't know why mrianbloom would need them for that
2022-09-30 18:51:52 +0200 <c_wraith> probably trying to write instances for "everything else", which is... generally a bad idea. Better to just require types to opt in to a default implementation.
2022-09-30 18:52:07 +0200 <dminuoso> davean: If you are in a problem domain where you would need this, it's more than likely they wouldn't ask such a question. It seems more likely they are using it for lack of better knowledge.
2022-09-30 18:53:41 +0200 <davean> dminuoso: that was my point
2022-09-30 18:53:57 +0200 <davean> well they referenced something specific
2022-09-30 18:54:19 +0200 <davean> it might be something in the domain that actually does need it. I have inclings on why that might be an "everything else" situation
2022-09-30 18:54:32 +0200 <dminuoso> Unrelated question: Say I have a kind of box type full with unary type constructors (wrapping various types like Word8, Int8, Text). Is there a boilerplate-free mechanism to get the contained value out as a Dynamic?
2022-09-30 18:55:46 +0200 <c_wraith> You could probably use like Data.Data
2022-09-30 18:57:03 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-30 18:57:11 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:b833:229b:a9d8:c346) (Remote host closed the connection)
2022-09-30 18:58:55 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-09-30 18:59:15 +0200jero98772(~jero98772@2800:484:1d80:d8ce:3490:26c5:1782:da8c) (Ping timeout: 268 seconds)
2022-09-30 18:59:19 +0200 <c_wraith> dminuoso: yeah, like.. head . gmapQ toDyn
2022-09-30 18:59:33 +0200 <c_wraith> Or something safer than head
2022-09-30 19:00:20 +0200razetime(~quassel@117.254.35.71) (Remote host closed the connection)
2022-09-30 19:00:31 +0200 <c_wraith> I guess `gmapQi 0 toDyn` is mildly safer
2022-09-30 19:01:14 +0200 <dminuoso> c_wraith: Ah neat, exactly what I was looking for. Thanks.
2022-09-30 19:01:27 +0200 <c_wraith> well. gmapQi isn't safer at all. :)
2022-09-30 19:01:38 +0200 <c_wraith> it's just as unsafe, and the error message isn't even better!
2022-09-30 19:01:47 +0200 <dminuoso> Yeah this is fine, I know how to case-of lists. :)
2022-09-30 19:10:20 +0200jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff)
2022-09-30 19:11:09 +0200Midjak(~Midjak@82.66.147.146) (Quit: Leaving)
2022-09-30 19:17:33 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-09-30 19:17:48 +0200acidjnk(~acidjnk@p200300d6e7137a84917195bd27e414df.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2022-09-30 19:20:03 +0200mmhat(~mmh@p200300f1c7062359ee086bfffe095315.dip0.t-ipconnect.de)
2022-09-30 19:20:15 +0200Midjak(~Midjak@82.66.147.146)
2022-09-30 19:20:39 +0200tmiller(~tmiller@199.241.26.152)
2022-09-30 19:24:45 +0200kenran(~user@user/kenran) (Remote host closed the connection)
2022-09-30 19:31:17 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds)
2022-09-30 19:31:21 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2022-09-30 19:31:40 +0200ec(~ec@gateway/tor-sasl/ec)
2022-09-30 19:31:59 +0200 <hololeap> I have a `Map k (OSet v)` and I want to do a breadth-first walk along the `v` contents. I was thinking using interleave from logict, but I don't know how to convert this into a `Logic v`
2022-09-30 19:32:13 +0200 <monochrom> What is OSet?
2022-09-30 19:32:39 +0200 <hololeap> ordered set. each value is unique but it preserves the order they were inserted
2022-09-30 19:33:06 +0200 <hololeap> from ordered-containers
2022-09-30 19:34:14 +0200 <monochrom> You can convert [v] to Logic v.
2022-09-30 19:34:53 +0200 <hololeap> what's the standard way to do that?
2022-09-30 19:35:18 +0200 <hololeap> is there anything better than `asum . fmap pure`?
2022-09-30 19:36:14 +0200 <monochrom> logic (\op z -> foldr op z yourlist)
2022-09-30 19:36:36 +0200 <monochrom> Although, I think it doesn't really mater.
2022-09-30 19:37:04 +0200 <hololeap> I'm just a bit surprised that this isn't included as a helper function in logict. it almost seems intentional.
2022-09-30 19:38:04 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-09-30 19:39:19 +0200 <monochrom> msum pure, too >:)
2022-09-30 19:39:34 +0200 <monochrom> err, mconcat pure !
2022-09-30 19:40:10 +0200euandreh(~euandreh@179.214.113.107)
2022-09-30 19:41:03 +0200 <[Leary]> hololeap: Note the haddocks for `type Logic`.
2022-09-30 19:42:06 +0200Lycurgus(~juan@user/Lycurgus)
2022-09-30 19:42:15 +0200 <hololeap> what about them
2022-09-30 19:42:29 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2022-09-30 19:42:29 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-09-30 19:42:46 +0200rockymarine(~rocky@user/rockymarine)
2022-09-30 19:43:04 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-09-30 19:43:25 +0200 <monochrom> [Leary] is probably referring to "Technical perspective. Logic is a Boehm-Berarducci encoding of lists." etc.
2022-09-30 19:43:49 +0200 <monochrom> which is how I derived logic (\op z -> foldr op z yourlist)
2022-09-30 19:43:55 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-09-30 19:44:54 +0200 <hololeap> ok then why isn't there a `fromList :: [a] -> Logic a`. this seems like such an obvious thing, its omission seems intentional, like it breaks performance or something
2022-09-30 19:45:11 +0200 <monochrom> The front-page example has "choose = foldr ((<|>) . pure) empty" so your idea of asum . fmap pure is as standard as everyone else :)
2022-09-30 19:46:12 +0200 <monochrom> BTW Logic is also Foldable so I guess that answers your question :)
2022-09-30 19:46:23 +0200 <monochrom> Err no, wrong direction!
2022-09-30 19:46:25 +0200 <[Leary]> I suspect they just consider it too trivial for anyone who understands the representation.
2022-09-30 19:47:36 +0200 <monochrom> I think you're 2nd-guessing too much why it wasn't included.
2022-09-30 19:48:17 +0200 <hololeap> ok, fair enough. I just thought I would ask
2022-09-30 19:48:30 +0200 <monochrom> Reality is always much more boring than deep technical considerations. The real reason is usually procrastination, laziness, lack of care.
2022-09-30 19:49:41 +0200 <[Leary]> If it did break performance, I bet they'd go out of their way to write it, just so they could slap a big warning on it.
2022-09-30 19:50:40 +0200 <hololeap> I have very little experience with this package, partly because I was confused how to actually use it in most cases
2022-09-30 19:51:11 +0200 <hololeap> but I keep forgetting to look at a package's README in their source repo
2022-09-30 19:51:53 +0200 <monochrom> The readme is also on the hackage page. I never read source repos.
2022-09-30 19:52:05 +0200 <monochrom> Unpopular opinion: Never use the source, Luke.
2022-09-30 19:52:59 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-30 19:53:11 +0200 <hololeap> oh, you're right. it is (in this case) but I've seen others that don't have it. also the generated haddocks I can read locally don't include it for some reason.
2022-09-30 19:53:35 +0200 <hololeap> or at least I've seen it where the README on hackage and on github differ
2022-09-30 19:54:02 +0200 <hololeap> possibly because of the one on github being updated more recently, IDK
2022-09-30 19:54:04 +0200 <monochrom> Yeah local haddocks don't include the readme. Hackage does something extra for it.
2022-09-30 19:54:13 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 246 seconds)
2022-09-30 19:54:28 +0200 <hololeap> ok, well thanks for the help
2022-09-30 19:57:55 +0200 <monochrom> Is OSet Foldable? You may have as simple as foldMap pure my_oset
2022-09-30 19:58:31 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 260 seconds)
2022-09-30 20:00:23 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-09-30 20:00:26 +0200jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Quit: leaving)
2022-09-30 20:04:11 +0200nate3(~nate@98.45.169.16)
2022-09-30 20:05:17 +0200ellensol(~ellen@178-78-210-152.customers.ownit.se)
2022-09-30 20:08:31 +0200a6a45081-2b83(~aditya@2601:249:4300:1296:88ec:cc73:84d4:1507)
2022-09-30 20:08:45 +0200 <a6a45081-2b83> what's a better way to do this? https://bpa.st/AFBA
2022-09-30 20:09:03 +0200 <a6a45081-2b83> defining data constructors with varying argument orders
2022-09-30 20:09:24 +0200nate3(~nate@98.45.169.16) (Ping timeout: 264 seconds)
2022-09-30 20:10:25 +0200 <monochrom> Offer fewer choices and resist feature creep.
2022-09-30 20:12:09 +0200 <geekosaur> depends on how important preserving said order is
2022-09-30 20:12:23 +0200 <monochrom> That's one extremal solution. The other extremal solution on the other side is:
2022-09-30 20:12:26 +0200 <ski> why those exact permutations ?
2022-09-30 20:12:50 +0200 <davean> This seems like a pattern thing
2022-09-30 20:12:55 +0200 <davean> it also seems like a bad idea
2022-09-30 20:12:58 +0200 <ski> (also, why `End' ? .. and why the redundant brackets ?)
2022-09-30 20:13:30 +0200 <tomsmeding> ski: End because the data type is recursive
2022-09-30 20:13:48 +0200 <monochrom> Resist type-level enforcement of order and uniqueness. Just use a term-level list to store a layout. Now you are also offering more choices and features! Because maybe there is nothing wrong in supporting a layout that repeats my name 100 times.
2022-09-30 20:13:50 +0200 <ski> oh, right. missed that part
2022-09-30 20:14:04 +0200 <davean> tomsmeding: Well its recursive in the sense that a list is, so one can also ask why that isn't factored out.
2022-09-30 20:14:16 +0200 <tomsmeding> sure
2022-09-30 20:14:35 +0200 <davean> I think this is a very odd question from every direction.
2022-09-30 20:14:58 +0200 <monochrom> Oh it's recursive? Well then it already lets me repeat my name 100 times. So yeah just use a list.
2022-09-30 20:15:17 +0200 <monochrom> A rose tree too if necessary.
2022-09-30 20:16:01 +0200 <monochrom> Anyway extremal solutions are the best solutions, literally. :)
2022-09-30 20:16:23 +0200 <ski> "extremal" ?
2022-09-30 20:16:35 +0200 <a6a45081-2b83> Different layouts to find the one that works best with the search algorithm for efficiency due to ordering
2022-09-30 20:16:44 +0200Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt juan@acm.org)
2022-09-30 20:16:54 +0200 <davean> a6a45081-2b83: why is that part of the *datastructure*
2022-09-30 20:16:59 +0200 <davean> its not data, its representation
2022-09-30 20:17:07 +0200 <davean> Those are seperate things
2022-09-30 20:17:22 +0200 <a6a45081-2b83> yup so can we switch/reorder data layout with ghc?
2022-09-30 20:17:46 +0200 <davean> I feel you have some deep confusion at the base of this question
2022-09-30 20:17:47 +0200 <monochrom> OK so what's wrong with [Header, Author, Date, Content, Author, Tags]?
2022-09-30 20:18:18 +0200 <davean> I have no idea what though. I have no idea why you think the datastructure has anything to do with how it is presented to search engines
2022-09-30 20:18:29 +0200 <a6a45081-2b83> after it's serialization there would be a cost associated with travelling the data structure based on layout
2022-09-30 20:18:40 +0200 <davean> No there wouldn't?
2022-09-30 20:18:52 +0200 <monochrom> Is that cost at the type level or at the term level?
2022-09-30 20:19:03 +0200 <davean> Hell, having them all represented the same way is actually cheaper because its less conditionals
2022-09-30 20:19:05 +0200 <a6a45081-2b83> if it's on heap using pointers then probably not
2022-09-30 20:19:05 +0200 <monochrom> If the cost is at the term level then the layout is also at the term level.
2022-09-30 20:19:14 +0200 <a6a45081-2b83> but if I serialized it it would be linear
2022-09-30 20:19:24 +0200 <monochrom> So what's wrong with [Header, Author, Date, Content, Author, Tags] at the term level?
2022-09-30 20:19:36 +0200 <monochrom> [Header, Author, Date, Content, Author, Tags] is also linear.
2022-09-30 20:19:42 +0200 <a6a45081-2b83> hmm
2022-09-30 20:19:43 +0200 <monochrom> It's literally a list.
2022-09-30 20:20:24 +0200 <monochrom> I have never heard of type-level search or optimization algorithms BTW.
2022-09-30 20:20:35 +0200talismanick(~talismani@96-67-197-217-static.hfc.comcastbusiness.net)
2022-09-30 20:21:09 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-09-30 20:21:12 +0200 <a6a45081-2b83> probably see https://research.cs.wisc.edu/multifacet/papers/pldi99_cache_layout_pdf.pdf
2022-09-30 20:21:19 +0200 <a6a45081-2b83> or https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.91.6594&rep=rep1&type=pdf
2022-09-30 20:21:21 +0200 <davean> "a6a45081-2b83 after it's serialization there would be a cost associated with travelling the data structure based on layout" so the only cost here is the conditionals and the non-deterministic parsing. That doesn't have anything to do with your data type, it has to do with your serialization function
2022-09-30 20:21:29 +0200 <monochrom> And I'm sure there is a cost function that says repeating my name 100 times is optimal.
2022-09-30 20:21:54 +0200ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2022-09-30 20:21:55 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-09-30 20:21:55 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-09-30 20:21:55 +0200jpds1(~jpds@gateway/tor-sasl/jpds) (Read error: Connection reset by peer)
2022-09-30 20:22:38 +0200 <davean> a6a45081-2b83: ah, if you're trying to do memory optimal things, you're really off the track, you're going to need to know about GHC's representations and boxing and laziness
2022-09-30 20:22:44 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-09-30 20:22:48 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-09-30 20:22:51 +0200 <davean> the ordering is the least of your concerns there.
2022-09-30 20:22:57 +0200 <monochrom> I don't understand the relevance of the cache paper.
2022-09-30 20:23:18 +0200 <monochrom> I mean relevance to blog layouts.
2022-09-30 20:23:28 +0200 <davean> Oh CERTAINLY no relivent to blogs
2022-09-30 20:23:50 +0200califax(~califax@user/califx)
2022-09-30 20:23:51 +0200jpds1(~jpds@gateway/tor-sasl/jpds)
2022-09-30 20:23:52 +0200biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2022-09-30 20:23:57 +0200 <davean> I do happen to know a lot about optimizing Haskell data definitions for cache optimality.
2022-09-30 20:24:10 +0200ec(~ec@gateway/tor-sasl/ec)
2022-09-30 20:24:17 +0200 <monochrom> After you know GHC's representations you will conclude that you should give up on optimizing for cache. :)
2022-09-30 20:24:38 +0200 <davean> Absolutely not. I've done a lot of cycle perfect Haskell programming :)
2022-09-30 20:24:44 +0200 <davean> Its actually not that bad
2022-09-30 20:24:54 +0200 <davean> We have some pretty good tools
2022-09-30 20:25:05 +0200 <davean> Now, our levity polymorphism story ...
2022-09-30 20:25:08 +0200 <davean> thats pretty shit.
2022-09-30 20:25:44 +0200 <davean> but making isolated kernels that are optimal are actually really pretty easy to get close to right in Haskell and sometimes you can get them perfect
2022-09-30 20:25:44 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-30 20:25:52 +0200 <monochrom> OK OK my sentence is tailor-made for a particular class of "you".
2022-09-30 20:26:08 +0200 <davean> It just doesn't integrate well into other Haskell code, you need a translation boundary
2022-09-30 20:26:53 +0200 <davean> If we had some type classes like Num polymorphic ... well of course there are reasons we don't.
2022-09-30 20:27:07 +0200king_gs(~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5)
2022-09-30 20:28:25 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-09-30 20:28:35 +0200biberu(~biberu@user/biberu)
2022-09-30 20:29:05 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-09-30 20:29:44 +0200 <monochrom> Do you allow GHC to use copying GC? Because the copy algorithm may or may not happen to preserve or ruin your carefully created layout.
2022-09-30 20:30:30 +0200 <monochrom> perhaps s/layout/locality/
2022-09-30 20:31:18 +0200 <EvanR> I'm curious about these tools for optimizing cache performance of haskell code
2022-09-30 20:31:23 +0200 <davean> locality is a different concern and I'd say alignment matters more. If you want to preseve locality you can arraize it and move it out of GC.
2022-09-30 20:31:33 +0200 <monochrom> Although, I can be ignorant in thinking that cache locality is the only issue.
2022-09-30 20:31:50 +0200 <monochrom> Ah alignment.
2022-09-30 20:31:51 +0200 <davean> monochrom: well cache locality and memory locality aren't very related, except by alignment
2022-09-30 20:32:13 +0200 <monochrom> OK does GHC's copying GCer ruin your alignment? :)
2022-09-30 20:32:13 +0200 <davean> there IS associtivity but with 16 way associtive caches that can mostly be hand waved
2022-09-30 20:32:18 +0200 <davean> monochrom: generally not!
2022-09-30 20:32:25 +0200 <int-e> There's also the GHC.Compact stuff... which I'm only vaguely aware of.
2022-09-30 20:32:36 +0200 <davean> int-e: yep, rather nice but inflexible.
2022-09-30 20:32:45 +0200 <davean> What we don't have is general tools, we have a lot of very specific ones
2022-09-30 20:33:35 +0200beteigeuze(~Thunderbi@2001:8a0:61b5:6101:f0c:e4e3:bfdc:91df)
2022-09-30 20:34:38 +0200 <davean> Honestly thats always the case outside assembly
2022-09-30 20:34:51 +0200a6a45081-2b83(~aditya@2601:249:4300:1296:88ec:cc73:84d4:1507) (Remote host closed the connection)
2022-09-30 20:34:52 +0200 <dminuoso> monochrom: Never use the source? Haskell is the wrong language for you then.
2022-09-30 20:35:23 +0200 <dminuoso> I'd say being able to quickly understand undocumented things right via hyperlink on haddock is the only way to use a fair chunk of hackage.
2022-09-30 20:35:40 +0200 <monochrom> Well the whole world is basically the wrong world for me.
2022-09-30 20:35:41 +0200 <dminuoso> Hyperlinks named "Source" have to be my most visited ones.
2022-09-30 20:35:48 +0200 <davean> monochrom: you are always such a downer
2022-09-30 20:35:52 +0200 <davean> monochrom: what is with that?
2022-09-30 20:36:02 +0200 <monochrom> I'm cynical!
2022-09-30 20:36:11 +0200 <davean> I mean we figured that out.
2022-09-30 20:36:55 +0200 <dontdieych> (this channel ,.. always working)
2022-09-30 20:37:14 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2022-09-30 20:37:18 +0200 <monochrom> In practice I sometimes take a look at the source code, as you explained.
2022-09-30 20:37:40 +0200sibnull[m](~sibnullma@2001:470:69fc:105::1:1291)
2022-09-30 20:37:58 +0200 <monochrom> But that's a statement of the status quo that authors don't bother to write docs, not an endorsement.
2022-09-30 20:38:10 +0200lys(lys@id-194105.uxbridge.irccloud.com)
2022-09-30 20:38:10 +0200 <davean> monochrom: my main alignment issues in haskell are inside of datastructures, and historically GHC didn't do anything subword so you just got way too much padding.
2022-09-30 20:38:16 +0200 <monochrom> We are always pushing more authors to write better docs, no?
2022-09-30 20:38:18 +0200 <davean> so sometimes you had to hand-pack things
2022-09-30 20:38:39 +0200 <davean> now with the subword stuff I haven't had a deep dive yet but if it has changed that you can just pad
2022-09-30 20:40:18 +0200 <dontdieych> My Haskell bottleneck https://en.m.wikibooks.org/wiki/Haskell/Understanding_monads/State
2022-09-30 20:40:41 +0200 <c_wraith> state was a challenge for me at the start too
2022-09-30 20:40:51 +0200 <dontdieych> stop at that point...
2022-09-30 20:40:59 +0200LukeHoersten(~LukeHoers@user/lukehoersten)
2022-09-30 20:42:22 +0200 <monochrom> If you have a functional mind then you always reduce "I have state variables" to "I have a state transition function S -> S".
2022-09-30 20:42:48 +0200 <monochrom> And then you add "but I also have an input and an output" so it's (X,S) -> (Y,S).
2022-09-30 20:43:28 +0200 <monochrom> From there it is not so big a leap to accept that perhaps S->(Y,S) suffices because you can always slap on an X-> when necessary.
2022-09-30 20:43:38 +0200 <davean> monochrom: so locality comes into play with prefetching and most CPUs will do indirect loop detection so walking over a pointer array is fine. I haven't worked on proccessors with more limited prefetching recently.
2022-09-30 20:43:45 +0200dminuosois itching to make a funny remark about reverse state
2022-09-30 20:44:18 +0200 <dminuoso> davean: their prefetchers havent really become much better.
2022-09-30 20:44:25 +0200 <EvanR> if the type of a "normal" function that is stateless is A -> B, then you can add statefulness by doing (A,S) -> (B,S). Now the function can depend on state and change the state
2022-09-30 20:44:31 +0200 <dminuoso> At least on Intel side. AMD I keep forgetting how to find the optimization manuals
2022-09-30 20:44:53 +0200 <davean> dminuoso: right but its about more limited ones because desktop and server class CPUs have been much better than needed for quite a long time.
2022-09-30 20:44:56 +0200 <EvanR> the State monad is just stringing together such functions so the output state is the state fed to the next input state
2022-09-30 20:45:01 +0200 <davean> dminuoso: I don't know the story on like low end ARM phone CPUs.
2022-09-30 20:45:15 +0200Everything(~Everythin@37.115.210.35) ()
2022-09-30 20:45:17 +0200 <davean> dminuoso: CPU pretetchers actually have become a decent bit better though
2022-09-30 20:45:35 +0200 <davean> Its that it only really matters for poorly optimized code
2022-09-30 20:45:48 +0200 <dminuoso> davean: Honestly I would expect a simple prefetcher to be present even on ARM phones. Memory stride detection is super trivial.
2022-09-30 20:45:54 +0200 <davean> where you have longer, more complex conditionals to do prediction off of
2022-09-30 20:45:57 +0200 <dminuoso> Even Intel has the most dumb logic ever.
2022-09-30 20:45:59 +0200LukeHoersten_(~LukeHoers@user/lukehoersten)
2022-09-30 20:46:12 +0200 <davean> dminuoso: Intel has MASSIVELY more than memory stride detection
2022-09-30 20:46:25 +0200 <dminuoso> For automatic memory prefetching, not really
2022-09-30 20:46:36 +0200 <dminuoso> There's 2 different stride prefetcher that each have 2-3 cases where they trigger
2022-09-30 20:46:45 +0200 <monochrom> I'm impressed that for modern CPUs a pointer array is fine. That really enables a lot more high-level programming.
2022-09-30 20:47:04 +0200 <davean> monochrom: mostly only catches the simple cases
2022-09-30 20:47:16 +0200 <dminuoso> But I guess its the combination with speculative execution this kicks in really well
2022-09-30 20:47:36 +0200 <dminuoso> That is, if the cpu can speculatively execute code with a semantically stalled pipeline, it can trigger stride prefetchers even earlier
2022-09-30 20:47:41 +0200 <davean> dminuoso: right
2022-09-30 20:47:54 +0200dcoutts_(~duncan@host86-177-125-45.range86-177.btcentralplus.com)
2022-09-30 20:48:05 +0200 <monochrom> OK yeah but if I have like Vector (boxed Int) it may be one of the simple cases.
2022-09-30 20:48:17 +0200 <davean> Yep! Exactly
2022-09-30 20:48:22 +0200 <dminuoso> What is really super interesting, is that the current (not the brand new one) architecture is able maintain a constant throughput of 8 instructions per cycle.
2022-09-30 20:48:24 +0200 <monochrom> Or if I have the analogue in C++.
2022-09-30 20:48:28 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Ping timeout: 246 seconds)
2022-09-30 20:48:39 +0200 <dminuoso> Without being stalled (assuming some good and targeted code of course)
2022-09-30 20:48:48 +0200 <dminuoso> No CPU before could do that well. :)
2022-09-30 20:48:50 +0200 <davean> where that doesn't work, rotating to a SoA design can fix a lot too
2022-09-30 20:49:01 +0200 <dminuoso> (Again, talking Intel)
2022-09-30 20:49:08 +0200 <davean> dminuoso: Oh, ok, sticking to Intel yah
2022-09-30 20:49:26 +0200 <davean> dminuoso: I mean I was about to bring up a few elephands in the room.
2022-09-30 20:49:32 +0200 <dminuoso> Agner Fog has most details on their CPUs :>
2022-09-30 20:50:35 +0200 <dminuoso> It's somewhat of a shame that you have to resort to some person privately benchmarking and thereby reverse engineering microarchitecture details. Intel wont tell you half the things necessary for optimal code generation.
2022-09-30 20:50:48 +0200dcoutts__(~duncan@host86-177-125-45.range86-177.btcentralplus.com) (Ping timeout: 264 seconds)
2022-09-30 20:51:12 +0200 <davean> dminuoso: Yah, if you want to optimize CPU code you have to have friends that want to optimize CPU code.
2022-09-30 20:52:12 +0200 <dminuoso> No I rather meant, both AMD and Intel are rather sketchy on microarchitectural details
2022-09-30 20:52:17 +0200 <davean> Honestly I think sticking to things like Cache Oblivious algs and such is better 99% of the time; it works fairly well across languages, and it doesn't fall appart in the future.
2022-09-30 20:52:26 +0200 <dminuoso> Yup.
2022-09-30 20:52:52 +0200 <davean> dminuoso: yes, and the only way to get around that is to have friends who also want to optimize CPU code, because there is no way to one man lift figuring out solutions. I got what you meant.
2022-09-30 20:52:55 +0200 <dminuoso> Cache awareness I think is one of the primary optimization opportunities in many algorithms or programs.
2022-09-30 20:53:05 +0200 <dminuoso> That is very frequently left untouched.
2022-09-30 20:53:08 +0200 <davean> you have to be part of a community working on it to really have a chance.
2022-09-30 20:53:12 +0200 <dminuoso> Outside of OS code you rarely see cache coloring for example
2022-09-30 20:53:36 +0200 <davean> Most of the high level techniques don't care what language you're in or anything if you have decent data layout control, and haskell DOES have that.
2022-09-30 20:53:42 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 258 seconds)
2022-09-30 20:53:42 +0200 <davean> in modern times.
2022-09-30 20:53:55 +0200 <davean> And haskell can MOSTLY optimize datapacking ok, so generally that stuff works out.
2022-09-30 20:54:28 +0200jpds1(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 258 seconds)
2022-09-30 20:54:47 +0200 <davean> dminuoso: my point there was one doesn't just stumble into how to optimize for CPUs, nor can one just deduce it from straight experimentation
2022-09-30 20:54:51 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 258 seconds)
2022-09-30 20:55:03 +0200 <dminuoso> Ah yes right.
2022-09-30 20:55:04 +0200 <davean> you need a combination of experimentation, mechanical sympathy, and idea generation
2022-09-30 20:55:49 +0200 <dontdieych> sigh.. cant grog state monad signature.
2022-09-30 20:55:54 +0200 <dontdieych> another day
2022-09-30 20:56:01 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-09-30 20:56:02 +0200 <davean> dontdieych: Do you have a specific problem?
2022-09-30 20:56:44 +0200 <davean> dontdieych: do you understand the equivilence of (a, b) -> c and a -> b -> c?
2022-09-30 20:56:47 +0200 <monochrom> I mean well yeah a state transition function also says that there is always the next state, another day. >:)
2022-09-30 20:56:51 +0200 <dontdieych> davean: no just read and learn haskell. actually it is fun and joy
2022-09-30 20:57:06 +0200 <davean> dontdieych: Yah its just "I don't understand" doesn't really give any way to help you
2022-09-30 20:57:14 +0200 <davean> "A seems in conflict with B" might
2022-09-30 20:57:17 +0200 <davean> or something like that.
2022-09-30 20:57:24 +0200 <dminuoso> dontdieych: You should go one step back, and start with the motivation problem, which both the wikibooks article you pointed out goes into great length to setup, and all monochrom, davean and EvanR have been trying to set you up with.
2022-09-30 20:57:26 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2022-09-30 20:57:32 +0200 <EvanR> "he should move to the next state" actual review of actual digital logic professor
2022-09-30 20:57:40 +0200 <dminuoso> Don't jump towards the State type, start with the motivating problem.
2022-09-30 20:58:08 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds)
2022-09-30 20:58:09 +0200 <monochrom> haha EvanR. It's real?! Some student wrote that?!
2022-09-30 20:58:13 +0200 <EvanR> yeah
2022-09-30 20:58:22 +0200 <davean> EvanR: I love that student so much right now.
2022-09-30 20:58:23 +0200 <EvanR> though you probably heard that 100 times
2022-09-30 20:58:34 +0200 <monochrom> No, this is the 1st time.
2022-09-30 20:58:37 +0200 <dontdieych> Thank you for all
2022-09-30 20:59:01 +0200jpds1(~jpds@gateway/tor-sasl/jpds)
2022-09-30 20:59:13 +0200 <dontdieych> I'll read back to books
2022-09-30 20:59:16 +0200LukeHoersten_(~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-09-30 20:59:32 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2022-09-30 21:00:07 +0200ellensol(~ellen@178-78-210-152.customers.ownit.se) (Ping timeout: 268 seconds)
2022-09-30 21:00:11 +0200Lord_of_Life_Lord_of_Life
2022-09-30 21:00:12 +0200LukeHoersten(~LukeHoers@user/lukehoersten)
2022-09-30 21:01:13 +0200 <dminuoso> dontdieych: And another personal tip: just drop the word Monad. Scratch it from your definition list.
2022-09-30 21:01:32 +0200 <monochrom> :(
2022-09-30 21:01:53 +0200 <monochrom> I take the opposite view.
2022-09-30 21:02:39 +0200 <monochrom> For example I don't understand CPUs. Especially after today listening to you about cache behaviour and how to or not to write code to play nice with it.
2022-09-30 21:02:57 +0200 <monochrom> Has that ever stopped me from just going ahead and using CPUs?
2022-09-30 21:03:27 +0200 <geekosaur> I think that was actually the point?
2022-09-30 21:03:35 +0200 <int-e> But you use CPUs rather indirectly (like everybody else) ;-)
2022-09-30 21:03:38 +0200 <geekosaur> Don't try to understand it, just use it and understanding will come
2022-09-30 21:03:49 +0200 <monochrom> (Unpopular opinion: You know what, I'm cynical, perhaps the world would be better if everyone thought "I don't understand CPUs so perhaps I should not become a programmer.")
2022-09-30 21:04:03 +0200 <hololeap> anyone know of a lib with a data structure that can lookup a collection of values given a key, but also lookup the parent key given a value?
2022-09-30 21:04:11 +0200 <int-e> You should still use the term "monad" though because a) that's the type class name and b) that's the name by which everybody else knows the concept.
2022-09-30 21:04:14 +0200 <geekosaur> Bimap?
2022-09-30 21:04:24 +0200 <hololeap> it's not quite bimap, I don't think
2022-09-30 21:04:25 +0200 <dminuoso> hololeap: What is "parent"?
2022-09-30 21:04:34 +0200 <hololeap> good question
2022-09-30 21:04:39 +0200 <dminuoso> Do you mean "key"?
2022-09-30 21:04:48 +0200 <int-e> But I'd agree that you don't have to internalize all the monad laws to use monads.
2022-09-30 21:04:49 +0200 <hololeap> sure
2022-09-30 21:04:54 +0200 <dminuoso> Use two maps?
2022-09-30 21:04:59 +0200 <dminuoso> And a data wrapper
2022-09-30 21:05:00 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 21:05:04 +0200 <monochrom> Um but I have used CPUs pretty directly. I sometimes read asm code. I used to write a little bit of asm code too. I used to even measure CPU pins with oscilloscopes of logic analyzers.
2022-09-30 21:05:19 +0200 <EvanR> I don't understand cars so maybe I shouldn't drive
2022-09-30 21:05:24 +0200 <dontdieych> I'd made once ! real world program with Haskell accidentally, for my daily jobs. ... that was great.
2022-09-30 21:05:25 +0200 <EvanR> actually, we don't even need the first part
2022-09-30 21:05:26 +0200 <hololeap> so write it myself, because there is no popular lib that has this already
2022-09-30 21:05:54 +0200 <dminuoso> Not that I've seen
2022-09-30 21:06:15 +0200 <int-e> monochrom: but I imagine you're still using a keyboard, maybe a mouse, a monitor (via a graphics controller), storage devices... etc. rather than injecting your own electric signals into the CPU core.
2022-09-30 21:06:32 +0200 <dminuoso> hololeap: well there is https://hackage.haskell.org/package/bimap-0.5.0/docs/Data-Bimap.html
2022-09-30 21:06:40 +0200 <dminuoso> Which I suppose geekosaur referred to
2022-09-30 21:06:45 +0200 <EvanR> what is "direct" anyway
2022-09-30 21:07:01 +0200 <int-e> monochrom: even assembly language isn't very direct
2022-09-30 21:07:06 +0200 <EvanR> your quantum state is entangled with the computer hardware in some sense
2022-09-30 21:07:21 +0200 <dminuoso> int-e: Even machine code isnt very direct either for AMD64 CPUs :>
2022-09-30 21:07:24 +0200 <sm> could anyone explain how you're supposed to use https://hackage.haskell.org/package/time-parsers-0.1.2.1/docs/Data-Time-Parsers.html ?
2022-09-30 21:07:47 +0200 <EvanR> and everything you ever told the computer to do was superdetermined at the beginning of the universe!
2022-09-30 21:07:53 +0200 <dminuoso> Your machine code gets compiled into micro ops by a big black box of micro code.
2022-09-30 21:07:53 +0200 <hololeap> well, it's not quite a bimap, but that would probably be the best thing to use if I do write it myself
2022-09-30 21:08:13 +0200 <dminuoso> hololeap: Or are you looking for a kind of tree perhaps?
2022-09-30 21:08:23 +0200 <monochrom> Humanity started using fire without understanding fire.
2022-09-30 21:08:37 +0200 <EvanR> same with computers
2022-09-30 21:08:41 +0200 <EvanR> and computation
2022-09-30 21:08:43 +0200 <sm> also do we approve of "case undefined" in https://hackage.haskell.org/package/time-parsers-0.1.2.1/docs/src/Data.Time.Parsers.html#timeZone ?
2022-09-30 21:08:43 +0200 <monochrom> Every time you enjoy a BBQ or a nicely grilled steak, remember that.
2022-09-30 21:09:13 +0200 <dminuoso> sm: instantiate m at a suitable type satisfying CharParsing, LookAheadParsing and Monad, and use that?
2022-09-30 21:09:23 +0200 <monochrom> If every human were like every monad student "I don't understand fire so I refuse to just go ahead and use fire", ...
2022-09-30 21:09:25 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds)
2022-09-30 21:09:25 +0200 <int-e> dminuoso: Well at least you will find machine code travel along the memory interfaces. (There's no point to this, I just wanted to tease monochrom a bit.)
2022-09-30 21:09:44 +0200 <monochrom> Well I guess we would all enjoy beef sashimi and tartar steak instead :)
2022-09-30 21:09:48 +0200 <sm> dminuoso: I'm needing more..
2022-09-30 21:09:55 +0200 <dminuoso> more what?
2022-09-30 21:10:08 +0200 <dminuoso> sm: Mind my asking, what is is that you want to parse?
2022-09-30 21:10:12 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
2022-09-30 21:10:15 +0200 <EvanR> I've played enough minecraft to know you need to cook the food for best results
2022-09-30 21:10:16 +0200 <sm> clear advice
2022-09-30 21:10:25 +0200 <sm> dminuoso: a time zone, in this case
2022-09-30 21:10:33 +0200 <sm> I thought I'd save some time and use this
2022-09-30 21:10:44 +0200 <EvanR> same with computations
2022-09-30 21:10:44 +0200 <geekosaur> time zones are hell
2022-09-30 21:10:53 +0200 <sm> but it's got me baffled
2022-09-30 21:11:06 +0200 <dminuoso> There's that crufty ancient library that all linux comes with.. uh what is its name again
2022-09-30 21:11:17 +0200 <EvanR> olsen timezone package has parsers right?
2022-09-30 21:11:20 +0200 <sm> I see that DateParsing is... a triple ?
2022-09-30 21:11:24 +0200 <hololeap> no, I just want something that has all the standard Map functions, but the value is always a collection of values, and it also includes something like `getKey :: ThingMap k v -> v -> k` in addition to `lookup :: ThingMap k v -> k -> Set v`
2022-09-30 21:11:27 +0200 <sm> how does that even..
2022-09-30 21:11:31 +0200 <dminuoso> sm: a triple constraint
2022-09-30 21:11:52 +0200 <monochrom> sm: I would be more happy if it were "case () of", but really it doesn't matter to me.
2022-09-30 21:12:03 +0200 <dminuoso> zonedTime :: DateParsing m => m ZonedTime
2022-09-30 21:12:04 +0200 <dminuoso> zonedTime :: (CharParsing m, LookAheadParsing m, Monad m) => m ZonedTime
2022-09-30 21:12:07 +0200 <dminuoso> These two are the same thing
2022-09-30 21:12:07 +0200king_gs(~Thunderbi@2806:103e:29:5a6:d0be:f9c4:80c9:e8c5) (Remote host closed the connection)
2022-09-30 21:12:18 +0200 <hololeap> anyway I can write it if need be
2022-09-30 21:12:19 +0200 <dminuoso> sm: See why I mean "pick a type m that satisfies these three constraints"?
2022-09-30 21:12:48 +0200 <dminuoso> sm: You would click on CharParsing and LookAheadParsing, see what kind of instances these come with, and look for a type supported in both
2022-09-30 21:12:52 +0200ec(~ec@gateway/tor-sasl/ec)
2022-09-30 21:12:52 +0200 <monochrom> More precisely I would be most happy with MultiWayIf, but here we're looking at a piece of code that predates that.
2022-09-30 21:12:56 +0200 <sm> yes I got that general sense myself but it is far from obvious
2022-09-30 21:13:10 +0200 <sm> this is one of those undocumented packages we hear about
2022-09-30 21:13:10 +0200 <dminuoso> sm: You can use ReadP or attoparsec Parser for example.
2022-09-30 21:13:14 +0200 <sm> thanks
2022-09-30 21:14:38 +0200 <sm> doh, I can just use parseTimeM like I'm already doing
2022-09-30 21:15:45 +0200 <sm> parseTimeM False defaultTimeLocale "%Z" "UTC" :: Maybe TimeZone
2022-09-30 21:17:02 +0200califax(~califax@user/califx) (Quit: ZNC 1.8.2 - https://znc.in)
2022-09-30 21:17:02 +0200vglfr(~vglfr@145.224.100.164) (Read error: Connection reset by peer)
2022-09-30 21:17:02 +0200ellensol(~ellen@178-78-210-152.customers.ownit.se)
2022-09-30 21:17:13 +0200vglfr(~vglfr@145.224.100.164)
2022-09-30 21:17:32 +0200califax(~califax@user/califx)
2022-09-30 21:17:33 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-09-30 21:17:41 +0200 <monochrom> int-e: Basically the definition of "use", aka "black-box use", comes with a lower bound of indirectness.
2022-09-30 21:17:46 +0200 <EvanR> I always though if I was going to do industrial timezone bullshit I'd use timezone-olsen package
2022-09-30 21:17:54 +0200beteigeuze(~Thunderbi@2001:8a0:61b5:6101:f0c:e4e3:bfdc:91df) (Ping timeout: 268 seconds)
2022-09-30 21:18:40 +0200 <EvanR> which defines the thing TimeZoneSeries, which is usually what a TimeZone ends up being
2022-09-30 21:18:52 +0200 <dminuoso> What is the corresponding C facility to interact with tzdb?
2022-09-30 21:19:08 +0200waldo(~waldo@user/waldo) (Ping timeout: 268 seconds)
2022-09-30 21:20:10 +0200pavonia(~user@user/siracusa)
2022-09-30 21:20:54 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2022-09-30 21:21:03 +0200waldo(~waldo@user/waldo)
2022-09-30 21:21:13 +0200ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2022-09-30 21:21:13 +0200jpds1(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-09-30 21:21:13 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-09-30 21:21:15 +0200 <EvanR> there's tzset
2022-09-30 21:21:26 +0200 <EvanR> but that only does 1 thing
2022-09-30 21:21:47 +0200jpds1(~jpds@gateway/tor-sasl/jpds)
2022-09-30 21:21:54 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2022-09-30 21:21:59 +0200ec(~ec@gateway/tor-sasl/ec)
2022-09-30 21:22:07 +0200 <geekosaur> there's a library for the olsen tzdb stuff, iirc it's bundled with timezone-olsen?
2022-09-30 21:22:17 +0200 <geekosaur> but not standard on e.g. linux
2022-09-30 21:23:31 +0200mrmr(~mrmr@user/mrmr) (Quit: Ping timeout (120 seconds))
2022-09-30 21:23:42 +0200califax(~califax@user/califx)
2022-09-30 21:23:48 +0200mrmr(~mrmr@user/mrmr)
2022-09-30 21:24:14 +0200gustik(~gustik@2a01:c844:2457:2220:475d:34f:d571:996f) (Quit: Leaving)
2022-09-30 21:25:29 +0200acidjnk(~acidjnk@p200300d6e7137a85945ed0a823b800bd.dip0.t-ipconnect.de)
2022-09-30 21:26:30 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:b833:229b:a9d8:c346)
2022-09-30 21:28:01 +0200lysrosalind
2022-09-30 21:30:51 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-09-30 21:31:51 +0200ellensol(~ellen@178-78-210-152.customers.ownit.se) (Ping timeout: 252 seconds)
2022-09-30 21:33:03 +0200ellensol(~ellen@178-78-210-152.customers.ownit.se)
2022-09-30 21:33:55 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-09-30 21:34:11 +0200jakalx(~jakalx@base.jakalx.net)
2022-09-30 21:37:15 +0200codaraxis(~codaraxis@user/codaraxis)
2022-09-30 21:37:41 +0200ellensol(~ellen@178-78-210-152.customers.ownit.se) (Ping timeout: 260 seconds)
2022-09-30 21:37:46 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 21:41:33 +0200mrmr9(~mrmr@user/mrmr)
2022-09-30 21:42:06 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
2022-09-30 21:43:15 +0200mrmr(~mrmr@user/mrmr) (Ping timeout: 268 seconds)
2022-09-30 21:43:15 +0200mrmr9mrmr
2022-09-30 21:46:10 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2022-09-30 21:50:09 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2022-09-30 21:53:00 +0200skithought sashimi had to be fish
2022-09-30 21:53:47 +0200 <ski> a `ThingMap k v' sounds like it's representing a functional relation (from `v' to `k'), which can be used both forwards and backwards
2022-09-30 21:54:03 +0200 <monochrom> There are urchin and octopus too. And then there is beef.
2022-09-30 21:54:19 +0200ellensol(~ellen@178-78-210-152.customers.ownit.se)
2022-09-30 21:54:41 +0200 <ski> hm, okay
2022-09-30 21:54:59 +0200skiimagines sea bovines
2022-09-30 21:56:34 +0200 <Rembane> Like manates?
2022-09-30 21:56:42 +0200 <talismanick> I just tried `cabal install hood` - it appears it requires base <4.11 :|
2022-09-30 21:57:08 +0200 <talismanick> Are there any other debuggers like it? I'm intrigued by this concept of debugging by observing the sequence of intermediate data structures generated
2022-09-30 21:57:22 +0200 <monochrom> hood is probably very old and not updated.
2022-09-30 21:57:53 +0200 <talismanick> It'd mesh well with what I've learned from "Algorithm Design With Haskell", and seems like a good way to search for space leaks
2022-09-30 21:58:39 +0200 <monochrom> You can try telling cabal "--allow-newer" but if there are compile-time errors it can be a rabbit hole to bring the code up to date.
2022-09-30 21:59:23 +0200 <ski> Rembane : .. maybe ?
2022-09-30 21:59:27 +0200 <talismanick> Let's see... what fails is a dependency, FPretty
2022-09-30 21:59:43 +0200 <sclv> hood is likely extremely bitrotted but also it would be a good project to get it up to date
2022-09-30 22:00:15 +0200waldo(~waldo@user/waldo) (Quit: quit)
2022-09-30 22:00:37 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 22:00:53 +0200 <talismanick> Oh my god, 800 lines of error messages
2022-09-30 22:01:22 +0200ski. o O ( "Luvly jubly !" )
2022-09-30 22:01:33 +0200 <talismanick> 86 instances of the word "error" when grepping, 64 from FPretty
2022-09-30 22:03:10 +0200 <geekosaur> hood knows a bit too much about ghc internals, which will have changed drastically since it was written
2022-09-30 22:03:36 +0200 <ski> (hm, there's also a `hood2', and `GHood')
2022-09-30 22:04:06 +0200 <geekosaur> the only other thing like it I know is ghc-vis, which might even be up to date (hm, don't know about ghc9 though)
2022-09-30 22:04:19 +0200skiidly reminisces Buddha
2022-09-30 22:05:18 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
2022-09-30 22:07:28 +0200causal(~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0e)
2022-09-30 22:07:43 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 265 seconds)
2022-09-30 22:08:00 +0200 <geekosaur> iirc GHood is just a GUI wrapper for hood. no idea about hood2
2022-09-30 22:08:14 +0200rosalind(lys@id-194105.uxbridge.irccloud.com) (Quit: bbl)
2022-09-30 22:12:21 +0200 <talismanick> hood2 and ghc-vis both fail to compile
2022-09-30 22:12:55 +0200 <talismanick> buddha appears Hugs-related and even predates hood, so I presume it won't work with GHC
2022-09-30 22:13:31 +0200ellensol(~ellen@178-78-210-152.customers.ownit.se) (Ping timeout: 265 seconds)
2022-09-30 22:13:51 +0200shapr(~user@68.54.166.125) (Ping timeout: 260 seconds)
2022-09-30 22:16:30 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 258 seconds)
2022-09-30 22:16:30 +0200gmg(~user@user/gehmehgeh) (Ping timeout: 258 seconds)
2022-09-30 22:17:23 +0200dr_merijn(~dr_merijn@86-86-29-250.fixed.kpn.net)
2022-09-30 22:17:26 +0200kenran(~user@user/kenran)
2022-09-30 22:17:45 +0200gmg(~user@user/gehmehgeh)
2022-09-30 22:18:04 +0200vglfr(~vglfr@145.224.100.164) (Ping timeout: 244 seconds)
2022-09-30 22:19:28 +0200kenran(~user@user/kenran) (Remote host closed the connection)
2022-09-30 22:20:55 +0200Everything(~Everythin@37.115.210.35)
2022-09-30 22:21:45 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2022-09-30 22:22:13 +0200dr_merijn(~dr_merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 265 seconds)
2022-09-30 22:24:08 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-09-30 22:25:11 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Ping timeout: 268 seconds)
2022-09-30 22:25:48 +0200talismanick(~talismani@96-67-197-217-static.hfc.comcastbusiness.net) (Ping timeout: 268 seconds)
2022-09-30 22:26:48 +0200kenran(~user@user/kenran)
2022-09-30 22:27:14 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 258 seconds)
2022-09-30 22:28:00 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds)
2022-09-30 22:28:47 +0200kenran(~user@user/kenran) (Read error: Connection reset by peer)
2022-09-30 22:30:02 +0200kenran(~user@user/kenran)
2022-09-30 22:30:04 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 22:30:31 +0200ec(~ec@gateway/tor-sasl/ec)
2022-09-30 22:32:03 +0200ardell(~ardell@user/ardell)
2022-09-30 22:33:09 +0200rosalind(rosalind@id-194105.uxbridge.irccloud.com)
2022-09-30 22:34:06 +0200rosalind(rosalind@id-194105.uxbridge.irccloud.com) ()
2022-09-30 22:35:43 +0200lys(lys@id-194105.uxbridge.irccloud.com)
2022-09-30 22:36:15 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
2022-09-30 22:38:21 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 258 seconds)
2022-09-30 22:38:36 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2022-09-30 22:40:39 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-09-30 22:41:10 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-09-30 22:42:38 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-09-30 22:43:20 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2022-09-30 22:45:21 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-09-30 22:45:26 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-09-30 22:51:03 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 252 seconds)
2022-09-30 22:51:40 +0200lagash(lagash@lagash.shelltalk.net) (Ping timeout: 244 seconds)
2022-09-30 22:56:26 +0200mrmr(~mrmr@user/mrmr) (Ping timeout: 260 seconds)
2022-09-30 22:58:36 +0200lagash(lagash@lagash.shelltalk.net)
2022-09-30 22:59:24 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-09-30 23:01:40 +0200rockymarine(~rocky@user/rockymarine)
2022-09-30 23:04:02 +0200JimL(~quassel@89-162-2-132.fiber.signal.no)
2022-09-30 23:07:09 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 244 seconds)
2022-09-30 23:08:01 +0200Cerins(~Cerins@balticom-142-106-43.balticom.lv) (Quit: Leaving)
2022-09-30 23:08:06 +0200x7Ot(~x7Ot@2804:14d:78a6:85fe:8df8:3066:639f:5a59)
2022-09-30 23:10:13 +0200x7Ot(~x7Ot@2804:14d:78a6:85fe:8df8:3066:639f:5a59) (Client Quit)
2022-09-30 23:10:38 +0200lysrosalind
2022-09-30 23:13:55 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2022-09-30 23:15:27 +0200rockymarine(~rocky@user/rockymarine)
2022-09-30 23:16:15 +0200ellensol(~ellen@178-78-210-152.customers.ownit.se)
2022-09-30 23:16:39 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-09-30 23:18:34 +0200rosalind(lys@id-194105.uxbridge.irccloud.com) (Quit: Time)
2022-09-30 23:20:45 +0200ellensol(~ellen@178-78-210-152.customers.ownit.se) (Ping timeout: 252 seconds)
2022-09-30 23:21:31 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 260 seconds)
2022-09-30 23:24:43 +0200acidjnk(~acidjnk@p200300d6e7137a85945ed0a823b800bd.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2022-09-30 23:26:11 +0200mmhat(~mmh@p200300f1c7062359ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-09-30 23:31:19 +0200bilegeek(~bilegeek@2600:1008:b018:1dfc:44e1:aaa5:595f:8e17)
2022-09-30 23:31:58 +0200zebrag(~chris@user/zebrag) (Ping timeout: 244 seconds)
2022-09-30 23:32:41 +0200kenran(~user@user/kenran) (Remote host closed the connection)
2022-09-30 23:35:21 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-09-30 23:39:06 +0200mmhat(~mmh@p200300f1c7062333ee086bfffe095315.dip0.t-ipconnect.de)
2022-09-30 23:41:31 +0200shapr(~user@68.54.166.125)
2022-09-30 23:44:07 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-09-30 23:44:21 +0200talismanick(~talismani@c-73-41-86-39.hsd1.ca.comcast.net)
2022-09-30 23:44:49 +0200 <shapr> @quote
2022-09-30 23:44:49 +0200 <lambdabot> cowardlydragon says: [from a reddit comment thread] Don't get me started on monad. What is that, a man with a single testicle?
2022-09-30 23:51:34 +0200moonsheep(~user@user/moonsheep)
2022-09-30 23:52:30 +0200thyriaen(~thyriaen@2a02:8109:8340:686c:7383:e0e2:ad95:9fce)
2022-09-30 23:55:01 +0200ellensol(~ellen@178-78-210-152.customers.ownit.se)
2022-09-30 23:56:21 +0200rockymarine(~rocky@user/rockymarine)
2022-09-30 23:56:28 +0200mixphix(~cigsender@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Ping timeout: 265 seconds)
2022-09-30 23:59:07 +0200 <monochrom> haha how does lambdabot actually chooses quotes to match recent conversations?!
2022-09-30 23:59:18 +0200rosalind(rosalind@id-194105.uxbridge.irccloud.com)