Home liberachat/#haskell: Logs Calendar

Logs on 2024-07-26 (liberachat/#haskell)

00:08:09 <kupi> anyone here used the xiaomi community app here to unlock lisa? I have loggin in with my 8 year old account but it says 0 days in community. Do I have to wait 30 days?
00:09:07 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds)
00:09:44 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Ping timeout: 264 seconds)
00:10:16 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
00:21:13 <kupi> sorry, wrong channel
00:31:38 misterfish joins (~misterfis@84.53.85.146)
00:39:48 bolivood joins (~bolivood@user/bolivood)
00:44:19 <bolivood> haskell is the worst
00:44:37 <bolivood> functional puritan who complicate even the most straightforward problems
00:45:17 <Axman6> ... except for all the others
00:45:41 <Axman6> bolivood: don't use it then, I promise we won't be offended
00:46:13 <EvanR> we're making simple things simple (or somethings slightly wordy) while making seemingly impossible things not that hard
00:46:34 <EvanR> seemingly impossible functional programs
00:46:45 <Axman6> needs more tardin monad
00:46:50 <Axman6> tardis!
00:46:55 <Inst> oh, this is an actual account
00:47:04 <Inst> bolivood: why are you angry at Haskell?
00:47:17 <bolivood> because i am forced to work with this crap at work
00:47:27 <Inst> bolivood -> bollywood?
00:47:28 <bolivood> convetions that you invented that are "Correct", and lots of "magic"
00:47:41 <Axman6> bolivood: Wanna swap jobs then?
00:47:46 <bolivood> and a fanatical community resistant to change
00:47:51 <Axman6> you can play with python and C++ and VHDL
00:47:59 <bolivood> inflexible stubborn, making it even harder to adopt modern practices
00:48:10 <Axman6> "modern practices"?
00:48:11 <Inst> Axman6: iirc there's a bunch of Indians trained by Alexander Granin at Juspay
00:48:16 <EvanR> I would report your enslavement to the authorities
00:48:27 <EvanR> instead of us
00:48:34 <Axman6> bolivood: if you just want to rane, you're welsome to go to #haskell-offtopic, but this isn't the place, we've got work to do
00:48:58 <Inst> please do so in #haskell-offtopic, I'm fascinated in your story!
00:49:06 <Axman6> Inst: account says Frankfurt, but who knows
00:49:45 <Axman6> bolivood: why did you take a job writing Haskell if you have such a passionate hate for it? I would never take a Scala job, for that reason (previous job burned me very hard)
00:49:59 <Inst> I mean that's the only scenario I can imagine
00:51:54 <jackdk> *shrug* more than most communities I've been in, in the Haskell world I can usually find a blog article or paper explaining why things are so
00:52:29 <Axman6> I'm really curious what modern practices means
00:53:01 <Axman6> I use the git, I've done the devops, I've cried over the TDD, all in Haskell
00:53:16 <bolivood> Axman6, it's a good job in other aspects
00:53:36 <jackdk> Could be as simple as things like LSP stuff. I've heard opinions on HLS that range from "it's my second-favourite LSP" to extreme frustration
00:54:34 <Inst> or it could be an actually cursed Haskell codebase, or lunatics in management, who knows, lots of things are possible
00:54:56 <bolivood> Axman6, i'm not burning out, i focus on the positive aspects of the job i do enjoy
00:57:41 <Inst> well, i hope you're having a fun time, and yeah, there are legitimate things to complain about with haskell
00:58:44 <Inst> there are also illegitimate things, would be fun to figure out which is which, though
00:59:13 ddellacosta joins (~ddellacos@ool-44c73d29.dyn.optonline.net)
00:59:54 × xff0x quits (~xff0x@2405:6580:b080:900:c695:3b30:f4d2:83e8) (Ping timeout: 276 seconds)
01:01:06 starburst joins (~starburst@2601:602:480:9390:8538:eef:4cf0:528d)
01:02:57 <starburst> is there anyone here familiar with pipes? : )
01:04:49 <bolivood> I was told to stop complaining here Inst
01:05:07 <Inst> yeah i guess you're under an NDA
01:05:40 <starburst> what ar you hiding from us
01:11:08 xff0x joins (~xff0x@2405:6580:b080:900:c695:3b30:f4d2:83e8)
01:13:55 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 260 seconds)
01:18:38 × starburst quits (~starburst@2601:602:480:9390:8538:eef:4cf0:528d) (Quit: Client closed)
01:22:41 billchenchina- joins (~billchenc@210.110.131.60)
01:29:51 starburst joins (~starburst@2601:602:480:9390:8538:eef:4cf0:528d)
01:37:11 TonyStone joins (~TonyStone@user/TonyStone)
01:38:13 <jackdk> Nobody said anything about pipes while you were gone, starburst. I'm sorry to say that I've never successfully written a nontrivial program using it.
01:38:40 <starburst> thankyou jackdk
01:39:02 <jackdk> These days I use `streaming` by default, conduit when things are simple and I have to interop with existing libraries. I don't know if "just change your project's streaming library" is a move you can make
01:39:59 <jackdk> http://jackkelly.name/blog/archives/2024/04/13/why_streaming_is_my_favourite_haskell_streaming_library/index.html
01:40:33 JuanDaugherty joins (~juan@user/JuanDaugherty)
01:41:51 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
01:41:52 <starburst> i am a nooby noob trying to wrap my head around this sort of thing.. tyty
01:45:48 <starburst> ooh.. streaming seems interesting.. i saw the package briefly but wasnt sure if they were doing the same sort of thing..
01:47:21 <jackdk> What is your goal, at this stage? Do you have a specific project or are you just trying to learn how to stream?
01:48:35 <jackdk> This affects whether I recommend conduit or streaming; I consider streaming the better library but many common http libs etc can take in a conduit.
01:50:13 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds)
01:50:22 <starburst> sort of both in a way.. it seems like streaming is an element of my project sort of..
01:53:15 <jackdk> If the streaming itself is complicated, I will usually do the hard bits using the `streaming` library, and convert to a conduit if/when I need to.
01:54:45 <starburst> i feel like its silly to be so vague but.. i hav had this shape of the way i would like to pass control through a program in my mind for a while.. and some packages and paradigms feel like they allude to how to design that kind of shape
01:56:57 <glguy> I don't think it crosses into "non-trivial" but I did a terminal implementation of 2048 using pipes a long time ago
01:58:13 × ystael quits (~ystael@user/ystael) (Ping timeout: 248 seconds)
01:58:43 <starburst> hoyo.. do you understand the secrets
01:58:54 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
01:59:01 × starburst quits (~starburst@2601:602:480:9390:8538:eef:4cf0:528d) (Quit: Client closed)
01:59:12 <Axman6> did it ever terminate? My problem with pipes was always with wanting to do something once the streeam had finished - like taking a hash of a stream of bytestrings and finalising when it's done
01:59:34 <glguy> Terminate? you could exit the game
01:59:59 <glguy> https://github.com/glguy/TwosGame/blob/master/Main.hs
02:00:10 starburst joins (~starburst@2601:602:480:9390:8538:eef:4cf0:528d)
02:00:10 <starburst> oops
02:00:49 <glguy> https://asciinema.org/a/X8H7ErYy6F3AJtVy4VxPTBOF7
02:01:33 <starburst> aowh
02:02:15 lystra joins (~lystra@208.59.105.41)
02:04:59 × starburst quits (~starburst@2601:602:480:9390:8538:eef:4cf0:528d) (Client Quit)
02:09:50 starburst joins (~starburst@2601:602:480:9390:8538:eef:4cf0:528d)
02:09:56 <starburst> oops again
02:13:55 × td_ quits (~td@i53870924.versanet.de) (Ping timeout: 264 seconds)
02:14:07 <starburst> hmm.. pipes.. streams..
02:15:15 td_ joins (~td@i53870934.versanet.de)
02:15:27 <starburst> does anyon here enjoy explaining things
02:17:06 <geekosaur> half the channel, but they're likely to dive off into irrelevancies (well, to you)
02:17:34 <starburst> ty geeko
02:17:58 <JuanDaugherty> starburst, https://meansofproduction.biz/pub/codeSamples/xsqlbrws.cls.txt 30+ yo smalltalk code that uses named pipes, they were maybe 10 or 20 years old at that point
02:18:32 <Axman6> we love explaining things
02:19:10 <jackdk> But it's easier to respond to specific questions than open-ended ones, and the act of formulating the question itself can often be really helpful to the asker
02:19:21 <starburst> wo juan.. interesting
02:19:31 <monochrom> I enjoy getting paid to explain things.
02:19:44 <Axman6> lucky
02:19:56 <starburst> that is tru jack mhm
02:22:45 × xff0x quits (~xff0x@2405:6580:b080:900:c695:3b30:f4d2:83e8) (Ping timeout: 248 seconds)
02:24:05 <Lears> I have a question for #haskell almost every day. Disappointingly, the process of turning it into a /good/ question resolves the issue 99% of the time.
02:25:10 <starburst> m.. i am trying to figure out what i even want to know..
02:25:40 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
02:25:41 <monochrom> The other 1% of the time the good question is equivalent to one of the Millenium problems. >:)
02:28:51 Guest58 joins (~Guest62@32.221.120.181)
02:32:52 <starburst> uhgg >_<
02:34:26 <starburst> i feel like iv read about readers several times b4 but.. its hard for me to hav a good mental image of them
02:35:44 <monochrom> Perhaps the problem is with "image" and you should develop "rules", "algebra" instead of "image".
02:37:18 <starburst> how do i do that??
02:37:38 × CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
02:38:08 × starburst quits (~starburst@2601:602:480:9390:8538:eef:4cf0:528d) (Quit: Client closed)
02:38:33 starburst joins (~starburst@2601:602:480:9390:8538:eef:4cf0:528d)
02:38:44 <monochrom> Stop reading picturely "tutorials". Start reading, writing, playing with actual code.
02:38:56 <starburst> that keeps happening.. i hope i didnt miss any fun
02:39:34 <starburst> anyfin.. oops
02:39:47 <geekosaur> we have logs, see the channel topic
02:39:54 <geekosaur> in this case, you missed nothing
02:40:10 CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de)
02:40:23 <starburst> that is true.. i wish i had a pc with me rn
02:40:37 <starburst> tyy ty
02:41:51 <starburst> mayb i could.. run a lil bit of haskell.. hmmm
02:42:06 <geekosaur> https://play.haskell.org
02:42:44 <starburst> thanks : )
02:43:59 × starburst quits (~starburst@2601:602:480:9390:8538:eef:4cf0:528d) (Quit: Client closed)
02:44:13 starburst joins (~starburst@2601:602:480:9390:8538:eef:4cf0:528d)
02:46:59 × starburst quits (~starburst@2601:602:480:9390:8538:eef:4cf0:528d) (Client Quit)
02:50:23 starburst joins (~starburst@2601:602:480:9390:8538:eef:4cf0:528d)
02:50:46 <starburst> it may b a bit hard to stay connected here for now.. thank you for talking to me
02:51:11 <starburst> i will explore using the language an see what i can find…. <3
02:51:54 <geekosaur> godbolt.org also has a Haskell environment, I believe
02:53:50 <starburst> ty m(- _ -)m
02:54:28 <starburst> i hope you hav good dreams tonight
02:56:25 <starburst> goodbye for now (   )/
02:56:53 × starburst quits (~starburst@2601:602:480:9390:8538:eef:4cf0:528d) (Quit: Client closed)
02:57:20 torkel joins (~sindu@83-243-191-191.fth.tafjordconnect.net)
02:58:29 × Inst quits (~Inst@user/Inst) (Ping timeout: 248 seconds)
03:13:49 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
03:14:53 × slack1256 quits (~slack1256@2803:c600:5111:80cb:ffde:2539:7254:2ff5) (Remote host closed the connection)
03:16:32 × billchenchina- quits (~billchenc@210.110.131.60) (Quit: Leaving)
03:38:54 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 252 seconds)
03:40:55 × torkel quits (~sindu@83-243-191-191.fth.tafjordconnect.net) (Ping timeout: 260 seconds)
03:53:56 × aforemny_ quits (~aforemny@i59F516CE.versanet.de) (Ping timeout: 252 seconds)
03:54:06 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds)
03:54:09 aforemny joins (~aforemny@i59F516C5.versanet.de)
03:59:18 rosco joins (~rosco@125.235.232.224)
04:14:34 × kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
04:37:40 × rosco quits (~rosco@125.235.232.224) (Quit: Lost terminal)
04:40:46 × brettgilio quits (~brettgili@154.3.237.18) (Quit: The Lounge - https://thelounge.chat)
04:41:03 brettgilio joins (~brettgili@154.3.237.18)
04:56:39 × euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.)
05:00:52 × CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
05:01:03 × Sgeo quits (~Sgeo@user/sgeo) (Ping timeout: 276 seconds)
05:01:53 euphores joins (~SASL_euph@user/euphores)
05:01:55 × Square2 quits (~Square@user/square) (Ping timeout: 264 seconds)
05:03:17 CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de)
05:06:55 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
05:18:03 paddymahoney joins (~paddymaho@pool-99-250-30-88.cpe.net.cable.rogers.com)
05:18:13 × paddymahoney quits (~paddymaho@pool-99-250-30-88.cpe.net.cable.rogers.com) (Client Quit)
05:19:18 Sgeo joins (~Sgeo@user/sgeo)
05:22:19 michalz joins (~michalz@185.246.207.197)
05:24:29 <mauke> <starburst> i feel like iv read about readers several times b4 but.. its hard for me to hav a good mental image of them <- if you mean Control.Monad.Reader, that's just a (very thin) abstraction layer over functions
05:24:50 <mauke> `Reader e a` is like `e -> a`
05:30:29 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
05:38:17 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
05:48:38 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
06:08:00 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
06:15:28 × euleritian quits (~euleritia@77.22.252.56) (Ping timeout: 265 seconds)
06:16:08 euleritian joins (~euleritia@dynamic-176-006-132-141.176.6.pool.telefonica.de)
06:24:16 sord937 joins (~sord937@gateway/tor-sasl/sord937)
06:27:19 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
06:30:20 × ft quits (~ft@p3e9bc4e7.dip0.t-ipconnect.de) (Quit: leaving)
06:40:49 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
06:47:54 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
06:50:54 CiaoSen joins (~Jura@2a05:5800:2ef:3300:e6b9:7aff:fe80:3d03)
06:51:40 acidjnk joins (~acidjnk@p200300d6e72cfb67cc718b9c5fdaa04e.dip0.t-ipconnect.de)
06:52:31 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:54:35 × m1dnight quits (~christoph@78-20-61-242.access.telenet.be) (Quit: WeeChat 4.3.5)
06:55:17 m1dnight joins (~christoph@78-20-61-242.access.telenet.be)
07:15:38 wootehfoot joins (~wootehfoo@user/wootehfoot)
07:22:20 paddymahoney joins (~paddymaho@pool-99-250-30-88.cpe.net.cable.rogers.com)
07:29:38 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:31:06 × econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
07:44:49 × rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer)
07:45:22 rvalue joins (~rvalue@user/rvalue)
07:47:06 × tinjamin quits (~tinjamin@banshee.h4x0r.space) (Quit: The Lounge - https://thelounge.chat)
07:47:52 × euleritian quits (~euleritia@dynamic-176-006-132-141.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
07:48:07 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
07:48:09 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
07:48:11 tinjamin joins (~tinjamin@banshee.h4x0r.space)
07:55:42 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
08:05:49 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
08:06:24 euleritian joins (~euleritia@dynamic-176-006-132-141.176.6.pool.telefonica.de)
08:19:02 × euleritian quits (~euleritia@dynamic-176-006-132-141.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
08:19:20 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
08:33:41 zetef joins (~quassel@2a02:2f00:5202:1200:3fa2:e908:b522:fa2f)
08:33:50 × zetef quits (~quassel@2a02:2f00:5202:1200:3fa2:e908:b522:fa2f) (Client Quit)
08:35:37 danse-nr3 joins (~danse-nr3@user/danse-nr3)
08:40:43 cpressey joins (~weechat@176.254.71.203)
08:49:32 chele joins (~chele@user/chele)
08:55:04 misterfish joins (~misterfis@h239071.upc-h.chello.nl)
08:57:46 × ddellacosta quits (~ddellacos@ool-44c73d29.dyn.optonline.net) (Ping timeout: 244 seconds)
08:57:53 ash3en joins (~Thunderbi@2a02:3100:7cbf:eb01:7d12:84f8:86d0:6566)
08:57:56 × ash3en quits (~Thunderbi@2a02:3100:7cbf:eb01:7d12:84f8:86d0:6566) (Client Quit)
08:58:04 ddellacosta joins (~ddellacos@68.199.61.41)
09:03:03 cfricke joins (~cfricke@user/cfricke)
09:09:20 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
09:12:20 __monty__ joins (~toonn@user/toonn)
09:28:05 × driib3 quits (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat)
09:28:42 driib3 joins (~driib@vmi931078.contaboserver.net)
09:33:56 × jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 244 seconds)
09:34:01 jespada_ joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
09:45:35 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
09:46:14 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 245 seconds)
09:46:36 euleritian joins (~euleritia@dynamic-176-006-132-141.176.6.pool.telefonica.de)
09:52:14 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
09:57:11 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
09:58:05 omegatron joins (~some@user/omegatron)
09:58:05 × jespada_ quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Quit: My Mac has gone to sleep. ZZZzzz…)
09:58:17 × CiaoSen quits (~Jura@2a05:5800:2ef:3300:e6b9:7aff:fe80:3d03) (Ping timeout: 265 seconds)
09:59:06 jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
10:02:41 × poscat quits (~poscat@user/poscat) (Ping timeout: 255 seconds)
10:04:05 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 248 seconds)
10:06:07 Midjak joins (~MarciZ@82.66.147.146)
10:06:35 ash3en joins (~Thunderbi@2a02:3100:7cbf:eb01:7d12:84f8:86d0:6566)
10:06:55 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2)
10:10:08 cfricke joins (~cfricke@user/cfricke)
10:14:10 Inst joins (~Inst@user/Inst)
10:15:00 × danse-nr3 quits (~danse-nr3@user/danse-nr3) (Read error: Connection reset by peer)
10:15:16 danse-nr3 joins (~danse-nr3@user/danse-nr3)
10:19:55 × ash3en quits (~Thunderbi@2a02:3100:7cbf:eb01:7d12:84f8:86d0:6566) (Quit: ash3en)
10:20:22 ash3en joins (~Thunderbi@2a02:3100:7cbf:eb01:7d12:84f8:86d0:6566)
10:21:09 × ash3en quits (~Thunderbi@2a02:3100:7cbf:eb01:7d12:84f8:86d0:6566) (Client Quit)
10:23:03 <Inst> regarding the link to the old bodigrim post
10:23:39 <Inst> i was implicitly complaining that it's dumb that GHC can't optimize a functional version of this to be competitive with the imperative version
10:23:53 <Inst> every time you break out the ST / STUArray etc, it's an admission of defeat
10:23:58 <danse-nr3> patches welcome?
10:27:22 × tomku quits (~tomku@user/tomku) (Ping timeout: 252 seconds)
10:27:36 tomku joins (~tomku@user/tomku)
10:27:40 × euleritian quits (~euleritia@dynamic-176-006-132-141.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
10:27:58 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
10:28:29 APic joins (apic@apic.name)
10:28:50 poscat joins (~poscat@user/poscat)
10:35:01 × misterfish quits (~misterfis@h239071.upc-h.chello.nl) (Ping timeout: 248 seconds)
10:37:53 CiaoSen joins (~Jura@2a05:5800:2ef:3300:e6b9:7aff:fe80:3d03)
10:40:50 ash3en joins (~Thunderbi@2a02:3100:7cbf:eb01:7d12:84f8:86d0:6566)
10:46:17 × ash3en quits (~Thunderbi@2a02:3100:7cbf:eb01:7d12:84f8:86d0:6566) (Quit: ash3en)
10:46:27 × danse-nr3 quits (~danse-nr3@user/danse-nr3) (Quit: life calls)
10:51:37 × Guest58 quits (~Guest62@32.221.120.181) (Quit: Client closed)
11:03:14 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
11:04:11 misterfish joins (~misterfis@87.215.131.102)
11:21:53 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
11:22:49 euleritian joins (~euleritia@dynamic-176-006-132-141.176.6.pool.telefonica.de)
11:28:39 torkel joins (~sindu@83-243-191-191.fth.tafjordconnect.net)
11:32:19 × jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Quit: My Mac has gone to sleep. ZZZzzz…)
11:33:15 jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
11:35:58 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 4.2.2)
11:38:39 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
11:52:51 × jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Read error: Connection reset by peer)
11:52:57 jespada_ joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
11:54:49 × drdo quits (~drdo@bl5-29-74.dsl.telepac.pt) (Ping timeout: 260 seconds)
11:55:13 drdo joins (~drdo@bl5-29-74.dsl.telepac.pt)
12:02:15 × AlexNoo quits (~AlexNoo@94.233.241.102) (Read error: Connection reset by peer)
12:02:35 × cpressey quits (~weechat@176.254.71.203) (Ping timeout: 260 seconds)
12:08:29 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
12:18:46 xff0x joins (~xff0x@2405:6580:b080:900:8b26:ef3c:7f31:7c41)
12:31:40 × noctux quits (~noctux@user/noctux) (Remote host closed the connection)
12:34:09 noctux joins (~noctux@user/noctux)
12:36:38 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:37:45 × chele quits (~chele@user/chele) (Remote host closed the connection)
12:37:45 × omegatron quits (~some@user/omegatron) (Quit: Power is a curious thing. It can be contained, hidden, locked away, and yet it always breaks free.)
12:39:53 machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net)
12:41:45 × td_ quits (~td@i53870934.versanet.de) (Quit: waking up from the american dream ...)
12:43:47 × __monty__ quits (~toonn@user/toonn) (Ping timeout: 255 seconds)
12:44:22 td_ joins (~td@i53870934.versanet.de)
12:47:14 danse-nr3 joins (~danse-nr3@user/danse-nr3)
12:53:23 Guest69 joins (~Guest69@remote.ols-na.com)
12:53:31 Guest69 parts (~Guest69@remote.ols-na.com) ()
12:59:18 cpressey joins (~weechat@176.254.71.203)
13:14:02 × AlexZenon quits (~alzenon@94.233.241.102) (Ping timeout: 265 seconds)
13:15:06 ystael joins (~ystael@user/ystael)
13:18:47 AlexZenon joins (~alzenon@94.233.241.102)
13:26:59 × AlexZenon quits (~alzenon@94.233.241.102) (Ping timeout: 255 seconds)
13:34:06 AlexZenon joins (~alzenon@94.233.241.102)
13:35:38 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
13:42:03 jerg joins (~jerg@2001:a61:247a:4700::bb0)
13:42:21 × euleritian quits (~euleritia@dynamic-176-006-132-141.176.6.pool.telefonica.de) (Ping timeout: 276 seconds)
13:42:29 euleritian joins (~euleritia@dynamic-176-006-141-019.176.6.pool.telefonica.de)
13:57:23 __monty__ joins (~toonn@user/toonn)
13:58:53 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2)
14:06:36 Square2 joins (~Square@user/square)
14:11:18 tram parts (~tram@2a02:587:b43:7300:a89e:683a:2da1:a2ed) ()
14:16:23 × ddellacosta quits (~ddellacos@68.199.61.41) (Ping timeout: 265 seconds)
14:19:25 × euleritian quits (~euleritia@dynamic-176-006-141-019.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
14:19:43 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
14:20:59 Vajb joins (~Vajb@85-76-106-240-nat.elisa-mobile.fi)
14:22:21 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
14:22:28 euleritian joins (~euleritia@dynamic-176-006-141-019.176.6.pool.telefonica.de)
14:22:49 × euleritian quits (~euleritia@dynamic-176-006-141-019.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
14:23:06 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
14:24:39 × CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
14:25:44 AlexNoo joins (~AlexNoo@94.233.241.102)
14:26:46 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
14:27:01 CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de)
14:34:35 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
14:35:22 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
14:41:53 Sgeo joins (~Sgeo@user/sgeo)
14:42:54 cfricke joins (~cfricke@user/cfricke)
14:51:59 × CiaoSen quits (~Jura@2a05:5800:2ef:3300:e6b9:7aff:fe80:3d03) (Ping timeout: 272 seconds)
14:58:29 × misterfish quits (~misterfis@87.215.131.102) (Ping timeout: 248 seconds)
14:59:57 × xdminsy quits (~xdminsy@117.147.70.227) (Remote host closed the connection)
15:00:27 xdminsy joins (~xdminsy@117.147.70.227)
15:04:55 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds)
15:05:37 euleritian joins (~euleritia@dynamic-176-006-141-019.176.6.pool.telefonica.de)
15:07:00 × euleritian quits (~euleritia@dynamic-176-006-141-019.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
15:07:18 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
15:08:16 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:09:07 × xdminsy quits (~xdminsy@117.147.70.227) (Quit: Konversation terminated!)
15:12:42 LawrenceBerkheim joins (~LBerkheim@user/LawrenceBerkheim)
15:12:56 <LawrenceBerkheim> Hello, is anybody here??
15:13:34 <LawrenceBerkheim> Fuck my colourscheme is a disaster for irc, my bad
15:13:52 × danse-nr3 quits (~danse-nr3@user/danse-nr3) (Quit: on the move)
15:14:18 × LawrenceBerkheim quits (~LBerkheim@user/LawrenceBerkheim) (Client Quit)
15:14:45 <kaol> This is #haskell, what's your Haskell emergency?
15:16:47 LawrenceBerkheim joins (~LBerkheim@user/LawrenceBerkheim)
15:16:54 <LawrenceBerkheim> Hello?
15:17:01 <LawrenceBerkheim> Fuck me
15:17:03 × LawrenceBerkheim quits (~LBerkheim@user/LawrenceBerkheim) (Client Quit)
15:25:58 Lawrence1erkheim joins (~LBerkheim@user/LawrenceBerkheim)
15:26:00 <Lawrence1erkheim> Finally fixed my trash
15:26:09 <kaol> This is #haskell, what's your Haskell emergency?
15:26:21 <Lawrence1erkheim> Okay, I've been learning haskell for a while, and I'm getting the hang of it, but I'm very confused about one bit
15:26:25 <EvanR> Sir this is a haskell
15:26:32 <Lawrence1erkheim> I'm looking at a codebase that's not mine
15:26:41 <Lawrence1erkheim> And I see a bunch of data's defined
15:26:59 <Lawrence1erkheim> And I see there are two types of them
15:27:18 <Lawrence1erkheim> One is like `data Value = Something`
15:27:29 <Lawrence1erkheim> another is like `data Value = Value Something`
15:27:40 <Lawrence1erkheim> i.e. the token after `data` repeats
15:27:41 <EvanR> that's the same kind of thing, a data type definition
15:27:44 <Lawrence1erkheim> What's the deal? What do I google?
15:27:59 <kaol> type variables
15:28:00 <EvanR> in the second example, the two Value are different things
15:28:09 <EvanR> the first Value is the type name
15:28:15 <EvanR> the second Value, confusingly, is the constructor name
15:28:39 <EvanR> they inhabit different namespaces
15:28:54 <EvanR> so it's possible to make the match, but it's annoying
15:28:54 kupi joins (uid212005@id-212005.hampstead.irccloud.com)
15:29:00 <EvanR> s/the/them/
15:29:40 <Lawrence1erkheim> Hmm ok
15:30:06 <EvanR> look at section 2.2 https://www.haskell.org/tutorial/goodies.html
15:31:05 <EvanR> (there are no type variables in your question though, whose names are in all lowercase)
15:31:41 <EvanR> case matters
15:32:47 <kaol> Applying one at least. I don't think you can really explain what's going on without talking about them.
15:33:08 <Lawrence1erkheim> Yea in the example I'm looking at right now it's IntegerValue, StringValue, etc., separated with `|`'s. I made the connection that it means that the thing can be either one of those.
15:33:25 <Lawrence1erkheim> Regardless
15:33:26 <kaol> That's sum types and that's correct.
15:33:46 <Lawrence1erkheim> I'll do some reading and probably come back with more questions because I should probably try understanding them instead of monkey-coding
15:33:53 <EvanR> good idea
15:34:07 <kaol> I'd suggest reading about Maybe.
15:34:36 <EvanR> section 2.2 and the section after it does get into all that
15:34:41 <Lawrence1erkheim> Yea it's also bumming around in the code. I kind of understand it, but not confident about it (couldn't utilise it myself from scratch)
15:34:53 <Lawrence1erkheim> Talking about the `Maybe` ^^^
15:35:00 <kaol> It's (almost) the simplest case where you ever encounter a construct like Value Something.
15:35:27 <Lawrence1erkheim> Oh shit is `Something` an actual keyword? I used it as a placeholder for a type lol
15:35:30 <Lawrence1erkheim> My bad
15:35:32 <EvanR> no
15:36:29 <EvanR> data Point = Pt Int Int, here there is 1 way to construct a Point, using the Pt constructor. And it requires 2 Ints to do it
15:36:33 <kaol> It's completely fine as an example placeholder, as long as it's upper case. Lower case would mean something else.
15:36:49 <EvanR> so when you say data Value = MkValue Something, Something is referring to some type named Something
15:37:37 <EvanR> data Value = IntValue Int | StringValue String is similar but now there's 2 constructors
15:37:56 <EvanR> Int and String are types defined somewhere
15:38:02 <EvanR> serving as the "payload"
15:38:53 <Lawrence1erkheim> And what are `IntValue`/`StringValue` in those cases?
15:39:14 <EvanR> constructor names
15:39:32 <Lawrence1erkheim> Do they have to be defined elsewhere?
15:39:37 <EvanR> that is the definition
15:39:42 <Lawrence1erkheim> Ah
15:40:00 <EvanR> it produces functions you can use the construct Values... and they have a type... StringValue :: String -> Value
15:40:04 <EvanR> can use to*
15:40:43 <kaol> And you can use them for pattern matching as well (like "foo (StringValue x) = x").
15:41:17 <EvanR> case v of { IntValue i -> <code>; StringValue str -> <code> }
15:42:11 <EvanR> lets you discover the constructor used and unpack the Value
15:45:48 <Lawrence1erkheim> Okay so let's say I have two ,,variables'' or however I call them, one of them is ThingA = IntegerType | StringType, another is ThingB = IntegerType int | StringType String. ThingA denotes the types, and ThingB denotes the instances of types?
15:45:59 <EvanR> two data types?
15:46:00 <Lawrence1erkheim> IntegerType Int*
15:46:15 <Lawrence1erkheim> Yea let's say
15:46:27 <Lawrence1erkheim> In practice I have to check if ThingB is of instance ThingA
15:46:35 <EvanR> no
15:46:44 <EvanR> first of all, did you mean to leave out the data keyword
15:46:59 <EvanR> which is needed to define data types
15:47:01 <Lawrence1erkheim> My bad, the keyword is supposed to be there
15:47:11 <EvanR> ok then you're not "assigning" variables or anything
15:47:31 <EvanR> which are lower case, btw
15:47:33 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
15:48:11 <EvanR> ThingA and ThingB, assuming you put them in different modules because of name collisions, are two independent types with no relation
15:48:15 <EvanR> there's no subtype relationship
15:49:42 <Lawrence1erkheim> Wait is `IntegerType` builtin or am I defining a thing that is `IntegerType`?
15:49:49 <EvanR> you're defining that
15:49:53 <Lawrence1erkheim> Just like in those examples `data Colour = Red | Green`
15:49:53 <EvanR> (two different ways)
15:50:03 <EvanR> yeah
15:50:07 <Lawrence1erkheim> Oh
15:50:23 <EvanR> Red :: Colour
15:50:26 <EvanR> Green :: Colour
15:50:36 <Lawrence1erkheim> Ok I'm looking at the instantiations it makes more sense
15:50:36 <EvanR> IntegerType :: Int -> ThingB
15:51:04 <EvanR> using the word Type in the constructor may be confusing, because constructors create values not types
15:51:22 <EvanR> Red and Green are values, Colour is a type
15:51:27 gorignak joins (~gorignak@user/gorignak)
15:51:32 <Lawrence1erkheim> Oh my fucking god I went blind to words. ThingA was IntegerType, etc., while ThingB was IntegerValue, etc.
15:51:35 <Lawrence1erkheim> I am going to die
15:51:57 <EvanR> and so using Value in the constructor name is redundant xD
15:51:59 × gorignak quits (~gorignak@user/gorignak) (Client Quit)
15:52:21 <EvanR> e.g. RedValue, GreenValue, it is redundant
15:52:30 <Lawrence1erkheim> And IntegerValue is an actual thing (?) (e.g. here https://hackage.haskell.org/package/present-4.1.0/docs/Present.html)
15:52:46 <EvanR> some library defined it, haven't heard of that one
15:52:59 <kaol> RedWrittenInLatinCharacters
15:53:02 <EvanR> many things in haskell are defined somewhere, e.g. type String = [Char]
15:53:23 <EvanR> data Bool = False | True
15:54:51 <Lawrence1erkheim> Wait so I have instances of ThingA, which is StringType|IntegerType, and then I have a bunch of ThingB, which is StringValue String|IntegerValue Integer. What would be the haskell-esque way to check that the instances match?
15:55:13 <Lawrence1erkheim> Do I need to define a map that's like ,,StringType and StringValue are cool", etc?
15:55:23 danse-nr3 joins (~danse-nr3@user/danse-nr3)
15:55:31 <EvanR> here is a more popular library with a 'Value' type defined similarly https://hackage.haskell.org/package/aeson-2.2.3.0/docs/src/Data.Aeson.Types.Internal.html#Value
15:55:38 <EvanR> it's modelling a JSON value
15:56:18 <EvanR> Lawrence1erkheim, I guess you could write a function with type ThingA -> ThingB -> Bool ?
15:56:38 <Lawrence1erkheim> Based
15:56:38 <EvanR> but more likely how and where you match depends on what you really want to do
15:56:41 <Lawrence1erkheim> I'll try that
15:57:13 <Lawrence1erkheim> Last time I didn't understand those signatures with arrows so I'm glad I got this far
15:57:16 <Lawrence1erkheim> Thanks guys
15:57:16 <Lawrence1erkheim> I may be back
15:58:08 <EvanR> Bool tests appear a lot less in haskell because pattern matching, usually
15:58:17 <EvanR> than in many other languages
15:59:04 <Lawrence1erkheim> I've noticed. When I had to pull out my first bool I wondered if I'm doing something wrong since I didn't need them up until that point.
15:59:27 <EvanR> yeah it's definitely a red flag of sorts
15:59:48 <EvanR> but some utilities take a Bool so you need them there
15:59:51 <EvanR> :t filter
15:59:52 <lambdabot> (a -> Bool) -> [a] -> [a]
16:01:22 <kaol> And that's something you'll encounter much later but a lot of constructions that'd take conditionals in some other language are just done with monads.
16:02:38 JuanDaugherty joins (~juan@user/JuanDaugherty)
16:02:42 <EvanR> :t mapMaybe
16:02:43 <lambdabot> (a -> Maybe b) -> [a] -> [b]
16:03:05 <EvanR> (another way to filter but not really monad related)
16:04:21 <Lawrence1erkheim> it worked!
16:04:27 <Lawrence1erkheim> Thanks guys
16:04:45 <Lawrence1erkheim> well fuck the working
16:04:49 <Lawrence1erkheim> I get it now (hopefully)
16:07:34 <ncf> very monad-related in fact
16:07:46 <ncf> Maybe is a submonad of []
16:08:00 <ncf> this is just bind restricted to that submonad in the first argument
16:08:35 <ncf> (alternatively, [] is a right Maybe-module)
16:09:00 JuanDaugherty parts (~juan@user/JuanDaugherty) ()
16:10:06 <EvanR> so you want to filter a list, let me first introduce you to some category theory xD
16:11:48 <kaol> https://aphyr.com/posts/342-typing-the-technical-interview "Haskell is a dynamically-typed, interpreted language."
16:20:24 econo_ joins (uid147250@id-147250.tinside.irccloud.com)
16:29:21 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:34:52 × danse-nr3 quits (~danse-nr3@user/danse-nr3) (Read error: Connection reset by peer)
16:35:00 danse-nr3 joins (~danse-nr3@user/danse-nr3)
16:36:07 × cpressey quits (~weechat@176.254.71.203) (Ping timeout: 264 seconds)
16:44:14 × ridcully quits (~ridcully@p508ac2b4.dip0.t-ipconnect.de) (Quit: WeeChat 4.3.4)
16:44:31 ridcully joins (~ridcully@p508ac2b4.dip0.t-ipconnect.de)
16:48:59 billchenchina- joins (~billchenc@118.38.173.226)
16:49:35 stefior joins (~Stefior@c-71-57-237-142.hsd1.pa.comcast.net)
16:50:32 <stefior> hello
16:51:33 × micro quits (~micro@user/micro) (Ping timeout: 248 seconds)
16:51:55 <danse-nr3> \o stefior
16:52:03 micro joins (~micro@user/micro)
16:52:18 <stefior> Hi danse-nr3, this is my first time using irc
16:52:34 <danse-nr3> and you came straight to #haskell
16:52:46 <stefior> I looked up good channels
16:53:31 <EvanR> good. Now install GHC
16:53:42 <EvanR> suit up, lock and load
16:54:17 <stefior> I have it installed. I haven't ever tried haskell yet though since I figured I'm not a good enough developer yet for functional stuff
16:54:38 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
16:56:19 ft joins (~ft@p3e9bc4e7.dip0.t-ipconnect.de)
16:58:51 <stefior> irc is a lot more like discord than I thought
16:59:24 × danse-nr3 quits (~danse-nr3@user/danse-nr3) (Quit: life calls)
17:02:18 <EvanR> discord was the winning competitor from an era that was trying to make a modernized (and for profit) version of IRC
17:02:59 <EvanR> they took some design aspects and left many others behind
17:03:28 <stefior> That makes sense
17:05:08 <stefior> I like how this is though too. I think the only thing I'd really miss is images
17:06:02 <dolio> Given the occasional spambots, it's probably good there's no automatic images.
17:09:43 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 4.2.2)
17:11:29 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:18:10 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
17:18:14 skyesoss joins (~Thunderbi@128.135.204.35)
17:18:47 <mauke> I bet some clients render URL previews and images
17:20:19 <monochrom> If you use such a client in an office with other people, you expose yourself to the risk and legal liabilities of displaying NFSW content.
17:20:45 <monochrom> I can't understand why so many people desire it, as if bad actors did not exist on Earth.
17:20:57 <stefior> I'm on weechat. I'm still trying to figure out how to make my name yellow, but I'd be fine with going to the URL instead for images, just something to get used to
17:21:34 <mauke> https://c.tenor.com/1iSARWJr-TEAAAAC/tenor.gif
17:21:34 <stefior> I only really use discord to text my wife anyway, but your point about the nsfw content makes sense
17:22:07 <stefior> haha @mauke
17:22:15 <Rembane> stefior: /me bla perhaps?
17:22:21 stefior bla
17:22:24 <Rembane> mauke: Megasus!
17:22:32 <mauke> stefior: how does weechat render your name by default?
17:22:35 <stefior> white
17:23:17 <stefior> I'm looking at fset for all the weechat.color stuff now, but I also found colorize_nicks.py
17:26:17 <mauke> 08,02stefior
17:26:25 <mauke> ok, that kind of worked on my end
17:26:34 <stefior> That is yellow with light blue background for me
17:26:36 <stefior> stefior
17:26:53 <stefior> The colorize_nicks.py isn't working, maybe I did the wrong command or need to restart
17:27:17 <stefior> I meant making it yellow on the left side though, not in messages, just because I'm used to it being yellow in discord
17:27:25 <mauke> from the name I'm guessing it's supposed to assign a different color to each user?
17:29:25 <stefior> I think it is supposed to colorize people's names when in messages actually, like when I said "@mauke" earlier it shows "mouke" in green, just like on the left side. Or is that default behavior?
17:29:31 <Lawrence1erkheim> Mauke it's blue for me too
17:29:34 × destituion quits (~destituio@83-243-191-191.fth.tafjordconnect.net) (Ping timeout: 245 seconds)
17:29:44 <Lawrence1erkheim> and I'm on irssi
17:30:00 <Lawrence1erkheim> how did you do that
17:30:50 <mauke> IRC colors
17:31:08 <mauke> #haskell doesn't filter formatting codes from messages
17:31:14 <mauke> and most clients render them
17:31:20 × torkel quits (~sindu@83-243-191-191.fth.tafjordconnect.net) (Ping timeout: 264 seconds)
17:31:53 <mauke> https://modern.ircdocs.horse/formatting.html#forms-of-color-codes
17:33:00 <Lawrence1erkheim> I'm not sure my client will be happy with those
17:33:12 <Lawrence1erkheim> How the fuck do I input a hex character
17:33:35 <stefior> 0x04 Test
17:33:45 <stefior> \0x04 test
17:33:49 <Lawrence1erkheim> there we go
17:33:54 <Lawrence1erkheim> the triforce of irc
17:34:21 <Lawrence1erkheim> asd
17:34:22 <Lawrence1erkheim> Oh shit
17:34:30 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
17:34:49 <stefior> ^test^
17:35:13 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
17:35:17 <stefior> ^Itest^I
17:35:22 <Lawrence1erkheim> Well, irssi is doing great
17:35:26 <mauke> you can literally type Ctrl-C into irssi
17:36:04 <Lawrence1erkheim> stefior you have to put in the raw hex characters, which usually isn't easily doable with keyboard. I'm doing my shenanigans with the help of my client, it has special keybinds to put the settings in.
17:36:08 <mauke> remember, kids: Ctrl-A is '\1', Ctrl-B is '\2', Ctrl-C is '\3', etc
17:36:17 <Lawrence1erkheim> mauke Ctrl-C kills my terminal :(
17:36:30 <mauke> then your terminal is very broken
17:36:36 <Lawrence1erkheim> Wait a minute
17:36:50 <stefior> ah, I see
17:37:12 LawrenceBerkheim joins (~LBerkheim@user/LawrenceBerkheim)
17:37:24 <LawrenceBerkheim> I fucked around, and Ctrl-Z actually killed irssi
17:37:32 <mauke> no, just paused it
17:37:34 <mauke> type 'fg'
17:37:43 <LawrenceBerkheim> 3 Green?
17:37:49 <LawrenceBerkheim> fg
17:37:51 <LawrenceBerkheim> Fuck
17:37:54 <LawrenceBerkheim> I'm such a zoomer
17:38:15 <mauke> fg is a unix command :-)
17:38:16 <dolio> Yeah, your other nick is still here.
17:38:27 <glguy> until it pings out
17:38:32 <mauke> it will eventually get kicked when it fails to respond to PINGs
17:38:33 <LawrenceBerkheim> Ughghgh
17:38:42 <LawrenceBerkheim> Goddamnit
17:38:46 <glguy> chil
17:38:47 <glguy> l
17:38:48 <LawrenceBerkheim> Well now I learned
17:39:19 <mauke> if this is the same shell session, you can probably /quit your current instance and then type 'fg' to get the old one back
17:39:26 <int-e> . o O ( nothing that a reinstall from scratch won't fix )
17:39:30 int-e runs
17:39:43 torkel joins (~sindu@83-243-191-191.fth.tafjordconnect.net)
17:40:48 × Lawrence1erkheim quits (~LBerkheim@user/LawrenceBerkheim) (Ping timeout: 245 seconds)
17:41:30 × micro quits (~micro@user/micro) (Ping timeout: 252 seconds)
17:42:21 micro joins (~micro@user/micro)
17:46:33 <stefior> test
17:46:54 <stefior> italic
17:47:03 <stefior> reverse
17:47:10 <LawrenceBerkheim> You're doing it!
17:47:10 <stefior> bold
17:47:37 <LawrenceBerkheim> pretty bold of you
17:47:43 <LawrenceBerkheim> XD
17:48:11 <stefior> 08:)
17:48:41 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
17:49:03 <stefior> still don't know how to make my name yellow though
17:49:14 <LawrenceBerkheim> What client are you using?
17:49:19 <stefior> weechat
17:49:23 <LawrenceBerkheim> Unfortunate
17:49:35 <LawrenceBerkheim> Gonna have to find it yourself
17:50:02 <stefior> I could switch to irssi if it's better. This is my first day using irc so I have no preference
17:51:41 <LawrenceBerkheim> Depends on you
17:51:59 <LawrenceBerkheim> I find it hard to believe that weechat doesn't do the shit irssi does
17:52:12 <stefior> huh, it's possible to use discord and slack from within weechat
17:52:20 <LawrenceBerkheim> I use it since I'm being pretentious without a desktop environment, so it fits my stuff better
17:52:51 <stefior> what do you mean by "without a desktop environment"?
17:53:04 <LawrenceBerkheim> Oh shit it's that time of the day
17:53:11 <LawrenceBerkheim> COUGH
17:53:19 <LawrenceBerkheim> i use arch btw
17:53:26 <stefior> XD
17:53:59 <stefior> I'm on ubuntu in wsl right now, so I'm not a cool kid
17:54:02 <LawrenceBerkheim> https://i.redd.it/y583j1mzw1g91.jpg
17:54:03 <LawrenceBerkheim> this is me
17:54:04 <glguy> don't forget this is #haskell
17:54:22 <LawrenceBerkheim> True
17:54:25 <stefior> haha
17:54:39 <Rembane> #haskell-offtopic is an amazing channel for these topics.
17:55:35 <LawrenceBerkheim> Let me try
17:56:27 <stefior> how do I see all the haskell channels? I thought there was just one. I looked it up now and found this: https://www.haskell.org/irc/ but are they connected like how they are on discord?
17:56:54 <Rembane> stefior: /join #haskell-offtopic
17:57:01 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
17:57:46 <stefior> thanks rembane
17:58:17 × stefior quits (~Stefior@c-71-57-237-142.hsd1.pa.comcast.net) (Quit: WeeChat 3.5)
17:58:54 stefior joins (~Stefior@c-71-57-237-142.hsd1.pa.comcast.net)
17:59:17 misterfish joins (~misterfis@84.53.85.146)
17:59:23 <Rembane> stefior: np!
18:00:08 × torkel quits (~sindu@83-243-191-191.fth.tafjordconnect.net) (Ping timeout: 255 seconds)
18:03:35 torkel joins (~sindu@83-243-191-191.fth.tafjordconnect.net)
18:05:40 <EvanR> stefior, yeah even on discord I disable image previews
18:06:16 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:23:06 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:35:30 <Inst> btw
18:35:50 <Inst> existential types allow you to stuff arbitrary functions and data into a sum type, right?
18:36:00 <Inst> well, obv they do, but do they allow you to use them?
18:36:13 <dolio> Use them how?
18:36:38 <Inst> basically Haskell can be forced to be dynamic if people are going to complain about strict static typing all the time, just rip off JSON from Aeson or EDN
18:36:48 <Inst> but both formats don't support functions in objects
18:37:01 <EvanR> you can put functions in a record without existential types
18:37:21 <EvanR> or sum type
18:37:52 <Inst> no, but I mean putting an arbitrary function of arbitrary type
18:38:20 <EvanR> which means what, Unknown1 -> Unknown2
18:38:50 <EvanR> data Cool a b = K1 (a -> b) | K2 (a -> b)
18:39:04 <Inst> but hide the a -> b
18:39:17 <dolio> Have you seen Data.Dynamic?
18:40:10 <Inst> essentially it comes down to wanting [Dynamic]okay, dynamic can do this
18:40:29 <EvanR> which doesn't rely on existentials
18:40:30 <Inst> I have, just thought there was a limitation that blocked fromDyn from being able to encode functions
18:40:42 <EvanR> > typeOf ord
18:40:43 <lambdabot> Char -> Int
18:40:44 <Inst> so you can have a keymap of string keys + dynamic
18:40:50 <Inst> then you can go pretend this is JS
18:41:00 × torkel quits (~sindu@83-243-191-191.fth.tafjordconnect.net) (Ping timeout: 252 seconds)
18:41:16 <Inst> it was regarding some guy, probably trolling (hi bolivood), doing standard "i came in from a dynamic language" haskell complaints
18:41:46 <EvanR> haskell can be ridiculously dynamic, making it just as bad as js
18:41:50 <EvanR> more so
18:42:22 <EvanR> that it can't be dynamic isn't a viable argument, that you would want it to be is the issue
18:42:42 <Inst> yup
18:43:01 <Inst> i'm sort of comfortable with default Haskell style and don't really have complaints
18:43:12 <Inst> and there's apparently a ton of people who go "throw the rules out the window if you're doing rapid prototyping"
18:43:48 <EvanR> there's an option for that, -fdefer-type-errors
18:44:09 <EvanR> I don't know how rapid it will make your prototyping though
18:49:37 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
18:49:50 <Inst> thanks, was just wondering about this
18:51:28 <dolio> I'm not really convinced that what such people say makes any actual sense.
18:52:46 <mauke> @let a === b = cast a == Just b
18:52:47 <lambdabot> Defined.
18:52:55 <Inst> okay, this is weird
18:53:09 <mauke> > 'f' === length "three"
18:53:11 <lambdabot> error:
18:53:11 <lambdabot> Ambiguous occurrence ‘===’
18:53:11 <lambdabot> It could refer to
18:53:13 <mauke> aww
18:53:15 <mauke> @undefine
18:53:15 <lambdabot> Undefined.
18:53:16 <Inst> @let u = toDyn (+)
18:53:17 <lambdabot> Defined.
18:53:20 <Inst> @u
18:53:20 <lambdabot> Maybe you meant: undefine undo unlambda unmtl unpf unpl unpointless unshift-topic uptime url users v @ ? .
18:53:33 <Inst> @let u = toDyn (+) in (fromDyn u) 1 2
18:53:33 <lambdabot> Parse failed: Parse error: in
18:53:34 <EvanR> :t u
18:53:36 <lambdabot> error:
18:53:36 <lambdabot> Ambiguous occurrence ‘u’
18:53:36 <lambdabot> It could refer to
18:53:46 <EvanR> gone
18:53:54 <Inst> @(fromDyn u) 1 2
18:53:54 <lambdabot> Unknown command, try @list
18:54:13 × vgtw quits (~vgtw@user/vgtw) (Ping timeout: 248 seconds)
18:54:15 <Inst> @let v = toDyn (+); u = fromDyn v; u 1 2
18:54:16 <lambdabot> Parse failed: TemplateHaskell language extension is not enabled. Please add ...
18:54:32 vgtw joins (~vgtw@user/vgtw)
18:54:35 <Inst> well on ghci it seems as though fromDyn toDyn is mangling the function
18:54:52 <EvanR> > typeOf (+)
18:54:54 <lambdabot> Integer -> Integer -> Integer
18:54:55 <mauke> @undefine
18:54:55 <lambdabot> Undefined.
18:55:01 <Inst> @undefine
18:55:01 <lambdabot> Undefined.
18:55:06 torkel joins (~sindu@83-243-191-191.fth.tafjordconnect.net)
18:55:08 <mauke> > let u = toDyn (+) in fromDyn u
18:55:09 <lambdabot> error:
18:55:10 <lambdabot> • No instance for (Typeable a0)
18:55:10 <lambdabot> arising from a use of ‘show_M27679112337342994988’
18:55:22 <mauke> > let u = toDyn (+) in fromDyn u 1 2
18:55:22 <EvanR> you have to pick the Num
18:55:23 <lambdabot> error:
18:55:24 <lambdabot> • Could not deduce (Typeable t0)
18:55:24 <lambdabot> from the context: (Typeable t, Typeable t1, Num t1, Num (t1 -> t))
18:56:17 Guest24 joins (~Guest24@2601:98a:87f:dc80::a16f)
18:56:31 <Inst> https://paste.tomsmeding.com/tZlAmv8u
18:56:34 <Inst> is there something I'm missing here?
18:56:35 × Guest24 quits (~Guest24@2601:98a:87f:dc80::a16f) (Client Quit)
18:56:42 rvalue- joins (~rvalue@user/rvalue)
18:56:45 <mauke> > let u = toDyn (+) in fromDyn u (error "oops" :: Integer -> Integer -> Integer) 1 2
18:56:46 <lambdabot> 3
18:57:02 <Inst> ah
18:57:41 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 265 seconds)
18:58:10 <Inst> oh, i'm misunderstanding fromDyn
18:58:21 × euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.)
18:59:57 × CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
19:00:20 <mauke> > let u = toDyn '+' in fromDyn u (error "oops" :: Integer -> Integer -> Integer) 1 2
19:00:22 <lambdabot> *Exception: oops
19:00:41 <Inst> ya i set it up as fromDyn (undefined :: Integer -> Integer -> Integer) 1 2
19:02:21 CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de)
19:03:50 <mauke> > let f = toDyn ord; x = toDyn 'A' in (f, x, dynApp f x)
19:03:52 <lambdabot> (<<Char -> Int>>,<<Char>>,<<Int>>)
19:04:24 <mauke> > let f = toDyn ord; x = toDyn 'A' in (f, x, fromDynamic (dynApp f x) :: Maybe Int)
19:04:26 <lambdabot> (<<Char -> Int>>,<<Char>>,Just 65)
19:04:31 rvalue- is now known as rvalue
19:04:48 euphores joins (~SASL_euph@user/euphores)
19:04:51 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:05:25 <mauke> > toDyn (toDyn :: () -> Dynamic)
19:05:27 <lambdabot> <<() -> Dynamic>>
19:05:31 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
19:06:08 <LawrenceBerkheim> Holy sht just figured out what guards are
19:06:10 <LawrenceBerkheim> a bit too late
19:06:12 <LawrenceBerkheim> fucking hell
19:06:14 <LawrenceBerkheim> my brain owie
19:06:40 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
19:07:36 <mauke> simple guards or fancy guards?
19:07:36 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
19:08:22 <LawrenceBerkheim> `|`
19:08:32 <LawrenceBerkheim> I tied comparing Integers and stuff did not work
19:08:37 <LawrenceBerkheim> Got desperate and asked chatgpt
19:08:38 <jle`> nice
19:08:40 <LawrenceBerkheim> It said ,,guards''
19:08:44 <LawrenceBerkheim> I still don't know what's happening
19:08:46 <LawrenceBerkheim> but at least it works
19:08:48 <LawrenceBerkheim> now reading up
19:08:59 <Inst> guards are funny because you can stuff an entire function into guards
19:09:11 <LawrenceBerkheim> During compiling it bitched that the variable was unused and that it was shadowed
19:09:14 <LawrenceBerkheim> I didn't see how
19:09:26 <jle`> ideally guards are taught at the same time defining functions are taught
19:09:27 <LawrenceBerkheim> I remember guards from using TLA
19:09:37 <LawrenceBerkheim> Not sure if similar
19:09:44 <EvanR> > compare 4 9
19:09:46 <lambdabot> LT
19:09:48 <EvanR> > 4 < 9
19:09:49 <lambdabot> True
19:09:54 <EvanR> comparing integers
19:09:55 <mauke> yeah, but what's after the `|`?
19:10:23 euleritian joins (~euleritia@dynamic-176-006-133-059.176.6.pool.telefonica.de)
19:10:38 <Inst> are guards fully equivalent to a combination of case, if then else, and let?
19:11:06 <EvanR> mainly if then else
19:11:14 <EvanR> which is sugar for case analysis
19:11:41 <Inst> i mean pattern guards
19:11:53 <mauke> yeah, it all desugars eventually
19:11:53 <jle`> it's kind of not a direct translation because of fallback behavior
19:11:58 <mauke> just the details are very hairy
19:13:30 <Inst> hmmm, wait, what happens if let in guards has a partial pattern match? let's find out
19:14:27 <mauke> oh, I think I've come up with a new way of defining (&&) without pattern matching
19:14:55 <mauke> (&&) x y | x = y | True = False
19:15:00 <Inst> okay so the let binding is lazy
19:15:51 <Inst> okay, so let can throw a non-exhaustive pattern match error
19:16:27 <Inst> and won't fall through if you add bang patterns
19:16:38 <mauke> > case Nothing of ~(Just x) -> x
19:16:39 <jle`> mauke: that's a neat little definition
19:16:39 <lambdabot> *Exception: <interactive>:(3,1)-(4,22): Non-exhaustive patterns in Just x
19:19:02 <jle`> does it work if you inline the &&, it's a nice little puzzle/golfy brain teaser kind of thing
19:19:06 × LawrenceBerkheim quits (~LBerkheim@user/LawrenceBerkheim) (Quit: Lost terminal)
19:19:12 <jle`> x && y | x = y | True = False
19:19:16 <jle`> hehe
19:19:54 <EvanR> o_O
19:20:07 <jle`> > let x ?? y | x = y | True = False in liftA2 (??) [False, True] [False, True]
19:20:08 × euleritian quits (~euleritia@dynamic-176-006-133-059.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
19:20:09 <lambdabot> [False,False,False,True]
19:20:26 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
19:20:41 <EvanR> I'm going to use this as an introduce to haskell for noobs
19:20:47 <EvanR> introduction
19:20:58 <EvanR> look how simple haskell is xD
19:21:04 <jle`> this is probably damaging to most brains to see, i would not show newcomers this ._.
19:21:10 <EvanR> lol
19:21:15 <jle`> ah i didn't see your last message haha
19:22:01 <jle`> :t let x??y|x=y|True=False in (??)
19:22:02 <lambdabot> Bool -> Bool -> Bool
19:23:15 <EvanR> :t let x??y|x=y|y=x|False=True|True=False
19:23:16 <lambdabot> <no location info>: error:
19:23:16 <lambdabot> not an expression: ‘let x??y|x=y|y=x|False=True|True=False’
19:23:32 <EvanR> :t let x??y|x=y|y=x|False=True|True=False in (??)
19:23:33 <lambdabot> Bool -> Bool -> Bool
19:24:04 <EvanR> now it's more symmetric
19:25:11 <jle`> it's art
19:25:38 <mauke> this sort of thing is exactly how perl got its reputation
19:25:43 <mauke> don't do art, kids
19:26:39 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 245 seconds)
19:27:52 <ncf> x ?? y | x = y | y = x | not x = x | not y = y
19:31:08 <Inst> x ?? y | x = y | y = x | unsafeCoerce "profanity" = undefined
19:33:37 <Inst> so wait, should unsafeCoerce of any non-empty list result in True when the target type is Bool?
19:35:15 <mauke> define "should"
19:35:27 <mauke> you're squarely in UB land here
19:35:34 <Inst> it sort of says so in the name
19:37:17 <EvanR> unsafeShouldWork
19:42:14 × kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
19:44:32 <Inst> hmmm
19:44:46 <Inst> also, has anyone tried to do an O'Neill style Sieve of Atkin?
19:44:53 <Inst> Not sure if it can be done
19:47:10 × infinity0 quits (~infinity0@pwned.gg) (Remote host closed the connection)
19:48:36 gmg joins (~user@user/gehmehgeh)
19:49:08 prolic_ joins (~sasa@181.122.138.24)
19:49:18 jinsun joins (~jinsun@user/jinsun)
19:49:43 <prolic_> hey folks, I just published the next qt5 demo in haskell: https://github.com/prolic/hsqml-demo-manic
19:49:56 <jle`> nice
19:52:31 × gmg quits (~user@user/gehmehgeh) (Client Quit)
19:54:27 infinity0 joins (~infinity0@pwned.gg)
19:55:06 × stefior quits (~Stefior@c-71-57-237-142.hsd1.pa.comcast.net) (Quit: WeeChat 3.5)
19:57:39 gmg joins (~user@user/gehmehgeh)
20:08:17 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:14:10 <Hecate> prolic_: incredible
20:14:53 <prolic_> thanks
20:17:28 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
20:18:00 cpressey joins (~weechat@176.254.71.203)
20:21:23 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
20:22:22 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
20:22:28 × cpressey quits (~weechat@176.254.71.203) (Ping timeout: 252 seconds)
20:29:23 CiaoSen joins (~Jura@2a05:5800:2ef:3300:e6b9:7aff:fe80:3d03)
20:34:36 × foul_owl quits (~kerry@185.216.231.179) (Ping timeout: 272 seconds)
20:46:21 <Hecate> prolic_: I got a compilation error of hsqml on GHC 9.6.6, where can I open a ticket? It would seem your fork has issues disabled
20:46:52 foul_owl joins (~kerry@174-21-147-232.tukw.qwest.net)
20:47:53 × billchenchina- quits (~billchenc@118.38.173.226) (Ping timeout: 265 seconds)
20:48:51 slack1256 joins (~slack1256@2803:c600:5111:80cb:d321:865d:b7ff:34ea)
20:49:29 <slack1256> 1/2 Hey guys, quick TH question. How do I quote this name on TH?
20:49:37 <slack1256> 2/2 deriveFromJSON (aesonPrefix snakeCase) (''IMAPAccountRequest ''Identity)
20:50:05 <slack1256> Obviously ''IMAPAccountRequest ''Identity does not work. It is a HKD
20:57:16 VedantT joins (~VedantT@2603:6000:b500:29a9:ac9a:7661:5229:f762)
20:59:52 × jespada_ quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 252 seconds)
21:01:24 × kimiamania quits (~65804703@user/kimiamania) (Quit: PegeLinux)
21:01:45 kimiamania joins (~65804703@user/kimiamania)
21:01:54 jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
21:08:09 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:19:42 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
21:30:02 <prolic_> Hecate: https://github.com/prolic/HsQML/issues
21:30:56 <prolic_> Hecate: I am using GHC 9.4.8 without issues
21:31:42 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:32:07 × oo_miguel quits (~Thunderbi@78.10.207.46) (Ping timeout: 252 seconds)
21:32:30 × skyesoss quits (~Thunderbi@128.135.204.35) (Ping timeout: 252 seconds)
21:33:28 skyesoss joins (~Thunderbi@128.135.204.35)
21:36:28 × michalz quits (~michalz@185.246.207.197) (Quit: ZNC 1.9.0 - https://znc.in)
21:44:36 × VedantT quits (~VedantT@2603:6000:b500:29a9:ac9a:7661:5229:f762) (Quit: Client closed)
21:50:05 <Hecate> prolic_: <3
21:52:12 pavonia joins (~user@user/siracusa)
21:56:49 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 252 seconds)
22:04:35 × paddymahoney quits (~paddymaho@pool-99-250-30-88.cpe.net.cable.rogers.com) (Ping timeout: 260 seconds)
22:04:48 × prolic_ quits (~sasa@181.122.138.24) (Ping timeout: 276 seconds)
22:05:50 <Inst> no one likes sieve of atkin here?
22:09:52 paddymahoney joins (~paddymaho@pool-99-250-30-88.cpe.net.cable.rogers.com)
22:11:35 <glguy> slack1256: a name is a single thing. One type applied to another isn't a name but would be a Type. What does deriveFromJSON expect?
22:12:10 × foul_owl quits (~kerry@174-21-147-232.tukw.qwest.net) (Ping timeout: 260 seconds)
22:12:58 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:15:01 <Inst> i'm still reading the paper but it looks like it's actually much more condusive to FP than eratosthenes
22:19:14 × Inst quits (~Inst@user/Inst) (Read error: Connection reset by peer)
22:21:54 × CiaoSen quits (~Jura@2a05:5800:2ef:3300:e6b9:7aff:fe80:3d03) (Ping timeout: 260 seconds)
22:24:13 × CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
22:26:34 foul_owl joins (~kerry@185.216.231.180)
22:26:35 CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de)
22:32:53 × SteelBlueSilk quits (~SteelBlue@user/SteelBlueSilk) (Ping timeout: 248 seconds)
22:43:03 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
22:45:12 × acidjnk quits (~acidjnk@p200300d6e72cfb67cc718b9c5fdaa04e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
22:46:48 × Midjak quits (~MarciZ@82.66.147.146) (Quit: This computer has gone to sleep)
22:51:19 × jerg quits (~jerg@2001:a61:247a:4700::bb0) (Ping timeout: 252 seconds)
22:52:48 <dsal> Is there a way to do a sort of stateful update of values identified by a traversal?
22:53:20 <dsal> I've got a fairly complicated nested structure and want to be able to replace a particular field quite deep down. I've got a list of unique values I'd like to apply, but I'm not sure how to thread them through.
22:54:01 <dsal> I could do this without lens, but it seems like a pretty straightforward use case I'd like to avoid writing a bunch of code to do.
23:01:34 <jackdk> dsal: https://hackage.haskell.org/package/lens-5.3.2/docs/Control-Lens-Traversal.html#v:partsOf ?
23:02:21 <dsal> Yes, this looks like it might be the shape I was looking for. Thanks!
23:03:06 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
23:13:34 <dsal> I ended up with partsOf (super . long . traversed . pile . of . traversed . bits) %~ zipWith updateOne someStuff
23:14:11 <EvanR> lens poetry?
23:15:31 <dsal> So much better than writing out all that stuff. There are nine components to that traversal in the real code.
23:19:23 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
23:23:12 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
23:23:27 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
23:26:37 VedantT joins (~VedantT@2603:6000:b500:29a9:ac9a:7661:5229:f762)
23:29:25 × Rodney- quits (~Rodney@90.201.223.82) (Ping timeout: 248 seconds)
23:30:40 × VedantT quits (~VedantT@2603:6000:b500:29a9:ac9a:7661:5229:f762) (Client Quit)
23:31:31 × szkl quits (uid110435@2a03:5180:f:5::1:af63) (Quit: Connection closed for inactivity)
23:40:55 JuanDaugherty joins (~juan@user/JuanDaugherty)
23:42:29 prolic_ joins (~sasa@181.122.138.24)
23:44:22 × machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 244 seconds)
23:45:32 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
23:52:38 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 244 seconds)
23:55:33 × skyesoss quits (~Thunderbi@128.135.204.35) (Ping timeout: 248 seconds)
23:59:32 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 252 seconds)

All times are in UTC on 2024-07-26.