2023/10/27

2023-10-27 00:04:15 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-10-27 00:06:43 +0200falafel(~falafel@62.175.113.194.dyn.user.ono.com)
2023-10-27 00:10:59 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:a583:cfb:37b7:5112)
2023-10-27 00:12:37 +0200accord(uid568320@id-568320.hampstead.irccloud.com)
2023-10-27 00:13:58 +0200mekeor(~user@2001:a61:10c6:e601:550e:a048:6ed7:5ec4)
2023-10-27 00:15:18 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
2023-10-27 00:19:03 +0200falafel_(~falafel@143.244.47.73)
2023-10-27 00:19:49 +0200falafel_(~falafel@143.244.47.73) (Remote host closed the connection)
2023-10-27 00:20:43 +0200falafel(~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 264 seconds)
2023-10-27 00:20:50 +0200Inst_(~Inst@120.244.192.250)
2023-10-27 00:21:54 +0200o-90(~o-90@gateway/tor-sasl/o-90) (Ping timeout: 256 seconds)
2023-10-27 00:23:20 +0200liamzy__(~Inst@120.244.192.250) (Ping timeout: 255 seconds)
2023-10-27 00:27:45 +0200ania123(~ania123@wl-pool2-ont-004.uni-muenster.de)
2023-10-27 00:29:39 +0200 <Inst_> playing around with DLists
2023-10-27 00:29:42 +0200 <Inst_> they're not functors, are they?
2023-10-27 00:29:46 +0200 <Inst_> they seem to be invariant functors?
2023-10-27 00:30:08 +0200 <EvanR> not functors?
2023-10-27 00:30:23 +0200 <EvanR> they're isomorphic to list
2023-10-27 00:30:54 +0200 <Inst_> a fmap on a dlist would be
2023-10-27 00:31:14 +0200 <Inst_> define a fmap on a dlist, then?
2023-10-27 00:31:56 +0200johnw(~johnw@69.62.242.138) (Quit: ZNC - http://znc.in)
2023-10-27 00:32:45 +0200 <int-e> :t \f xs -> (++) (f <$> xs [])
2023-10-27 00:32:46 +0200 <lambdabot> (a1 -> a2) -> ([a3] -> [a1]) -> [a2] -> [a2]
2023-10-27 00:33:01 +0200 <exarkun> which DList do you mean?
2023-10-27 00:35:38 +0200 <int-e> Inst_: note that DList isn't simply any function d :: [a] -> [a]; it also maintains the invariant that d xs = d [] ++ xs.
2023-10-27 00:36:07 +0200 <Inst_> fine, i saw the RWH implementation
2023-10-27 00:36:10 +0200 <Inst_> but that's O(n)
2023-10-27 00:36:10 +0200 <int-e> And that in turn allows you to define a functor instance by going via lists.
2023-10-27 00:36:11 +0200 <Inst_> yuck
2023-10-27 00:36:58 +0200 <int-e> you're going to apply the function for each list element anyway... and it is lazy
2023-10-27 00:36:59 +0200ski(~ski@c188-148-130-34.bredband.tele2.se)
2023-10-27 00:37:08 +0200 <Inst_> yeah, thinking it through
2023-10-27 00:38:02 +0200swamp_(~zmt00@user/zmt00)
2023-10-27 00:38:25 +0200 <Inst_> also, how do I get an analogue to replicate for DLists?
2023-10-27 00:38:42 +0200 <EvanR> @src replicate
2023-10-27 00:38:42 +0200 <lambdabot> replicate n x = take n (repeat x)
2023-10-27 00:38:52 +0200falafel_(~falafel@62.175.113.194.dyn.user.ono.com)
2023-10-27 00:39:00 +0200 <Inst_> i defined my own replicate, I thought replicateM would solve my problem, but nooope
2023-10-27 00:39:31 +0200 <Inst_> my hanoi program is too unperformant, partially because i'm defining the screens via lists
2023-10-27 00:39:32 +0200 <int-e> fromList (replicate n x) is just fine?
2023-10-27 00:39:36 +0200 <EvanR> well, just use replicate directly and ++ on DList should work
2023-10-27 00:40:05 +0200 <Inst_> well, it's probably because i'm calling SGR functions from Console.Terminal.ANSI on every print char
2023-10-27 00:40:15 +0200 <Inst_> ColoredChar = MkCC [SGR] Char
2023-10-27 00:41:05 +0200 <Inst_> putColoredChar (MkCC sgr char) = setSGR sgr >> putChar char >> setSGR defaults
2023-10-27 00:41:06 +0200 <EvanR> towers of hanoi uses stacks right, so normal lists are the best choice
2023-10-27 00:41:16 +0200 <int-e> In many cases, DList isn't really faster than plain lists... its main benefit is that it cures the quadratic blowup from left-associative list concatenation.
2023-10-27 00:41:33 +0200 <Inst_> yeah and I'm using that to define my lists trivially :(
2023-10-27 00:41:35 +0200 <int-e> So if your code doesn't suffer from that, DList won't help you much.
2023-10-27 00:42:04 +0200 <int-e> (And possibly even hurt? I don't really know.)
2023-10-27 00:42:04 +0200zmt01(~zmt00@user/zmt00) (Ping timeout: 272 seconds)
2023-10-27 00:42:46 +0200 <Inst_> three times I saw DLists, one, ben gamari dumped a dlist implementation for some lexer he was writing
2023-10-27 00:42:50 +0200 <Inst_> well, two times
2023-10-27 00:42:51 +0200 <int-e> Somehow my main use of DList (well, Endo [a]) is for the writer monad.
2023-10-27 00:42:52 +0200 <Inst_> second time, sort
2023-10-27 00:43:27 +0200 <int-e> (Which does suffer from left-biased nested concatenation.)
2023-10-27 00:44:23 +0200 <EvanR> if you only append 1 item at a time then finally start consuming from the beginning, you can use a prepend-then-reverse normal list
2023-10-27 00:44:39 +0200Friendship(~Friendshi@user/Friendship) (Ping timeout: 240 seconds)
2023-10-27 00:44:49 +0200 <EvanR> Endo [a] lets you append multiple items without having to pre-reverse them
2023-10-27 00:45:04 +0200 <EvanR> but in the end you still have to do something like a reverse on the thunks
2023-10-27 00:51:03 +0200falafel_(~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 240 seconds)
2023-10-27 00:52:33 +0200Square3(~Square4@user/square) (Remote host closed the connection)
2023-10-27 00:53:58 +0200 <Inst_> i'm annoyed, i have a much nicer tower of hanoi app than the py original, but i can't get it to be performant :(
2023-10-27 00:54:17 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2023-10-27 00:54:54 +0200 <Inst_> https://media.discordapp.net/attachments/968989726633779215/1167234894691307550/image.png?ex=654d6…
2023-10-27 00:55:51 +0200 <Inst_> https://media.discordapp.net/attachments/968989726633779215/1167235136258064434/image.png?ex=654d6…
2023-10-27 00:55:54 +0200 <EvanR> what does "performant" mean here
2023-10-27 00:56:18 +0200 <EvanR> and did you compare it with the python version
2023-10-27 00:57:23 +0200 <Inst_> i mean that every time the screen updates, i get some kind of flicker because it's not printing the output image fast enough :(
2023-10-27 01:02:00 +0200 <Inst_> https://media.discordapp.net/attachments/968989726633779215/1167236641723793418/image.png?ex=654d6…
2023-10-27 01:02:03 +0200 <Inst_> py original
2023-10-27 01:03:00 +0200 <EvanR> the performance implied by these screenshots is not apparent to me
2023-10-27 01:03:14 +0200 <Inst_> you can't see the performance issue with the haskell version, tbh
2023-10-27 01:03:29 +0200acidjnk(~acidjnk@p200300d6e72b93039c291881441b2222.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
2023-10-27 01:03:33 +0200 <Inst_> would need a screenshot, the problem is that it's updating the screen via clearScreen from Console.Terminal.ANSI, then prenting out new text
2023-10-27 01:03:41 +0200 <EvanR> can you like, quantify and measure the performance as you know a number or something
2023-10-27 01:05:48 +0200 <Inst_> do you know where cabal run dumps its profiler? ugh, this is going to suck
2023-10-27 01:06:38 +0200 <EvanR> even just timing how long it takes to run the program with the time command is better than what you've been presenting
2023-10-27 01:07:38 +0200 <geekosaur> is the python program clearing the screen between frames also?
2023-10-27 01:08:07 +0200 <geekosaur> or is it using something like ncurses?
2023-10-27 01:08:36 +0200ddellacosta(~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 260 seconds)
2023-10-27 01:09:15 +0200ddellacosta(~ddellacos@ool-44c738de.dyn.optonline.net)
2023-10-27 01:10:23 +0200sansk(~sansk@user/sansk)
2023-10-27 01:10:35 +0200 <Inst_> it's not clearing the screen
2023-10-27 01:10:55 +0200 <geekosaur> I suspected not, because that *will* introduce flicker
2023-10-27 01:11:50 +0200 <Inst_> btw, just curious
2023-10-27 01:12:03 +0200 <geekosaur> I'm wondering if you would be better off using vty instead of raw ANSI
2023-10-27 01:12:06 +0200 <Inst_> with cabal, you can force the build-depends to follow -prof, right?
2023-10-27 01:12:17 +0200 <Inst_> well, at least the flicker version SHOULD work on windows
2023-10-27 01:12:26 +0200 <geekosaur> oh right, windows
2023-10-27 01:12:33 +0200 <Inst_> only thing, if you're somehow still on Billy Gates' antiquated moneymaker
2023-10-27 01:12:35 +0200Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Ping timeout: 240 seconds)
2023-10-27 01:12:40 +0200 <Inst_> what's the keypress result of up arrow?
2023-10-27 01:12:43 +0200 <geekosaur> I don't think the Windows compatible release has come out yet
2023-10-27 01:12:48 +0200 <Inst_> I think I need to code it to support windows up arrow presses
2023-10-27 01:12:53 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2023-10-27 01:13:19 +0200 <geekosaur> raw? "\27[A" as a Haskell string
2023-10-27 01:14:47 +0200 <geekosaur> (that is, ASCII ESC, left square bracket, capital A. three characters)
2023-10-27 01:15:31 +0200 <geekosaur> I don't know if this differs on Windows
2023-10-27 01:17:06 +0200 <EvanR> oh windows has this too https://learn.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences
2023-10-27 01:17:16 +0200 <EvanR> ESC [ A, unless you reconfigured it
2023-10-27 01:18:19 +0200 <Inst_> ehhh, i guess i might as well reboot and see what windows returns on getChar
2023-10-27 01:18:40 +0200 <EvanR> it's documented right there
2023-10-27 01:19:03 +0200 <EvanR> but verifying IRL is good
2023-10-27 01:19:20 +0200 <EvanR> it would be 3 chars though not 1
2023-10-27 01:19:55 +0200 <Inst_> nah, my posix version is 3 chars
2023-10-27 01:21:01 +0200 <EvanR> no, it would be 3 actually
2023-10-27 01:21:10 +0200 <EvanR> there are 3 lights
2023-10-27 01:22:25 +0200 <Inst_> when did you jump off the Enterprise anyways?
2023-10-27 01:22:53 +0200 <Inst_> me? Picard, way too disappointing
2023-10-27 01:23:38 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-10-27 01:23:57 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2023-10-27 01:24:19 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2023-10-27 01:25:10 +0200ft(~ft@p4fc2a529.dip0.t-ipconnect.de)
2023-10-27 01:32:04 +0200mekeor(~user@2001:a61:10c6:e601:550e:a048:6ed7:5ec4) (Quit: i destroyed my erc. sorry, neverwas. gotta go to bed. ciao)
2023-10-27 01:32:32 +0200 <Inst_> yeah, i'm 100% sure it's an issue with how I'm constructing the display, maybe I've screwed up somewhere
2023-10-27 01:33:04 +0200 <Inst_> using the same clearScreen command in a different program, I don't see flicker
2023-10-27 01:34:17 +0200 <geekosaur> did you change output buffering in any way?
2023-10-27 01:34:44 +0200 <geekosaur> I would probably use BlockBuffering and hFlush after outputting a frame
2023-10-27 01:35:21 +0200 <Inst_> hmmm, this one is missing line buffering
2023-10-27 01:35:33 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-27 01:36:01 +0200arkeet(~arkeet@moriya.ca) (Quit: ZNC 1.8.2 - https://znc.in)
2023-10-27 01:36:05 +0200 <Inst_> okay, weirdness goes away with line buffering
2023-10-27 01:36:06 +0200 <Inst_> awesome
2023-10-27 01:36:43 +0200 <Inst_> thanks @geekosaur, for helping me to fix this weird flicker issue <3
2023-10-27 01:37:16 +0200 <EvanR> I presume there's no performance problem after all
2023-10-27 01:37:34 +0200 <Inst_> just bad config on output :(
2023-10-27 01:37:54 +0200 <geekosaur> well, there was, but not the usual one. character at a time terminal I/O is painfully slow even on modern machines
2023-10-27 01:38:08 +0200 <EvanR> if haskell can't beat python at towers of hanoi that's bad
2023-10-27 01:38:18 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2023-10-27 01:38:26 +0200 <EvanR> seemed unlikely
2023-10-27 01:38:40 +0200 <EvanR> but printing things out can be tricky
2023-10-27 01:40:50 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
2023-10-27 01:45:13 +0200 <Inst_> i mean the defaults seem questionable
2023-10-27 01:45:29 +0200 <Inst_> but w/e, being ultra-concise isn't a Haskell language goal, it's just a side effect of functional programming
2023-10-27 01:47:01 +0200 <geekosaur> LineBuffering is normally the default on POSIX, is something (maybe ansi-terminal) overriding it?
2023-10-27 01:50:03 +0200 <Inst_> weird
2023-10-27 01:50:39 +0200 <Inst_> probably ansi-terminal
2023-10-27 01:54:32 +0200 <Inst_> oh, it was a cockup on my part
2023-10-27 01:55:11 +0200 <Inst_> i turned it off for some reason
2023-10-27 01:59:03 +0200arkeet(~arkeet@moriya.ca)
2023-10-27 01:59:18 +0200 <geekosaur> make sure that's stdin instead of stdout
2023-10-27 01:59:42 +0200 <geekosaur> for key reads you want to disable buffering on stdin, but you want to leave it on stdout for output performance
2023-10-27 02:01:32 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2023-10-27 02:02:01 +0200califax(~califax@user/califx) (Remote host closed the connection)
2023-10-27 02:02:44 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2023-10-27 02:03:38 +0200califax(~califax@user/califx)
2023-10-27 02:06:20 +0200pixelmonk(~pixelmonk@50.205.76.66) (Quit: WeeChat 4.1.0)
2023-10-27 02:17:43 +0200Square2(~Square@user/square)
2023-10-27 02:24:14 +0200kupi(uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2023-10-27 02:34:15 +0200ania123(~ania123@wl-pool2-ont-004.uni-muenster.de) (Quit: Ping timeout (120 seconds))
2023-10-27 02:39:25 +0200random-jellyfish(~tiber@2a02:2f04:11e:c600:895a:e128:f425:deba)
2023-10-27 02:39:25 +0200random-jellyfish(~tiber@2a02:2f04:11e:c600:895a:e128:f425:deba) (Changing host)
2023-10-27 02:39:25 +0200random-jellyfish(~tiber@user/random-jellyfish)
2023-10-27 02:41:51 +0200dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Remote host closed the connection)
2023-10-27 02:43:31 +0200dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2023-10-27 02:51:19 +0200biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2023-10-27 02:51:43 +0200biberu(~biberu@user/biberu)
2023-10-27 02:52:04 +0200apache2(apache2@anubis.0x90.dk) (Remote host closed the connection)
2023-10-27 02:52:13 +0200apache2(apache2@anubis.0x90.dk)
2023-10-27 02:53:49 +0200Hafydd(~Hafydd@user/hafydd) (Ping timeout: 245 seconds)
2023-10-27 02:54:44 +0200peutri(~peutri@bobo.desast.re) (Ping timeout: 246 seconds)
2023-10-27 02:54:55 +0200peutri(~peutri@bobo.desast.re)
2023-10-27 03:02:14 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2023-10-27 03:02:36 +0200sabino(~sabino@user/sabino) (Quit: Lambda _ -> x)
2023-10-27 03:03:00 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds)
2023-10-27 03:03:35 +0200Lord_of_Life_Lord_of_Life
2023-10-27 03:07:20 +0200Hafydd(~Hafydd@user/hafydd)
2023-10-27 03:21:27 +0200CiaoSen(~Jura@2a05:5800:2bd:b300:664b:f0ff:fe37:9ef) (Ping timeout: 240 seconds)
2023-10-27 03:23:31 +0200CiaoSen(~Jura@2a05:5800:2dd:c500:664b:f0ff:fe37:9ef)
2023-10-27 03:35:40 +0200sansk(~sansk@user/sansk) (Quit: WeeChat 4.0.4)
2023-10-27 03:42:04 +0200Lycurgus(~georg@user/Lycurgus)
2023-10-27 03:43:40 +0200talismanick(~user@2601:204:ef80:2980::b23e)
2023-10-27 03:43:58 +0200Lycurgus(~georg@user/Lycurgus) (Client Quit)
2023-10-27 03:47:10 +0200Square2(~Square@user/square) (Ping timeout: 258 seconds)
2023-10-27 03:51:04 +0200fryguybob(~fryguybob@cpe-24-94-50-22.stny.res.rr.com) (Quit: leaving)
2023-10-27 03:51:29 +0200fweht(uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-10-27 03:52:38 +0200Lycurgus(~georg@user/Lycurgus)
2023-10-27 04:00:31 +0200Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2023-10-27 04:01:41 +0200Lycurgus(~georg@user/Lycurgus)
2023-10-27 04:01:44 +0200otto_s(~user@p4ff2729b.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
2023-10-27 04:01:46 +0200 <Inst_> yeah, for whatever reason, i mapM_ (flip hSetBuffering NoBuffering) [stdin, stdout)
2023-10-27 04:01:47 +0200 <Inst_> ]
2023-10-27 04:02:32 +0200 <EvanR> sometimes when presented with stuff you can do, it's better to just not xD
2023-10-27 04:03:32 +0200otto_s(~user@p5de2f7d1.dip0.t-ipconnect.de)
2023-10-27 04:04:50 +0200Lycurgus(~georg@user/Lycurgus) (Client Quit)
2023-10-27 04:05:13 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2023-10-27 04:05:28 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-10-27 04:05:30 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-10-27 04:09:54 +0200fryguybob(~fryguybob@cpe-24-94-50-22.stny.res.rr.com)
2023-10-27 04:17:36 +0200accord(uid568320@id-568320.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2023-10-27 04:25:07 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 258 seconds)
2023-10-27 04:31:27 +0200xff0x(~xff0x@ai101218.d.east.v6connect.net) (Ping timeout: 240 seconds)
2023-10-27 04:43:31 +0200td_(~td@i53870935.versanet.de) (Ping timeout: 258 seconds)
2023-10-27 04:45:16 +0200td_(~td@i53870923.versanet.de)
2023-10-27 04:46:20 +0200liamzy__(~Inst@120.244.192.250)
2023-10-27 04:48:56 +0200Inst_(~Inst@120.244.192.250) (Ping timeout: 255 seconds)
2023-10-27 04:59:40 +0200Buliarous(~gypsydang@46.232.210.139)
2023-10-27 05:09:55 +0200aforemny(~aforemny@2001:9e8:6cce:d400:a4f1:e7f8:9aed:6739) (Ping timeout: 264 seconds)
2023-10-27 05:10:05 +0200aforemny_(~aforemny@2001:9e8:6cf6:7100:4ac5:e904:a193:520d)
2023-10-27 05:15:21 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:a583:cfb:37b7:5112) (Remote host closed the connection)
2023-10-27 05:15:37 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:a583:cfb:37b7:5112)
2023-10-27 05:15:51 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2023-10-27 05:16:45 +0200euleritian(~euleritia@dynamic-046-114-201-136.46.114.pool.telefonica.de)
2023-10-27 05:20:08 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2023-10-27 05:22:04 +0200liamzy__(~Inst@120.244.192.250) (Ping timeout: 255 seconds)
2023-10-27 05:23:05 +0200srk_(~sorki@user/srk)
2023-10-27 05:24:38 +0200srk|(~sorki@user/srk)
2023-10-27 05:25:51 +0200srk(~sorki@user/srk) (Ping timeout: 240 seconds)
2023-10-27 05:27:24 +0200srk_(~sorki@user/srk) (Ping timeout: 240 seconds)
2023-10-27 05:27:55 +0200srk|srk
2023-10-27 05:28:21 +0200vglfr(~vglfr@88.155.140.136)
2023-10-27 05:37:42 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-27 05:38:25 +0200srk(~sorki@user/srk) (Ping timeout: 252 seconds)
2023-10-27 05:38:37 +0200srk_(~sorki@user/srk)
2023-10-27 05:39:31 +0200ddellacosta(~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 252 seconds)
2023-10-27 05:41:24 +0200srk_srk
2023-10-27 05:41:28 +0200ddellacosta(~ddellacos@ool-44c738de.dyn.optonline.net)
2023-10-27 05:41:52 +0200kantokuenkanto
2023-10-27 05:42:37 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
2023-10-27 05:43:18 +0200liamzy__(~Inst@120.244.192.250)
2023-10-27 05:45:53 +0200infinity0(~infinity0@pwned.gg) (Remote host closed the connection)
2023-10-27 05:48:00 +0200infinity0(~infinity0@pwned.gg)
2023-10-27 05:50:02 +0200CiaoSen(~Jura@2a05:5800:2dd:c500:664b:f0ff:fe37:9ef) (Ping timeout: 255 seconds)
2023-10-27 05:53:20 +0200Inst_(~Inst@120.244.192.250)
2023-10-27 05:54:33 +0200talismanick(~user@2601:204:ef80:2980::b23e) (Remote host closed the connection)
2023-10-27 05:55:54 +0200liamzy__(~Inst@120.244.192.250) (Ping timeout: 245 seconds)
2023-10-27 05:57:49 +0200vglfr(~vglfr@88.155.140.136) (Read error: Connection reset by peer)
2023-10-27 06:04:18 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-10-27 06:07:07 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-10-27 06:08:23 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2023-10-27 06:09:20 +0200img(~img@user/img)
2023-10-27 06:11:43 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 264 seconds)
2023-10-27 06:17:39 +0200euleritian(~euleritia@dynamic-046-114-201-136.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2023-10-27 06:17:56 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-10-27 06:25:56 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 260 seconds)
2023-10-27 06:35:04 +0200Fischmiep(~Fischmiep@user/Fischmiep) (Ping timeout: 258 seconds)
2023-10-27 06:35:07 +0200rgw(~R@2605:a601:a0df:5600:589:1f53:7d7d:df53) (Read error: Connection reset by peer)
2023-10-27 06:36:07 +0200michalz(~michalz@185.246.207.193)
2023-10-27 06:36:36 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2023-10-27 06:37:08 +0200Fischmiep(~Fischmiep@user/Fischmiep)
2023-10-27 06:37:28 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-10-27 06:42:03 +0200Fischmiep(~Fischmiep@user/Fischmiep) (Read error: Connection reset by peer)
2023-10-27 06:42:35 +0200Fischmiep(~Fischmiep@user/Fischmiep)
2023-10-27 06:54:55 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2023-10-27 06:58:48 +0200rosco(~rosco@yp-150-69.tm.net.my)
2023-10-27 07:04:51 +0200liamzy__(~Inst@120.244.192.250)
2023-10-27 07:07:03 +0200Inst_(~Inst@120.244.192.250) (Ping timeout: 240 seconds)
2023-10-27 07:31:17 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
2023-10-27 07:31:37 +0200euleritian(~euleritia@dynamic-046-114-201-136.46.114.pool.telefonica.de)
2023-10-27 07:39:05 +0200liamzy__(~Inst@120.244.192.250) (Ping timeout: 258 seconds)
2023-10-27 07:39:29 +0200euleritian(~euleritia@dynamic-046-114-201-136.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2023-10-27 07:39:48 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-10-27 07:41:17 +0200liamzy__(~Inst@120.244.192.250)
2023-10-27 07:44:43 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Quit: ChaiTRex)
2023-10-27 07:45:10 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2023-10-27 07:46:19 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2023-10-27 07:46:30 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
2023-10-27 07:46:50 +0200euleritian(~euleritia@dynamic-046-114-201-136.46.114.pool.telefonica.de)
2023-10-27 07:46:57 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2023-10-27 07:47:43 +0200random-jellyfish(~tiber@user/random-jellyfish) (Ping timeout: 264 seconds)
2023-10-27 07:51:51 +0200raym(~ray@user/raym) (Ping timeout: 240 seconds)
2023-10-27 07:59:08 +0200raym(~ray@user/raym)
2023-10-27 08:05:08 +0200echoreply(~echoreply@45.32.163.16) (Quit: WeeChat 2.8)
2023-10-27 08:05:57 +0200sm(~sm@plaintextaccounting/sm)
2023-10-27 08:06:27 +0200echoreply(~echoreply@45.32.163.16)
2023-10-27 08:13:03 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 240 seconds)
2023-10-27 08:17:49 +0200jtza8(~user@165.255.63.194)
2023-10-27 08:17:49 +0200jtza8(~user@165.255.63.194) (Changing host)
2023-10-27 08:17:49 +0200jtza8(~user@user/jtza8)
2023-10-27 08:24:03 +0200aljazmc(~aljazmc@user/aljazmc)
2023-10-27 08:24:30 +0200aljazmc(~aljazmc@user/aljazmc) (Read error: Connection reset by peer)
2023-10-27 08:27:21 +0200Maeda(~Maeda@91-161-10-149.subs.proxad.net)
2023-10-27 08:29:44 +0200euleritian(~euleritia@dynamic-046-114-201-136.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2023-10-27 08:30:02 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-10-27 08:37:55 +0200arahael(~arahael@119-18-2-212.771202.syd.nbn.aussiebb.net)
2023-10-27 08:38:14 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-10-27 08:42:25 +0200vpan(~vpan@212.117.1.172)
2023-10-27 08:43:48 +0200jtza8(~user@user/jtza8) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.2))
2023-10-27 08:46:00 +0200idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-10-27 08:46:58 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-10-27 08:48:33 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-10-27 08:51:17 +0200Jackneill(~Jackneill@20014C4E1E03D8000F82DBB60140E9E2.dsl.pool.telekom.hu)
2023-10-27 08:54:48 +0200Inst_(~Inst@120.244.192.250)
2023-10-27 08:56:28 +0200johnw(~johnw@69.62.242.138)
2023-10-27 08:57:28 +0200liamzy__(~Inst@120.244.192.250) (Ping timeout: 255 seconds)
2023-10-27 09:00:50 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:9328:d635:4cb3:ebef)
2023-10-27 09:07:29 +0200gmg(~user@user/gehmehgeh)
2023-10-27 09:17:56 +0200yoyofreeman(~yoyofreem@176.97.76.178)
2023-10-27 09:21:50 +0200liamzy__(~Inst@120.244.192.250)
2023-10-27 09:22:09 +0200idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.5)
2023-10-27 09:24:12 +0200Inst_(~Inst@120.244.192.250) (Ping timeout: 240 seconds)
2023-10-27 09:25:31 +0200chomwitt(~chomwitt@2a02:587:7a01:8f00:1ac0:4dff:fedb:a3f1)
2023-10-27 09:29:33 +0200MajorBiscuit(~MajorBisc@2001:610:450:a0::8:62)
2023-10-27 09:34:45 +0200random-jellyfish(~tiber@2a02:2f04:11e:c600:895a:e128:f425:deba)
2023-10-27 09:34:45 +0200random-jellyfish(~tiber@2a02:2f04:11e:c600:895a:e128:f425:deba) (Changing host)
2023-10-27 09:34:45 +0200random-jellyfish(~tiber@user/random-jellyfish)
2023-10-27 09:39:13 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-27 09:41:47 +0200tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz)
2023-10-27 09:44:00 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
2023-10-27 09:44:33 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2023-10-27 09:44:51 +0200sm(~sm@plaintextaccounting/sm)
2023-10-27 09:45:31 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-10-27 09:59:56 +0200coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-10-27 10:00:02 +0200coot(~coot@89-69-206-216.dynamic.chello.pl) (Remote host closed the connection)
2023-10-27 10:00:14 +0200coot(~coot@89.69.206.216)
2023-10-27 10:02:22 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-10-27 10:05:05 +0200__monty__(~toonn@user/toonn)
2023-10-27 10:07:25 +0200son0p(~ff@181.136.122.143) (Ping timeout: 258 seconds)
2023-10-27 10:09:30 +0200CiaoSen(~Jura@2a05:5800:2dd:c500:664b:f0ff:fe37:9ef)
2023-10-27 10:10:17 +0200acidjnk(~acidjnk@p200300d6e72b9302c5eda31b9368d419.dip0.t-ipconnect.de)
2023-10-27 10:12:55 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:a583:cfb:37b7:5112) (Remote host closed the connection)
2023-10-27 10:13:54 +0200ubert(~Thunderbi@91.141.46.255.wireless.dyn.drei.com)
2023-10-27 10:15:13 +0200tabemann_(~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
2023-10-27 10:16:44 +0200tabemann__(~tabemann@2600:1700:7990:24e0:a299:50e0:47de:b82a) (Ping timeout: 248 seconds)
2023-10-27 10:19:41 +0200chele(~chele@user/chele)
2023-10-27 10:19:54 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-10-27 10:22:57 +0200kenran(~johannes@user/kenran)
2023-10-27 10:30:18 +0200Inst_(~Inst@120.244.192.250)
2023-10-27 10:32:44 +0200liamzy__(~Inst@120.244.192.250) (Ping timeout: 258 seconds)
2023-10-27 10:36:15 +0200yoyofreeman(~yoyofreem@176.97.76.178) (Remote host closed the connection)
2023-10-27 10:36:57 +0200yoyofreeman(~yoyofreem@176.97.76.178)
2023-10-27 10:40:39 +0200yoyofreeman(~yoyofreem@176.97.76.178) (Max SendQ exceeded)
2023-10-27 10:40:53 +0200zer0bitz_(~zer0bitz@user/zer0bitz)
2023-10-27 10:41:25 +0200yoyofreeman(~yoyofreem@176.97.76.178)
2023-10-27 10:45:03 +0200zer0bitz(~zer0bitz@user/zer0bitz) (Ping timeout: 260 seconds)
2023-10-27 10:45:22 +0200mc47(~mc47@xmonad/TheMC47)
2023-10-27 10:45:38 +0200fendor(~fendor@2a02:8388:1640:be00:8798:5fe9:9ffe:940c)
2023-10-27 10:45:38 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2023-10-27 10:46:02 +0200mc47(~mc47@xmonad/TheMC47)
2023-10-27 10:46:06 +0200Inst_(~Inst@120.244.192.250) (Ping timeout: 260 seconds)
2023-10-27 10:47:58 +0200stefan-_(~cri@42dots.de) (Remote host closed the connection)
2023-10-27 10:48:13 +0200stefan-_(~cri@42dots.de)
2023-10-27 10:49:06 +0200jinsun(~jinsun@user/jinsun) (Read error: Connection reset by peer)
2023-10-27 10:49:29 +0200fendor(~fendor@2a02:8388:1640:be00:8798:5fe9:9ffe:940c) (Remote host closed the connection)
2023-10-27 10:49:49 +0200fendor(~fendor@2a02:8388:1640:be00:4648:ee17:640e:e578)
2023-10-27 10:50:03 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com)
2023-10-27 10:50:24 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:a583:cfb:37b7:5112)
2023-10-27 10:53:34 +0200jjhoo(~jahakala@user/jjhoo) (Quit: leaving)
2023-10-27 10:53:44 +0200jjhoo(jahakala@user/jjhoo)
2023-10-27 10:56:00 +0200merijn(~merijn@233-142-158-163.dynamic.caiway.nl)
2023-10-27 10:58:13 +0200merijn(~merijn@233-142-158-163.dynamic.caiway.nl) (Client Quit)
2023-10-27 10:58:31 +0200merijn(~merijn@233-142-158-163.dynamic.caiway.nl)
2023-10-27 10:59:35 +0200`2jt(~jtomas@vdf-128.vdf.upv.es)
2023-10-27 11:04:18 +0200sm(~sm@plaintextaccounting/sm)
2023-10-27 11:05:49 +0200ft(~ft@p4fc2a529.dip0.t-ipconnect.de) (Quit: leaving)
2023-10-27 11:09:28 +0200aljazmc(~aljazmc@user/aljazmc)
2023-10-27 11:14:43 +0200econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2023-10-27 11:17:30 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2023-10-27 11:22:38 +0200danse-nr3(~francesco@151.57.207.38)
2023-10-27 11:24:55 +0200`2jt(~jtomas@vdf-128.vdf.upv.es) (Ping timeout: 264 seconds)
2023-10-27 11:25:04 +0200 <haskellbridge> 06<s​m> like I was hinting the other day, there are so many weird hard details with small terminal I/O games.. makes me pine for the old 8 bit computers
2023-10-27 11:27:40 +0200 <tomsmeding> the matrix bridge has now decided to colour the nick prefix, meaning my script _again_ doesn't pick it up >.>
2023-10-27 11:27:56 +0200 <tomsmeding> but perhaps this is a good status quo
2023-10-27 11:31:45 +0200yoyofreeman(~yoyofreem@176.97.76.178) (Remote host closed the connection)
2023-10-27 11:32:41 +0200 <haskellbridge> 12<C​elestial> How does the renamer work in terms of keeping track what variable is what internally? does it keep representing it as a string and just appends some garbage at the end of shadowed names or is there a more introcate way with having ids or whatever?
2023-10-27 11:32:56 +0200yoyofreeman(~yoyofreem@176.97.76.178)
2023-10-27 11:33:37 +0200tv(~tv@user/tv) (Ping timeout: 255 seconds)
2023-10-27 11:33:45 +0200kenran(~johannes@user/kenran) (Remote host closed the connection)
2023-10-27 11:34:34 +0200tv(~tv@user/tv)
2023-10-27 11:38:43 +0200danse-nr3(~francesco@151.57.207.38) (Remote host closed the connection)
2023-10-27 11:39:08 +0200danse-nr3(~francesco@151.57.207.38)
2023-10-27 11:45:35 +0200CiaoSen(~Jura@2a05:5800:2dd:c500:664b:f0ff:fe37:9ef) (Ping timeout: 240 seconds)
2023-10-27 11:46:33 +0200Inst_(~Inst@120.244.192.250)
2023-10-27 11:46:45 +0200yoyofreeman(~yoyofreem@176.97.76.178) (Remote host closed the connection)
2023-10-27 11:51:38 +0200billchenchina(~billchenc@61.183.83.60)
2023-10-27 11:53:51 +0200billchenchina-(~billchenc@2408:844f:1540:3a14:66f7:dd31:6474:1bb6)
2023-10-27 11:54:47 +0200billchenchina-(~billchenc@2408:844f:1540:3a14:66f7:dd31:6474:1bb6) (Max SendQ exceeded)
2023-10-27 11:55:14 +0200billchenchina-(~billchenc@2408:844f:1540:3a14:66f7:dd31:6474:1bb6)
2023-10-27 11:56:43 +0200billchenchina(~billchenc@61.183.83.60) (Ping timeout: 255 seconds)
2023-10-27 11:57:28 +0200Square2(~Square@user/square)
2023-10-27 11:59:28 +0200 <Jon> I have a type that looks like this: data Variant = Variant { variantGraph :: Graph, rule : : String, parent :: Variant } | Original Graph . I have a function :: Variant -> Graph (i.e., it handles both constructors). Is there a good convention to name it? The trouble is I've already used 'variantGraph' for the accessor.
2023-10-27 12:00:17 +0200 <tomsmeding> fromVariant is a typical name, but that assumes it's in a module that deals solely with Graph, and is typically imported qualified
2023-10-27 12:01:53 +0200 <Jon> thank you I forgot about 'from'
2023-10-27 12:02:05 +0200Square2(~Square@user/square) (Ping timeout: 240 seconds)
2023-10-27 12:02:31 +0200billchenchina-(~billchenc@2408:844f:1540:3a14:66f7:dd31:6474:1bb6) (Ping timeout: 260 seconds)
2023-10-27 12:02:43 +0200idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-10-27 12:03:34 +0200liamzy__(~Inst@120.244.192.250)
2023-10-27 12:05:31 +0200rosco(~rosco@yp-150-69.tm.net.my) (Quit: Lost terminal)
2023-10-27 12:06:10 +0200Inst_(~Inst@120.244.192.250) (Ping timeout: 255 seconds)
2023-10-27 12:06:43 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 252 seconds)
2023-10-27 12:13:21 +0200 <merijn> Jon: Alternatively, there's NoFieldSelectors which disables the generation of accessors so the name is free (whether that's a price worth paying in your code is unclear)
2023-10-27 12:15:38 +0200Square2(~Square@user/square)
2023-10-27 12:17:34 +0200Maxdamantus(~Maxdamant@user/maxdamantus) (Ping timeout: 245 seconds)
2023-10-27 12:19:38 +0200Maxdamantus(~Maxdamant@user/maxdamantus)
2023-10-27 12:21:44 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-10-27 12:22:26 +0200 <ski> Jon : `data Variant = Variant {variantGraph :: Graph,rule : : String,parent :: Variant} | Original {variantGraph :: Graph}' ?
2023-10-27 12:23:23 +0200sm(~sm@plaintextaccounting/sm)
2023-10-27 12:23:36 +0200 <tomsmeding> clever
2023-10-27 12:24:45 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2023-10-27 12:25:35 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-10-27 12:26:02 +0200danse-nr3(~francesco@151.57.207.38) (Ping timeout: 255 seconds)
2023-10-27 12:37:38 +0200cheater_(~Username@user/cheater)
2023-10-27 12:38:28 +0200cheater(~Username@user/cheater) (Ping timeout: 258 seconds)
2023-10-27 12:38:33 +0200cheater_cheater
2023-10-27 12:39:04 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2023-10-27 12:39:47 +0200cheater(~Username@user/cheater) (Read error: Connection reset by peer)
2023-10-27 12:40:32 +0200cheater(~Username@user/cheater)
2023-10-27 12:44:35 +0200ubert(~Thunderbi@91.141.46.255.wireless.dyn.drei.com) (Remote host closed the connection)
2023-10-27 12:53:24 +0200ubert(~Thunderbi@91.141.46.255.wireless.dyn.drei.com)
2023-10-27 13:00:17 +0200Lycurgus(~georg@user/Lycurgus)
2023-10-27 13:04:19 +0200danse-nr3(~francesco@151.57.207.38)
2023-10-27 13:06:37 +0200kilolympus(~kilolympu@31.205.200.235) (Remote host closed the connection)
2023-10-27 13:10:12 +0200kilolympus(~kilolympu@31.205.200.235)
2023-10-27 13:12:10 +0200liamzy__(~Inst@120.244.192.250) (Ping timeout: 255 seconds)
2023-10-27 13:12:39 +0200danse-nr3(~francesco@151.57.207.38) (Remote host closed the connection)
2023-10-27 13:12:57 +0200Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2023-10-27 13:13:05 +0200danse-nr3(~francesco@151.57.207.38)
2023-10-27 13:13:24 +0200merijn(~merijn@233-142-158-163.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2023-10-27 13:23:04 +0200 <Jon> ski, that's a far simpler solution, thank you; for some reason I thought that couldn't work.
2023-10-27 13:27:03 +0200merijn(~merijn@233-142-158-163.dynamic.caiway.nl)
2023-10-27 13:27:21 +0200falafel_(~falafel@62.175.113.194.dyn.user.ono.com)
2023-10-27 13:30:35 +0200phma(phma@2001:5b0:211b:d548:ffd5:bf9a:b80f:c063) (Read error: Connection reset by peer)
2023-10-27 13:31:14 +0200falafel_(~falafel@62.175.113.194.dyn.user.ono.com) (Client Quit)
2023-10-27 13:31:18 +0200phma(~phma@host-67-44-208-142.hnremote.net)
2023-10-27 13:31:29 +0200falafel_(~falafel@62.175.113.194.dyn.user.ono.com)
2023-10-27 13:33:46 +0200merijn(~merijn@233-142-158-163.dynamic.caiway.nl) (Ping timeout: 255 seconds)
2023-10-27 13:34:40 +0200yoyofreeman(~yoyofreem@176.97.76.178)
2023-10-27 13:34:49 +0200 <ski> Jon : well .. i was thinking you might've considered it already, and decided you didn't want it .. but decided to mention it nonetheless
2023-10-27 13:36:03 +0200merijn(~merijn@233-142-158-163.dynamic.caiway.nl)
2023-10-27 13:37:10 +0200 <danse-nr3> reddit.com/r/haskell/comments/17bneno/best_wayresource_to_learn_haskell_with_a_week_to good luck with that hiring policy
2023-10-27 13:40:09 +0200 <danse-nr3> but of course only hiring newcomers is a great way not to get questioned and to make them feel really humble
2023-10-27 13:40:43 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-27 13:45:29 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
2023-10-27 13:46:42 +0200yoyofreeman(~yoyofreem@176.97.76.178) (Remote host closed the connection)
2023-10-27 13:49:15 +0200falafel_(~falafel@62.175.113.194.dyn.user.ono.com) (Quit: Leaving)
2023-10-27 13:49:35 +0200falafel(~falafel@62.175.113.194.dyn.user.ono.com)
2023-10-27 13:50:35 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2023-10-27 13:50:52 +0200fweht(uid404746@id-404746.lymington.irccloud.com)
2023-10-27 13:53:36 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 258 seconds)
2023-10-27 13:56:04 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-10-27 13:56:52 +0200 <exarkun> danse-nr3: How did you conclude the company _only_ hires newcomers?
2023-10-27 14:00:11 +0200 <danse-nr3> good point, i wanted to say "hiring", without only. I guess this is a policy one applies in most cases or in no case, but i have no evidence about that so could be wrong
2023-10-27 14:04:06 +0200Lycurgus(~georg@li1192-118.members.linode.com)
2023-10-27 14:04:06 +0200Lycurgus(~georg@li1192-118.members.linode.com) (Changing host)
2023-10-27 14:04:06 +0200Lycurgus(~georg@user/Lycurgus)
2023-10-27 14:07:17 +0200xff0x(~xff0x@ai101218.d.east.v6connect.net)
2023-10-27 14:15:37 +0200falafel(~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 255 seconds)
2023-10-27 14:16:01 +0200kokomop3n0r(~kokomop3n@189.174.11.231)
2023-10-27 14:16:03 +0200 <kokomop3n0r> Geddy Lee, Edna Skilton, and the Gay Dogs - Mrs. Skilton had always loved dogs, and when she learned that many of them were being abandoned or put down because of their sexuality, she knew she had to do something. She started a shelter for gay dogs in Regina, but she faced a lot of opposition from the local Muslim Iman at Darul Falah Islamic Centre, who believed that homosexuality was a sin and
2023-10-27 14:16:07 +0200 <kokomop3n0r> that dogs were impure animals. Read all about it here: https://pastebin.com/MDeBRL0Y
2023-10-27 14:16:37 +0200 <tomsmeding> ozone?!
2023-10-27 14:16:59 +0200 <tomsmeding> dibblego: you still have your @
2023-10-27 14:17:14 +0200 <haskellbridge> 06<e​ldritchcookie> hello people with experience with the katip library how do i close the file handle of the file scribe?
2023-10-27 14:17:41 +0200 <kokomop3n0r> eldritchcookie Do you like gay dogs?
2023-10-27 14:18:15 +0200 <danse-nr3> yeah gay dogs are cute kokomop3n0r
2023-10-27 14:18:18 +0200 <haskellbridge> 06<e​ldritchcookie> sure why no gay dogs straight dogs bisexual dog asexual dogs all dog are cute
2023-10-27 14:18:34 +0200 <tomsmeding> eldritchcookie: closeScribe? (I have no clue, just peeked at the haddocks)
2023-10-27 14:18:40 +0200 <haskellbridge> 06<e​ldritchcookie> why not?
2023-10-27 14:18:58 +0200 <haskellbridge> 06<e​ldritchcookie> let me show the test
2023-10-27 14:20:10 +0200 <haskellbridge> 06<e​ldritchcookie> https://play.haskell.org/saved/BfmY3P0P
2023-10-27 14:20:25 +0200 <haskellbridge> 06<e​ldritchcookie> this is failing with a file closed exception
2023-10-27 14:20:32 +0200 <tomsmeding> where
2023-10-27 14:21:05 +0200 <haskellbridge> 06<e​ldritchcookie> on the first readfile if i remove it then the test passes
2023-10-27 14:21:20 +0200 <tomsmeding> what is the exact exception being thrown?
2023-10-27 14:21:44 +0200 <haskellbridge> 06<e​ldritchcookie> *** Failed! Exception: 'scribeKCT.log: withFile: resource busy (file is locked)' (after 1 test):
2023-10-27 14:21:58 +0200 <tomsmeding> that's not a "file closed" execption ;)
2023-10-27 14:22:20 +0200 <haskellbridge> 06<e​ldritchcookie> sorry i meant to say file not closed
2023-10-27 14:23:00 +0200 <tomsmeding> okay yeah I don't know :)
2023-10-27 14:23:03 +0200kokomop3n0r(~kokomop3n@189.174.11.231) (K-Lined)
2023-10-27 14:23:40 +0200 <haskellbridge> 06<e​ldritchcookie> would more context help? i can publish my full code to github it is less than 200 lines total
2023-10-27 14:24:43 +0200 <tomsmeding> not for me I guess -- I'm not actually familiar with katip, just peeked at the haddocks
2023-10-27 14:25:32 +0200 <lortabac> C​elestial: names in GHC are not just strings, they are structured
2023-10-27 14:26:42 +0200 <lortabac> there are various kinds of names, one of them is 'Name': https://hackage.haskell.org/package/ghc-9.8.1/docs/GHC-Types-Name.html#t:Name
2023-10-27 14:26:54 +0200 <haskellbridge> 06<e​ldritchcookie> question can i perform multiple writes in a handle simultaneously? i think the problem is opening the file while it is already open
2023-10-27 14:27:46 +0200kayvank(~user@52-119-115-185.PUBLIC.monkeybrains.net)
2023-10-27 14:30:34 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-10-27 14:32:23 +0200 <merijn> eldritchcookie: Is that readFile from base? i.e. `String -> IO String`?
2023-10-27 14:32:55 +0200 <haskellbridge> 06<e​ldritchcookie> yeah
2023-10-27 14:33:14 +0200 <merijn> That uses lazy IO, which means it won't be closed until the entire output is forced
2023-10-27 14:33:20 +0200edr(~edr@user/edr)
2023-10-27 14:33:24 +0200 <merijn> It is a Bad (TM) function, best avoided
2023-10-27 14:33:37 +0200 <merijn> Not to mention String is a bad datatype for reading in entire files :p
2023-10-27 14:34:32 +0200 <haskellbridge> 14<m​auke> But the readFile is after the withFile
2023-10-27 14:34:37 +0200 <merijn> You probably want to use `Data.Text.IO.readFile :: FilePath -> IO Text` which 1) is strict and will close the file before returning and 2) is a more efficient format
2023-10-27 14:35:15 +0200 <merijn> hmm
2023-10-27 14:36:29 +0200 <merijn> I don't know what logEnvWithScribe and closeScribes are actually doing
2023-10-27 14:36:46 +0200 <merijn> also, which OS is this? and are there other test interacting with the same paths?
2023-10-27 14:37:09 +0200 <haskellbridge> 06<e​ldritchcookie> yeah i guess it only closes the handle later because after switch mkFileScribe to mkHAndleScribe it worked
2023-10-27 14:37:19 +0200 <haskellbridge> 06<e​ldritchcookie> *switching
2023-10-27 14:37:38 +0200 <haskellbridge> 06<e​ldritchcookie> it is on Linux more specifically NixOS unstable
2023-10-27 14:39:09 +0200Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2023-10-27 14:41:14 +0200danse-nr3(~francesco@151.57.207.38) (Ping timeout: 272 seconds)
2023-10-27 14:41:44 +0200arahael(~arahael@119-18-2-212.771202.syd.nbn.aussiebb.net) (Ping timeout: 245 seconds)
2023-10-27 14:45:00 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2023-10-27 14:45:41 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2023-10-27 14:46:07 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2023-10-27 14:46:31 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2023-10-27 14:47:19 +0200 <haskellbridge> 06<e​ldritchcookie> ok what are the steps before uploading to hackage what should i keep in mind?
2023-10-27 14:48:42 +0200 <tomsmeding> eldritchcookie: 'cabal check', in any case
2023-10-27 14:50:31 +0200pounce(~pounce@user/cute/pounce) (Remote host closed the connection)
2023-10-27 14:50:49 +0200pounce(~pounce@user/cute/pounce)
2023-10-27 14:54:10 +0200mjs2600(~mjs2600@c-174-169-225-239.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in)
2023-10-27 14:55:58 +0200mjs2600(~mjs2600@c-174-169-225-239.hsd1.vt.comcast.net)
2023-10-27 15:01:40 +0200 <haskellbridge> 06<e​ldritchcookie> cabal gen-bounds isn't generating bounds for my test dependencies
2023-10-27 15:04:55 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2023-10-27 15:04:56 +0200danse-nr3(~francesco@151.57.162.152)
2023-10-27 15:05:28 +0200euleritian(~euleritia@dynamic-046-114-205-230.46.114.pool.telefonica.de)
2023-10-27 15:05:57 +0200 <merijn> eldritchcookie: It's because you don't have --enable-tests set :p
2023-10-27 15:06:38 +0200 <haskellbridge> 06<e​ldritchcookie> Error: cabal: unrecognized 'gen-bounds' option `--enable-tests'
2023-10-27 15:06:39 +0200 <merijn> "cabal configure --enable-tests --enable-benchmarks" should make a cabal.project.local that ensures they're set to true for every command
2023-10-27 15:07:06 +0200 <merijn> hmm, maybe gen-bounds isn't smart enough to know about it
2023-10-27 15:08:15 +0200 <haskellbridge> 06<e​ldritchcookie> ok how do i choose the bounds manually?
2023-10-27 15:16:31 +0200 <merijn> Generally I just use ^>= (PVP compatible) for the latest version unless I have reasons to do something different
2023-10-27 15:17:16 +0200 <merijn> See also: http://pvp.haskell.org
2023-10-27 15:17:49 +0200fendor(~fendor@2a02:8388:1640:be00:4648:ee17:640e:e578) (Remote host closed the connection)
2023-10-27 15:19:38 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-10-27 15:19:57 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2023-10-27 15:20:04 +0200idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.5)
2023-10-27 15:20:24 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2023-10-27 15:22:14 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2023-10-27 15:23:07 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-10-27 15:25:10 +0200danse-nr3(~francesco@151.57.162.152) (Remote host closed the connection)
2023-10-27 15:25:35 +0200danse-nr3(~francesco@151.57.162.152)
2023-10-27 15:40:20 +0200dorin(~dorin@user/dorin)
2023-10-27 15:41:35 +0200Benzi-Junior(~BenziJuni@88-149-64-112.du.xdsl.is) (Quit: ZNC 1.8.2 - https://znc.in)
2023-10-27 15:42:05 +0200 <haskellbridge> 06<e​ldritchcookie> ok when will hackage accept packges with cabal 3.4 at least?
2023-10-27 15:42:06 +0200Benzi-Junior(~BenziJuni@88-149-64-112.du.xdsl.is)
2023-10-27 15:42:30 +0200 <haskellbridge> 06<e​ldritchcookie> is there a schedule or is it in the future?
2023-10-27 15:43:03 +0200euleritian(~euleritia@dynamic-046-114-205-230.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2023-10-27 15:43:21 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-10-27 15:49:42 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2023-10-27 15:50:25 +0200rosco(~rosco@yp-150-69.tm.net.my)
2023-10-27 15:52:27 +0200 <merijn> What makes you say it doesn't?
2023-10-27 15:53:58 +0200Buggys(Buggys@Buggy.shelltalk.net) (Ping timeout: 258 seconds)
2023-10-27 15:54:41 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2023-10-27 15:55:35 +0200euleritian(~euleritia@dynamic-046-114-205-230.46.114.pool.telefonica.de)
2023-10-27 15:56:16 +0200 <haskellbridge> 06<e​ldritchcookie> i tried to upload a package candidates and it gave me an error saying the max version accepted is 3.0
2023-10-27 15:57:01 +0200 <merijn> hmm
2023-10-27 15:57:09 +0200 <merijn> Pretty sure I've stuff uploaded newer than that
2023-10-27 15:57:22 +0200 <merijn> What's the full error?
2023-10-27 15:59:24 +0200 <haskellbridge> 06<e​ldritchcookie> 'cabal-version' must be at most 3.0
2023-10-27 15:59:51 +0200liamzy__(~Inst@120.244.192.250)
2023-10-27 16:02:36 +0200 <zero> GHC2021 enables OverloadedStrings by default?
2023-10-27 16:03:36 +0200heichro(~user@p200300c3cf492d00d2e6407fb98ca48c.dip0.t-ipconnect.de)
2023-10-27 16:04:33 +0200heichro(~user@p200300c3cf492d00d2e6407fb98ca48c.dip0.t-ipconnect.de) (Client Quit)
2023-10-27 16:05:08 +0200Buggys(Buggys@Buggy.shelltalk.net)
2023-10-27 16:09:29 +0200sm(~sm@plaintextaccounting/sm)
2023-10-27 16:11:05 +0200 <tomsmeding> zero: no https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/control.html#extension-GHC2021
2023-10-27 16:11:06 +0200 <merijn> zero: Consult the User's Guide? :)
2023-10-27 16:11:31 +0200 <tomsmeding> I have this thing bookmarked, it appears if I even type "lan"(guage) in my URL bar https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/table.html
2023-10-27 16:14:23 +0200 <merijn> In general I consider the GHC User's Guide one of the most underrated documents for beginners
2023-10-27 16:14:40 +0200 <merijn> (or experts, tbh :p)
2023-10-27 16:16:58 +0200danse-nr3(~francesco@151.57.162.152) (Ping timeout: 252 seconds)
2023-10-27 16:21:11 +0200euleritian(~euleritia@dynamic-046-114-205-230.46.114.pool.telefonica.de) (Ping timeout: 258 seconds)
2023-10-27 16:21:37 +0200euleritian(~euleritia@x52716298.dyn.telefonica.de)
2023-10-27 16:27:14 +0200Lycurgus(~georg@user/Lycurgus)
2023-10-27 16:27:36 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:9328:d635:4cb3:ebef) (Quit: WeeChat 2.8)
2023-10-27 16:27:58 +0200 <haskellbridge> 06<e​ldritchcookie> if am correct ghci can load compiled code how does it do that?
2023-10-27 16:28:52 +0200 <haskellbridge> 06<e​ldritchcookie> yeah according to the manual ghci can load ghc compiled modules
2023-10-27 16:29:16 +0200 <geekosaur> it can load them but it can't do much with them; it has to load interpreted to set breakpoints, for instance
2023-10-27 16:29:27 +0200 <geekosaur> or to see anything that wasn't exported
2023-10-27 16:30:24 +0200 <geekosaur> and it loads them the same way ghc does, loading the .hi file for type information and linking the .o / .a file into the ghc instance
2023-10-27 16:30:36 +0200 <geekosaur> ghci has its own linker
2023-10-27 16:31:52 +0200 <geekosaur> (well, shared with TH)
2023-10-27 16:33:33 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2023-10-27 16:33:42 +0200 <haskellbridge> 06<e​ldritchcookie> oh hello geekosaur do you know something amazing? do you remember that old package that loaded dynamically code? it compiles like something from 2016 compiles in modern ghc it is amazing i immediately get a segmentation fault but it is an error that seem resolvable
2023-10-27 16:33:42 +0200 <haskellbridge> 06<e​ldritchcookie>  placeholder-test: test/Test.o: unknown symbol `base_SystemziIO_putStrLn1_info'
2023-10-27 16:33:43 +0200 <haskellbridge> 06<e​ldritchcookie> if i am correct i just need to find out how to load base on via the rts
2023-10-27 16:34:26 +0200 <geekosaur> the plugins package?
2023-10-27 16:34:51 +0200 <haskellbridge> 06<e​ldritchcookie> https://hackage.haskell.org/package/dynamic-loader
2023-10-27 16:34:56 +0200 <geekosaur> oh
2023-10-27 16:35:00 +0200 <haskellbridge> 06<e​ldritchcookie> yeah
2023-10-27 16:35:06 +0200 <geekosaur> I guess there's several then
2023-10-27 16:35:21 +0200 <geekosaur> plugins is probably the best known but I don't think it was updated to ghc 9.x
2023-10-27 16:36:07 +0200rosco(~rosco@yp-150-69.tm.net.my) (Quit: Lost terminal)
2023-10-27 16:36:29 +0200 <geekosaur> you can also use hint but it's more work; plugins wraps hint functionality
2023-10-27 16:37:56 +0200 <geekosaur> also you can't load base as such, you have to link to the existing instance, aiui
2023-10-27 16:38:26 +0200 <haskellbridge> 06<e​ldritchcookie> does plugins load compiled code or does it interpret code?
2023-10-27 16:39:35 +0200 <geekosaur> compiled code
2023-10-27 16:39:53 +0200 <geekosaur> hint can load interpreted code as well, but plugins doesn't use that functionality
2023-10-27 16:40:14 +0200sansk(~sansk@user/sansk)
2023-10-27 16:40:38 +0200 <sansk> Is there a way to turn [IO a] -> IO [a] inside a do block?
2023-10-27 16:40:51 +0200 <geekosaur> :t sequence
2023-10-27 16:40:52 +0200 <lambdabot> (Traversable t, Monad m) => t (m a) -> m (t a)
2023-10-27 16:41:11 +0200 <geekosaur> also known as sequenceA since it really only needs Applicative
2023-10-27 16:41:38 +0200 <geekosaur> @src sequence
2023-10-27 16:41:38 +0200 <lambdabot> sequence [] = return []
2023-10-27 16:41:38 +0200 <lambdabot> sequence (x:xs) = do v <- x; vs <- sequence xs; return (v:vs)
2023-10-27 16:41:39 +0200 <lambdabot> --OR
2023-10-27 16:41:39 +0200 <lambdabot> sequence xs = foldr (liftM2 (:)) (return []) xs
2023-10-27 16:42:49 +0200MajorBiscuit(~MajorBisc@2001:610:450:a0::8:62) (Quit: WeeChat 4.1.0)
2023-10-27 16:43:10 +0200 <haskellbridge> 06<e​ldritchcookie> above you said i can't load base as such why?
2023-10-27 16:43:17 +0200 <sansk> thank you, i will try that
2023-10-27 16:43:30 +0200 <sansk> btw what is this bridging from?
2023-10-27 16:43:50 +0200Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2023-10-27 16:44:02 +0200 <geekosaur> matrix #haskell-irc
2023-10-27 16:44:23 +0200 <geekosaur> eldritchcookie, because base is wired into the compiler and as such is always loaded
2023-10-27 16:44:33 +0200 <sansk> ah ok
2023-10-27 16:44:57 +0200Guest|16(~Guest|16@130.209.157.49)
2023-10-27 16:44:57 +0200 <geekosaur> but you sometimes need to do some gymnastics to get at already-loaded symbols
2023-10-27 16:46:15 +0200rgw(~R@2605:a601:a0df:5600:8d84:33a2:dab6:e31f)
2023-10-27 16:47:37 +0200ham(~ham@user/ham)
2023-10-27 16:47:51 +0200Guest|16(~Guest|16@130.209.157.49) (Client Quit)
2023-10-27 16:48:36 +0200Guest|16(~Guest|16@130.209.157.49)
2023-10-27 16:49:46 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-10-27 16:51:35 +0200merijn(~merijn@233-142-158-163.dynamic.caiway.nl) (Ping timeout: 240 seconds)
2023-10-27 16:51:51 +0200Guest|48(~Guest|48@162.218.92.25)
2023-10-27 16:52:41 +0200notzmv(~zmv@user/notzmv)
2023-10-27 16:54:28 +0200 <ski> sansk : also `sequence (map f xs) = mapM f xs' (and `sequence_ (map f xs) = mapM_ f xs')
2023-10-27 16:54:39 +0200Sgeo(~Sgeo@user/sgeo)
2023-10-27 17:00:40 +0200ski(~ski@c188-148-130-34.bredband.tele2.se) (Ping timeout: 258 seconds)
2023-10-27 17:03:24 +0200aljazmc_(~aljazmc@user/aljazmc)
2023-10-27 17:05:39 +0200 <haskellbridge> 06<e​ldritchcookie> yeah you arer wrong i added base then ghc prim then ghc-bignum and it actually worked
2023-10-27 17:06:10 +0200 <haskellbridge> 06<e​ldritchcookie> unbelievable
2023-10-27 17:06:10 +0200aljazmc(~aljazmc@user/aljazmc) (Remote host closed the connection)
2023-10-27 17:09:03 +0200cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2023-10-27 17:15:10 +0200sansk(~sansk@user/sansk) (WeeChat 4.0.4)
2023-10-27 17:15:23 +0200chele(~chele@user/chele) (Remote host closed the connection)
2023-10-27 17:16:20 +0200Guest|48(~Guest|48@162.218.92.25) (Quit: Connection closed)
2023-10-27 17:19:23 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2023-10-27 17:19:41 +0200kiriakos(~kiriakos@p57b651b6.dip0.t-ipconnect.de) (Quit: kiriakos)
2023-10-27 17:20:33 +0200gatekempt(~gatekempt@user/gatekempt)
2023-10-27 17:20:44 +0200kiriakos(~kiriakos@p57b651b6.dip0.t-ipconnect.de)
2023-10-27 17:23:30 +0200wjm(~work@2600:4040:5c44:a500:2680:cfb3:b9fe:815d)
2023-10-27 17:23:33 +0200santiagopim(~user@90.167.66.131)
2023-10-27 17:27:03 +0200zeroyin
2023-10-27 17:30:03 +0200biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2023-10-27 17:32:08 +0200vpan(~vpan@212.117.1.172) (Quit: Leaving.)
2023-10-27 17:36:30 +0200 <haskellbridge> 06<e​ldritchcookie> was i rude ?
2023-10-27 17:37:27 +0200 <EvanR> I know one thing, your nick is the only thing with a weird color in this channel xD
2023-10-27 17:38:10 +0200 <haskellbridge> 06<e​ldritchcookie> it is because i am on matrix xD
2023-10-27 17:38:32 +0200ft(~ft@p4fc2a529.dip0.t-ipconnect.de)
2023-10-27 17:40:26 +0200 <geekosaur> I turned on nick coloring on the bridge
2023-10-27 17:40:35 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:a583:cfb:37b7:5112) (Remote host closed the connection)
2023-10-27 17:40:51 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:a583:cfb:37b7:5112)
2023-10-27 17:40:58 +0200 <tomsmeding> 1c2o3l4o5u6r7s
2023-10-27 17:41:21 +0200 <geekosaur> (also no, I'm just clearing out my inbox)
2023-10-27 17:42:05 +0200 <int-e> . o O ( quick, somebody set +c )
2023-10-27 17:42:14 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-27 17:42:52 +0200 <EvanR> all our technology is from early 20th century so this channel should get a sepiatone filter or something
2023-10-27 17:43:29 +0200 <int-e> Sounds like a client feature. (my client does filter colors, I'm happier that way)
2023-10-27 17:47:20 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
2023-10-27 17:47:34 +0200liamzy__(~Inst@120.244.192.250) (Ping timeout: 255 seconds)
2023-10-27 17:48:02 +0200 <rgw> or irssi running cool-retro-term
2023-10-27 17:51:49 +0200ski(~ski@c188-148-130-34.bredband.tele2.se)
2023-10-27 17:52:07 +0200Ranhir(~Ranhir@157.97.53.139) (Ping timeout: 252 seconds)
2023-10-27 17:53:58 +0200 <int-e> rgw: I would consider the terminal emulator to be part of the client stack.
2023-10-27 17:56:54 +0200Ranhir(~Ranhir@157.97.53.139)
2023-10-27 17:58:02 +0200 <EvanR> is parsec or read worse in terms of parsing performance
2023-10-27 17:58:12 +0200 <EvanR> or are they the same
2023-10-27 17:58:43 +0200 <EvanR> on show data type-like languages
2023-10-27 17:59:10 +0200 <geekosaur> read is significantly worse
2023-10-27 18:00:16 +0200wjm(~work@2600:4040:5c44:a500:2680:cfb3:b9fe:815d) (Remote host closed the connection)
2023-10-27 18:00:24 +0200 <EvanR> why is that
2023-10-27 18:02:08 +0200gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2023-10-27 18:02:16 +0200Ranhir(~Ranhir@157.97.53.139) (Read error: Connection reset by peer)
2023-10-27 18:02:17 +0200econo_(uid147250@id-147250.tinside.irccloud.com)
2023-10-27 18:05:40 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2023-10-27 18:08:14 +0200gentauro(~gentauro@user/gentauro)
2023-10-27 18:09:53 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2023-10-27 18:12:48 +0200EvanR(~EvanR@user/evanr) (Remote host closed the connection)
2023-10-27 18:13:07 +0200EvanR(~EvanR@user/evanr)
2023-10-27 18:13:13 +0200 <geekosaur> it does a lot of extra work to stay within Haskell98 compatibility, and because the underlying parser framework supports multiple parse results (that are never used, but may cause extra backtracking)
2023-10-27 18:14:45 +0200 <EvanR> what's with the multiple parse results
2023-10-27 18:14:53 +0200kiriakos(~kiriakos@p57b651b6.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2023-10-27 18:15:01 +0200 <EvanR> is that critical to the parsing strategy
2023-10-27 18:15:10 +0200 <geekosaur> "that are never used"
2023-10-27 18:15:25 +0200 <EvanR> I understand never used, so why does it exist
2023-10-27 18:15:33 +0200 <geekosaur> I'm not sure anyone knows
2023-10-27 18:15:36 +0200 <EvanR> lol
2023-10-27 18:15:55 +0200ddellacosta(~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 255 seconds)
2023-10-27 18:16:47 +0200ddellacosta(~ddellacos@ool-44c738de.dyn.optonline.net)
2023-10-27 18:18:56 +0200liamzy__(~Inst@120.244.192.250)
2023-10-27 18:23:05 +0200ski(~ski@c188-148-130-34.bredband.tele2.se) (Ping timeout: 258 seconds)
2023-10-27 18:24:26 +0200 <EvanR> what about comparing Show and something like blaze-html, is show respectively "significantly worse"
2023-10-27 18:25:58 +0200 <geekosaur> it's not a whol lot worse but it's not going to be as optimized as blaze-html is
2023-10-27 18:26:20 +0200 <geekosaur> and I'd expect blaze-html to follow at least slightly different rules
2023-10-27 18:26:55 +0200 <geekosaur> since Haskell values as source and HTML are somewhat different
2023-10-27 18:28:18 +0200fendor(~fendor@2a02:8388:1640:be00:4648:ee17:640e:e578)
2023-10-27 18:28:25 +0200Ranhir(~Ranhir@157.97.53.139)
2023-10-27 18:33:39 +0200danza(~francesco@151.57.162.152)
2023-10-27 18:33:47 +0200 <liamzy__> hmmm, a bit unfortunate, looks like Chinese Haskell scene is dead
2023-10-27 18:33:50 +0200liamzy__Inst
2023-10-27 18:34:34 +0200 <Inst> there's a 1150 person QQ group, of which only 17 people are highly active :(
2023-10-27 18:35:09 +0200 <EvanR> that sounds better than this channel
2023-10-27 18:35:18 +0200 <EvanR> should I learn chinese
2023-10-27 18:37:18 +0200billchenchina(~billchenc@103.152.35.21)
2023-10-27 18:38:25 +0200 <haskellbridge> 08<t​ewuzij> What is Chinese Haskell scene?
2023-10-27 18:39:35 +0200euleritian(~euleritia@x52716298.dyn.telefonica.de) (Read error: Connection reset by peer)
2023-10-27 18:39:53 +0200euleritian(~euleritia@77.22.252.56)
2023-10-27 18:44:17 +0200danza(~francesco@151.57.162.152) (Ping timeout: 246 seconds)
2023-10-27 18:47:58 +0200billchenchina(~billchenc@103.152.35.21) (Remote host closed the connection)
2023-10-27 18:53:10 +0200 <ghoulguy> geekosaur: is this new color-rendered, highlight breaking matterbridge configuration a standard matterbridge thing?
2023-10-27 18:53:32 +0200 <geekosaur> yes. I can turn it back off if it's causing problems
2023-10-27 18:54:06 +0200 <geekosaur> (but highlights should already be broken because I disabled that some time ago by having it insert nonbreaking spaces into nicks, which is another standard thing)
2023-10-27 18:54:17 +0200 <ghoulguy> it breaks my client support for making the messages look native, so I need to update my client. I mostly wonder what the range of options is and if its natively supported in matterbridge so I can undo it generically
2023-10-27 18:54:21 +0200trillp(~trillp@2603-8080-6ef0-40f0-0000-0000-0000-1c3a.res6.spectrum.com)
2023-10-27 18:55:20 +0200 <geekosaur> `Colornicks=true` is an option in standard matterbridge
2023-10-27 18:55:32 +0200 <ghoulguy> thanks
2023-10-27 18:55:39 +0200 <Inst> EvanR: I know someone ended up getting recruited for compilers in Nanjing, which is the nice part of China (the area clustered near Shanghai, but not Shanghai itself).
2023-10-27 18:55:44 +0200 <geekosaur> the only change I made to matterbridge was to update the version of girc it uses as part of trying to diagnose a crash
2023-10-27 18:56:08 +0200CO2(CO2@gateway/vpn/protonvpn/co2) (Quit: WeeChat 4.1.0)
2023-10-27 18:57:15 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-10-27 18:57:16 +0200 <geekosaur> I tried at one point to disable sending edits to IRC but it failed because the bridge apparently knows not to send edit notifications to IRC, just the edits as new messages 😞
2023-10-27 18:57:57 +0200sansk(~sansk@user/sansk)
2023-10-27 18:58:09 +0200danza(~francesco@151.47.118.222)
2023-10-27 18:58:32 +0200 <Inst> is it true that Haskell is THE language for parsers? ?:(
2023-10-27 18:58:53 +0200 <sansk> well it is very easy to write a parser in haskell
2023-10-27 18:59:07 +0200 <sansk> *parsec libraries are great!
2023-10-27 18:59:09 +0200 <geekosaur> I would expect SML/NJ to be pretty good at it too
2023-10-27 18:59:15 +0200 <Inst> and flatparse can outperform nom <3
2023-10-27 18:59:30 +0200Guest|16(~Guest|16@130.209.157.49) (Quit: Connection closed)
2023-10-27 18:59:50 +0200 <geekosaur> it just doesn't have the cachet that Haskell has
2023-10-27 19:00:51 +0200 <sansk> scala also has parsley which i have heard good things about
2023-10-27 19:01:16 +0200 <int-e> It has been said that Haskell is a DSL for writing compilers but I think that has more to do with A(lgebraic)DTs and to some extent with first-class functions than with anything relating to the ease or lack thereof of writing parsers.
2023-10-27 19:02:10 +0200euleritian(~euleritia@77.22.252.56) (Ping timeout: 272 seconds)
2023-10-27 19:02:15 +0200 <int-e> (ADTs come with pattern matching)
2023-10-27 19:03:04 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-10-27 19:04:19 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2023-10-27 19:04:29 +0200random-jellyfish(~tiber@user/random-jellyfish) (Ping timeout: 258 seconds)
2023-10-27 19:05:27 +0200jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Quit: Textual IRC Client: www.textualapp.com)
2023-10-27 19:05:27 +0200pixelmonk(~pixelmonk@173.46.79.26)
2023-10-27 19:05:31 +0200tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net)
2023-10-27 19:05:50 +0200 <EvanR> Inst, I just wrote a parser for the type signatures in STLC... without a library, but with ViewPatterns https://paste.tomsmeding.com/UTwTZ4BN, type = * | type -> type
2023-10-27 19:06:22 +0200 <Inst> i'm just wondering if Haskell is worth FFI-ing into for parsers :(
2023-10-27 19:06:37 +0200 <exarkun> Probably depends what the other side is.
2023-10-27 19:08:24 +0200 <geekosaur> I'm not sure I would bother, most languages have at least parser generators if not parser combinator libraries
2023-10-27 19:08:57 +0200Fischmiep(~Fischmiep@user/Fischmiep) (Quit: ZNC - https://znc.in)
2023-10-27 19:08:58 +0200Guest|17(~Guest|17@068-186-020-129.res.spectrum.com)
2023-10-27 19:09:00 +0200 <sansk> Yeah, most languages have libraries for that
2023-10-27 19:09:06 +0200 <sansk> Inst: what language?
2023-10-27 19:09:33 +0200 <Inst> nothing in mind, but i just get the impression that parsers is where Haskell is extremely developed
2023-10-27 19:09:44 +0200waleee(~waleee@h-176-10-144-38.na.cust.bahnhof.se)
2023-10-27 19:09:46 +0200 <Inst> compilers, I'm guessing Rust went with OCaml because OCaml has a lower skill ceiling
2023-10-27 19:10:16 +0200 <EvanR> I get the impression many languages have parser libraries optimized for one sort of subject language over another, usually influenced by the language itself
2023-10-27 19:10:32 +0200 <EvanR> so megaparsec has a snazzy thing to parse an arbitrary expression language
2023-10-27 19:10:46 +0200danza(~francesco@151.47.118.222) (Ping timeout: 252 seconds)
2023-10-27 19:13:01 +0200 <EvanR> what you make up for in the "ease" of writing the parser in haskell you will pay for in tooling complexity and marshalling the data across process or FFI boundary
2023-10-27 19:13:26 +0200 <sansk> Inst: yeah you can find a parser library in just about any language, don't worry about using haskell ffi
2023-10-27 19:13:56 +0200 <Inst> it's more my obsession with Haskell being more used :(
2023-10-27 19:14:15 +0200 <EvanR> wrote the parser in haskell, now I serialized it to source for so it can go over a link to C, now just gotta parse it xD
2023-10-27 19:14:36 +0200 <sansk> Inst: then just write the whole thing in haskell :)
2023-10-27 19:14:54 +0200 <EvanR> ^
2023-10-27 19:16:27 +0200Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk)
2023-10-27 19:18:59 +0200phma(~phma@host-67-44-208-142.hnremote.net) (Read error: Connection reset by peer)
2023-10-27 19:19:47 +0200phma(phma@2001:5b0:211f:d828:d963:986:c941:cee8)
2023-10-27 19:22:35 +0200Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Ping timeout: 240 seconds)
2023-10-27 19:23:36 +0200Moyst_(~moyst@user/moyst) (Read error: Connection reset by peer)
2023-10-27 19:24:25 +0200CO2(CO2@gateway/vpn/protonvpn/co2)
2023-10-27 19:25:46 +0200Moyst_(~moyst@user/moyst)
2023-10-27 19:25:49 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-10-27 19:26:43 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:a583:cfb:37b7:5112) (Remote host closed the connection)
2023-10-27 19:30:31 +0200dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 260 seconds)
2023-10-27 19:31:30 +0200dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2023-10-27 19:32:37 +0200idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-10-27 19:33:27 +0200danza(~francesco@151.47.118.222)
2023-10-27 19:42:33 +0200gatekempt(~gatekempt@user/gatekempt) (Remote host closed the connection)
2023-10-27 19:45:32 +0200sansk(~sansk@user/sansk) (Quit: WeeChat 4.0.4)
2023-10-27 19:48:28 +0200danza(~francesco@151.47.118.222) (Ping timeout: 248 seconds)
2023-10-27 19:53:30 +0200Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk)
2023-10-27 19:54:28 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
2023-10-27 19:55:09 +0200euleritian(~euleritia@x52716298.dyn.telefonica.de)
2023-10-27 20:00:34 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-10-27 20:00:59 +0200 <__monty__> Inst: OCaml has a higher skill ceiling than Haskell? What does that mean?
2023-10-27 20:02:05 +0200 <Inst> i mean Haskell has a higher skill ceiling than OCaml
2023-10-27 20:02:37 +0200 <__monty__> The second question still remains.
2023-10-27 20:02:39 +0200 <geekosaur> you actually said OCaml has a lower skill ceiling
2023-10-27 20:02:45 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:a583:cfb:37b7:5112)
2023-10-27 20:03:13 +0200euleritian(~euleritia@x52716298.dyn.telefonica.de) (Read error: Connection reset by peer)
2023-10-27 20:03:25 +0200 <Inst> in the sense that Haskell requires more effort to achieve mastery than OCaml
2023-10-27 20:03:35 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-10-27 20:03:42 +0200 <__monty__> Yes they did, I might be reading challenged.
2023-10-27 20:04:42 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:a583:cfb:37b7:5112) (Read error: Connection reset by peer)
2023-10-27 20:04:50 +0200 <EvanR> language mastery haha
2023-10-27 20:04:56 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:a583:cfb:37b7:5112)
2023-10-27 20:04:57 +0200 <__monty__> Inst: So you mean the barrier to entry is higher for Haskell than OCaml?
2023-10-27 20:05:10 +0200 <__monty__> Or do you mean you can only get so leet in OCaml?
2023-10-27 20:05:26 +0200juri_(~juri@84-19-175-187.pool.ovpn.com) (Ping timeout: 258 seconds)
2023-10-27 20:07:06 +0200juri_(~juri@84-19-175-187.pool.ovpn.com)
2023-10-27 20:07:55 +0200coot(~coot@89.69.206.216) (Quit: coot)
2023-10-27 20:08:06 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
2023-10-27 20:08:50 +0200 <EvanR> your progress bar in language X starts empty then takes a varying number of XP to reach 100%
2023-10-27 20:08:51 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-10-27 20:08:54 +0200trillp(~trillp@2603-8080-6ef0-40f0-0000-0000-0000-1c3a.res6.spectrum.com) (Leaving)
2023-10-27 20:09:04 +0200 <EvanR> at which point you put master programmer of that language on the resume
2023-10-27 20:09:18 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2023-10-27 20:09:31 +0200 <geekosaur> yeh, I think they meant the first, although I would define "skill ceiling" to be the second
2023-10-27 20:10:03 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-10-27 20:10:10 +0200CO2(CO2@gateway/vpn/protonvpn/co2) (Quit: WeeChat 4.1.0)
2023-10-27 20:10:33 +0200 <int-e> The whole idea of a skill ceiling is so odd... there's always more to learn.
2023-10-27 20:10:53 +0200 <int-e> (programming isn't tic-tac-toe)
2023-10-27 20:11:54 +0200 <[exa]> I hoped the enumerability bois completely dismantled the whole idea of skill ceiling?
2023-10-27 20:12:22 +0200grimacer(~grimacer@189.172.57.182)
2023-10-27 20:12:48 +0200 <haskellbridge> 12<C​elestial> and if there isn't you have to be creative and make up stuff to learn
2023-10-27 20:12:52 +0200 <haskellbridge> 12<C​elestial> science :D
2023-10-27 20:13:15 +0200 <geekosaur> first, enumerate every valid program…
2023-10-27 20:13:26 +0200 <exarkun> [0..]
2023-10-27 20:13:27 +0200 <exarkun> what next
2023-10-27 20:14:16 +0200 <haskellbridge> 12<C​elestial> if you give me a finite character limit ...
2023-10-27 20:15:29 +0200 <grimacer> Read about Governor Samuel Garcia and Naruto's sexual relationship! Check out the exerpt here and click on the link to read the whole thing!
2023-10-27 20:15:29 +0200 <grimacer> But Samuel Garcia wasn't done yet. He pulled Naruto into one of the bathroom stalls and began to fist him with a rough, insistent force. Naruto cried out with a mix of pain and pleasure as Samuel Garcia's hand stretched him open, his body shaking with intense sensations. As they continued to explore each other's bodies, Naruto couldn't help but feel a sense of taboo excitement. He knew that what they were doing was dangerous and could
2023-10-27 20:15:29 +0200 <grimacer> ruin both of their reputations, but he couldn't resist the intense pleasure that Samuel Garcia brought him. 
2023-10-27 20:15:29 +0200 <grimacer> After they finished, Samuel Garcia casually picked the little bits of undigested corn and shrimp tails from the ramen that Naruto had eaten earlier and licked them off his fingers, savoring the flavor. Naruto felt a mix of disgust and arousal as he watched Samuel Garcia, but he knew that he couldn't deny the passion that existed between them. https://justpaste.it/Naruto_Makes_Love_Samuel_Garcia
2023-10-27 20:15:38 +0200ChanServ+o geekosaur
2023-10-27 20:15:43 +0200geekosaur+b *!*@189.172.57.182
2023-10-27 20:15:43 +0200grimacergeekosaur (grimacer)
2023-10-27 20:15:52 +0200geekosaur-o geekosaur
2023-10-27 20:16:18 +0200 <EvanR> you don't need a finite character limit!
2023-10-27 20:16:41 +0200coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-10-27 20:18:34 +0200 <haskellbridge> 12<C​elestial> well yeah, you could produce infinitely many valud programs then
2023-10-27 20:18:47 +0200 <haskellbridge> 12<C​elestial> s/valud/valid
2023-10-27 20:19:55 +0200 <EvanR> then filter by "makes the person who runs this program rich"
2023-10-27 20:20:47 +0200sm(~sm@plaintextaccounting/sm)
2023-10-27 20:22:37 +0200dostoyevsky2(~sck@user/dostoyevsky2) (Ping timeout: 248 seconds)
2023-10-27 20:24:18 +0200 <haskellbridge> 12<C​elestial> if you write that function for me, I will gladly `filter makesRich`
2023-10-27 20:25:15 +0200 <haskellbridge> 12<C​elestial> while at it, please also write me a function that tells me whether a given haskell program terminates in finite time, thanks
2023-10-27 20:27:47 +0200 <exarkun> is `mapConcurrently id` the most direct thing to do with `[IO a]`? to get `IO [a]` concurrently?
2023-10-27 20:28:39 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:a583:cfb:37b7:5112) (Remote host closed the connection)
2023-10-27 20:28:39 +0200michalz(~michalz@185.246.207.193) (Remote host closed the connection)
2023-10-27 20:28:52 +0200 <exarkun> The list comes from the applicative instance of [] so I don't know how to go directly from the function that makes the IO a to the mapConcurrently call
2023-10-27 20:30:01 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 255 seconds)
2023-10-27 20:30:29 +0200dostoyevsky2(~sck@user/dostoyevsky2)
2023-10-27 20:31:44 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-10-27 20:34:51 +0200 <Inst> __monty__: I actually mean the second, in the sense that in an OCaml codebase, it's reasonable for everyone to be expected to have proficient to master-level understanding of the language and its idioms
2023-10-27 20:35:01 +0200CO2(CO2@gateway/vpn/protonvpn/co2)
2023-10-27 20:35:09 +0200 <Inst> in Haskell, the same doesn't apply, so that can create issues for onboarding and maintainability
2023-10-27 20:36:37 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-10-27 20:42:12 +0200sm(~sm@plaintextaccounting/sm)
2023-10-27 20:43:04 +0200Simikando(~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Quit: Leaving)
2023-10-27 20:46:11 +0200ChanServ+o litharge
2023-10-27 20:46:12 +0200litharge-bo *!*@189.172.57.182 litharge
2023-10-27 20:51:32 +0200 <duncan> Inst: It isn't clear to me that that is a real distinction
2023-10-27 20:52:09 +0200 <Inst> duncan: what is a real distinction?
2023-10-27 20:53:03 +0200 <duncan> Well, it's not a technical distinction, and there are (shockingly) people who are beginning to learn ocaml
2023-10-27 20:53:24 +0200 <Inst> but to get to proficiency, does it require more, less, or the same amount of effort?
2023-10-27 20:57:53 +0200 <exarkun> different people learn in different ways, at different rates, with different outcomes
2023-10-27 20:58:07 +0200 <exarkun> and effort is hard to measure anyway
2023-10-27 20:58:08 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-10-27 20:58:14 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 255 seconds)
2023-10-27 20:58:17 +0200 <c_wraith> exarkun: can you make use of the Concurrently wrapper in the process? if that's not something you can work in easily, mapConcurrently id is fine
2023-10-27 20:58:29 +0200 <exarkun> and then how do you measure "mastery"
2023-10-27 20:58:55 +0200 <exarkun> c_wraith: hm!
2023-10-27 20:59:25 +0200_xor(~xor@72.49.199.93) (Read error: Connection reset by peer)
2023-10-27 20:59:56 +0200dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 255 seconds)
2023-10-27 21:01:47 +0200_xor(~xor@72.49.199.93)
2023-10-27 21:02:20 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:a583:cfb:37b7:5112)
2023-10-27 21:03:48 +0200 <duncan> Inst: there are two different things going on, there's proficiency in the language and there's a commercial codebase
2023-10-27 21:04:20 +0200 <duncan> the latter is distinctly unlikely to require less effort in Haskell than ocaml
2023-10-27 21:04:28 +0200 <geekosaur> three, since a commercial codebase implies commercial users and you need familiarity with what they need
2023-10-27 21:04:34 +0200 <geekosaur> or are looking for
2023-10-27 21:06:46 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:a583:cfb:37b7:5112) (Ping timeout: 260 seconds)
2023-10-27 21:09:04 +0200Maxdamantus(~Maxdamant@user/maxdamantus) (Ping timeout: 258 seconds)
2023-10-27 21:11:02 +0200Maxdamantus(~Maxdamant@user/maxdamantus)
2023-10-27 21:11:07 +0200heichro(~user@p200300c3cf492d00d2e6407fb98ca48c.dip0.t-ipconnect.de)
2023-10-27 21:13:08 +0200heichro(~user@p200300c3cf492d00d2e6407fb98ca48c.dip0.t-ipconnect.de) (Remote host closed the connection)
2023-10-27 21:13:42 +0200pavonia(~user@user/siracusa)
2023-10-27 21:19:02 +0200pixelmonk(~pixelmonk@173.46.79.26) (Ping timeout: 258 seconds)
2023-10-27 21:21:56 +0200Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
2023-10-27 21:28:37 +0200 <int-e> Oh yeah what happened to ozone?
2023-10-27 21:29:31 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-10-27 21:29:35 +0200 <geekosaur> left the channel because it didn't seem to be needed. we can /invite it again if needed
2023-10-27 21:30:57 +0200 <geekosaur> Oct 18 16:24:50 * ozone (ozone@libera/bot/ozone) has left (Leaving the channel. /invite ozone again if needed)
2023-10-27 21:31:02 +0200 <int-e> Would it help with that Samuel Garcia spam? That's the only recurring thing right now I think.
2023-10-27 21:31:43 +0200 <tomsmeding> that's what it was invited for in the first place, recently
2023-10-27 21:31:57 +0200 <tomsmeding> it was so-so effective with it
2023-10-27 21:32:51 +0200pixelmonk(~pixelmonk@173.46.79.26)
2023-10-27 21:38:03 +0200sm(~sm@plaintextaccounting/sm)
2023-10-27 21:42:03 +0200target_i(~target_i@217.175.14.39)
2023-10-27 21:43:44 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-27 21:44:00 +0200michalz(~michalz@185.246.207.200)
2023-10-27 21:44:45 +0200idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.5)
2023-10-27 21:47:09 +0200Lycurgus(~georg@user/Lycurgus)
2023-10-27 21:48:33 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 258 seconds)
2023-10-27 21:49:13 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-10-27 21:49:48 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:a583:cfb:37b7:5112)
2023-10-27 21:52:24 +0200 <EvanR> I was looking for the proper nomenclature for this thing back when we were talking about DList... data JList a = Empty | Single a | Join (JList a) (JList a), called a join list by ghc wiki
2023-10-27 21:54:04 +0200 <EvanR> O(1) concat! ooo ahh
2023-10-27 21:54:23 +0200 <int-e> "binary tree"
2023-10-27 21:54:55 +0200 <exarkun> int-e: so pedestrian
2023-10-27 21:55:11 +0200 <int-e> Just telling it how I see it.
2023-10-27 21:58:42 +0200 <[exa]> isn't it kinda isomorphic to a free Maybe?
2023-10-27 21:59:55 +0200 <[exa]> ah no it branches too much :D
2023-10-27 22:00:15 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2023-10-27 22:00:35 +0200sm(~sm@plaintextaccounting/sm)
2023-10-27 22:01:41 +0200 <c_wraith> It's like Free Pair
2023-10-27 22:01:41 +0200 <int-e> It's more of a monoid over `a` without the monoid laws.
2023-10-27 22:02:08 +0200 <c_wraith> where data Pair a = Pair a a
2023-10-27 22:02:15 +0200 <int-e> (...which given that it captures a monoid shouldn't be surprising)
2023-10-27 22:02:49 +0200 <c_wraith> Oh, not quite. It needs an empty constructor too. Well that's not a common type at all.
2023-10-27 22:02:50 +0200 <int-e> wouldn't you need `Pair a a | Empty`
2023-10-27 22:03:05 +0200 <int-e> What's that, Compose Maybe Pair
2023-10-27 22:03:15 +0200 <c_wraith> yes
2023-10-27 22:03:24 +0200 <c_wraith> Free (Compose Maybe Pair)
2023-10-27 22:03:30 +0200 <c_wraith> ... that's way too awkward :)
2023-10-27 22:03:51 +0200 <EvanR> JList
2023-10-27 22:04:00 +0200 <EvanR> you're welcome
2023-10-27 22:04:04 +0200 <int-e> obfuscation++; insight--;
2023-10-27 22:04:28 +0200 <EvanR> @karma obfuscation
2023-10-27 22:04:28 +0200 <lambdabot> obfuscation has a karma of 0
2023-10-27 22:05:23 +0200 <int-e> I don't think it triggers like that.
2023-10-27 22:05:44 +0200sm(~sm@plaintextaccounting/sm) (Ping timeout: 255 seconds)
2023-10-27 22:07:17 +0200gooba(~gooba@90-231-13-185-no3430.tbcn.telia.com) (Remote host closed the connection)
2023-10-27 22:09:18 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2023-10-27 22:11:43 +0200Square2(~Square@user/square) (Remote host closed the connection)
2023-10-27 22:11:45 +0200Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2023-10-27 22:12:19 +0200tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving)
2023-10-27 22:12:54 +0200drjeff16(~drjeff16@user/K3nnethJ3fferson)
2023-10-27 22:13:09 +0200drjeff16DrKJeff16
2023-10-27 22:14:14 +0200tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
2023-10-27 22:16:58 +0200DrKJeff16is away: AFK
2023-10-27 22:17:46 +0200 <int-e> I hate clients that do that.
2023-10-27 22:19:13 +0200qqq(~qqq@92.43.167.61) (Quit: leaving)
2023-10-27 22:21:01 +0200 <DrKJeff16> Pardon me?
2023-10-27 22:21:23 +0200 <geekosaur> verbose away
2023-10-27 22:21:30 +0200 <geekosaur> [27 20:16:58] * DrKJeff16 is away: AFK
2023-10-27 22:21:45 +0200Pickchea(~private@user/pickchea)
2023-10-27 22:22:03 +0200DrKJeff16is back (gone 00:05:05)
2023-10-27 22:22:06 +0200 <EvanR> sorry for barging in but I'm Away
2023-10-27 22:22:33 +0200 <DrKJeff16> Apologies, I'm getting the hang of using Weechat, will fix ASAP.
2023-10-27 22:22:56 +0200 <mauke> why is that even a thing? :-D
2023-10-27 22:23:02 +0200 <int-e> DrKJeff16: Sorry I could've pointed that out in a more friendly way.
2023-10-27 22:23:59 +0200DrKJeff16(~drjeff16@user/K3nnethJ3fferson) (Quit: WeeChat 4.0.5)
2023-10-27 22:28:22 +0200drjeff16(~drjeff16@user/K3nnethJ3fferson)
2023-10-27 22:28:39 +0200drjeff16DrKJeff16
2023-10-27 22:31:36 +0200 <Inst> btw, was briefly discussing STRef with someone
2023-10-27 22:31:55 +0200 <Inst> I'm wondering if STUArray etc doesn't suffer a performance penalty?
2023-10-27 22:32:40 +0200 <Inst> or is STRef actually performant when working with unboxed values?
2023-10-27 22:34:18 +0200 <EvanR> you can't put an unboxed value in an STRef
2023-10-27 22:35:06 +0200 <EvanR> unboxed values have to be handled directly
2023-10-27 22:35:13 +0200 <EvanR> or packed into an array
2023-10-27 22:35:41 +0200 <EvanR> or in an unboxed field of a data structure!
2023-10-27 22:37:59 +0200trev(~trev@user/trev)
2023-10-27 22:40:23 +0200fendor(~fendor@2a02:8388:1640:be00:4648:ee17:640e:e578) (Remote host closed the connection)
2023-10-27 22:41:42 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2023-10-27 22:48:16 +0200sm(~sm@plaintextaccounting/sm)
2023-10-27 22:52:27 +0200dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2023-10-27 23:03:29 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2023-10-27 23:05:43 +0200waleee(~waleee@h-176-10-144-38.na.cust.bahnhof.se) (Ping timeout: 255 seconds)
2023-10-27 23:07:51 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2023-10-27 23:07:59 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2023-10-27 23:09:28 +0200Jackneill(~Jackneill@20014C4E1E03D8000F82DBB60140E9E2.dsl.pool.telekom.hu) (Ping timeout: 252 seconds)
2023-10-27 23:09:28 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-10-27 23:11:05 +0200sm(~sm@plaintextaccounting/sm)
2023-10-27 23:13:25 +0200CO2(CO2@gateway/vpn/protonvpn/co2) (Quit: WeeChat 4.1.0)
2023-10-27 23:18:12 +0200coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-10-27 23:19:50 +0200DrKJeff16(~drjeff16@user/K3nnethJ3fferson) (Quit: DrKJeff16)
2023-10-27 23:20:49 +0200trev(~trev@user/trev) (Quit: trev)
2023-10-27 23:21:55 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 255 seconds)
2023-10-27 23:26:38 +0200 <davean> EvanR: yah, you'd need a PrimVar ;)
2023-10-27 23:28:23 +0200 <davean> Inst: I'm not sure why you relate STRef and STUArray
2023-10-27 23:30:11 +0200 <davean> Inst: STUArray is one indirection faster.
2023-10-27 23:30:28 +0200 <davean> it does not use or relate to STRef
2023-10-27 23:36:01 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2023-10-27 23:38:19 +0200michalz(~michalz@185.246.207.200) (Remote host closed the connection)
2023-10-27 23:38:20 +0200 <Inst> except both are manipulated via ST type?
2023-10-27 23:40:19 +0200 <EvanR> STRef is like IORef but can't escape the ST thread
2023-10-27 23:42:09 +0200 <davean> Inst: Thats a pretty remote relationship? I mean you can say something similar about writeFile
2023-10-27 23:42:34 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2023-10-27 23:42:49 +0200 <Inst> on, the context is that i'm trying to clean up a Jon Bontley quicksort ported to Haskell
2023-10-27 23:42:56 +0200Pickchea(~private@user/pickchea)
2023-10-27 23:43:17 +0200 <Inst> https://stackoverflow.com/questions/10049579/jon-bentleys-beautiful-quicksort-how-does-it-even-work
2023-10-27 23:43:36 +0200 <Inst> the point of doing a ST quicksort is so that it's in place
2023-10-27 23:43:48 +0200 <Inst> and switching to STref sort of defeats the point, no?
2023-10-27 23:43:50 +0200derpyxdhs(~Thunderbi@user/derpyxdhs)
2023-10-27 23:44:18 +0200 <Inst> on the other hand, the point of the bentley is that it's "elegant", and i'd want to get my Haskell in-place mutating quicksort to be as elegant
2023-10-27 23:44:49 +0200 <EvanR> STRef is mutated in place just like IORef
2023-10-27 23:45:14 +0200 <davean> Inst: no that doesn't defeat the point, its still in place and can require moving FAR less data to move the pointers.
2023-10-27 23:45:18 +0200 <John_Ivan_> does anyone else's "http-conduit" library give undefined symbol errors to it's dependencies like "ghczupwrapper", "hashablezml", "zzlib", when trying to compile "L.unpack <$> simpleHttp url" ?
2023-10-27 23:45:33 +0200 <John_Ivan_> I suspect the library's broken. Otherwise, might be me doing something wrong?
2023-10-27 23:46:06 +0200 <Inst> iirc there's some benchmarks that suggest that accumulating parameter is generally faster than STRef and by implication IORef when it comes to lots of writes
2023-10-27 23:46:12 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-27 23:46:15 +0200 <John_Ivan_> all I did was add the dependency to my cabal file, imported the lib and did a "cabal build".
2023-10-27 23:46:49 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-10-27 23:47:15 +0200 <davean> Inst: those are fundimently different things, doing fundimentally different things, of course they're different.
2023-10-27 23:47:19 +0200 <EvanR> Inst, if the thing in the accumulator can be efficiently updated in an immutable way (e.g. it's a single Int), then sure
2023-10-27 23:47:36 +0200CO2(CO2@gateway/vpn/protonvpn/co2)
2023-10-27 23:47:55 +0200 <EvanR> mutable variables incur additional gc bookkeeping, but it might be worth it for your algorithm
2023-10-27 23:48:15 +0200 <Inst> my target is more to try to get it to look clean without cutting corners
2023-10-27 23:48:21 +0200 <Inst> if you wanted cleanliness at all costs, umm
2023-10-27 23:48:26 +0200 <davean> Inst: you really need to learn about trade offs, you are completely ignoring things like having to copy the data.
2023-10-27 23:49:05 +0200 <EvanR> so make it look clean and don't worry about performance?
2023-10-27 23:49:14 +0200 <davean> I can give you datatypes where a single copy will cost more than the entire sort.
2023-10-27 23:50:41 +0200 <Inst> quicksort xs = if null xs then xs else quicksort (filter (<= head xs) xs) ++ head xs ++ quicksort (filter (> head xs) xs)
2023-10-27 23:50:56 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
2023-10-27 23:51:02 +0200 <EvanR> nice
2023-10-27 23:51:17 +0200 <int-e> also a bit wrong
2023-10-27 23:51:23 +0200 <Inst> whoops quicksort xs = if null xs then xs else quicksort (filter (<= head xs) xs) ++ [head xs] ++ quicksort (filter (> head xs) xs)
2023-10-27 23:51:31 +0200 <int-e> still wrong
2023-10-27 23:51:44 +0200 <Inst> i mean that QS isn't even a quicksort, is that why it's wrong?
2023-10-27 23:51:47 +0200 <int-e> though now it should typecheck
2023-10-27 23:51:59 +0200 <davean> Also, seriously, filter not partition?
2023-10-27 23:52:23 +0200 <Inst> it's a one liner, and this isn't in place at all
2023-10-27 23:52:48 +0200 <EvanR> <= and > seems to exclude nothing
2023-10-27 23:52:48 +0200 <davean> oh I just find filter much less eligant than partitioning
2023-10-27 23:52:57 +0200 <Inst> oh, whoops
2023-10-27 23:53:07 +0200 <int-e> > let quicksort xs = if null xs then xs else quicksort (filter (<= head xs) xs) ++ [head xs] ++ quicksort (filter (> head xs) xs) in quicksort [42]
2023-10-27 23:53:11 +0200 <Inst> quicksort xs = if null xs then xs else quicksort (filter (<= head xs) (tail xs)) ++ head xs ++ quicksort (filter (> head xs) (tail xs))
2023-10-27 23:53:13 +0200 <lambdabot> mueval-core: Time limit exceeded
2023-10-27 23:53:40 +0200 <Inst> > quicksort xs = if null xs then xs else quicksort (filter (<= head xs) (tail xs)) ++ head xs ++ quicksort (filter (> head xs) (tail xs))
2023-10-27 23:53:42 +0200 <lambdabot> <hint>:1:14: error: parse error on input ‘=’
2023-10-27 23:54:19 +0200 <Inst> > let quicksort xs = if null xs then xs else quicksort (filter (<= head xs) (tail xs)) ++ [head xs] ++ quicksort (filter (> head xs) (tail xs)) in quicksort [44,43..1]
2023-10-27 23:54:20 +0200 <lambdabot> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,...
2023-10-27 23:54:50 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2023-10-27 23:55:07 +0200sm(~sm@plaintextaccounting/sm)
2023-10-27 23:55:32 +0200derpyxdhs(~Thunderbi@user/derpyxdhs) (Quit: derpyxdhs)
2023-10-27 23:55:35 +0200 <davean> I really think partition shows it off better
2023-10-27 23:55:38 +0200sm(~sm@plaintextaccounting/sm) (Client Quit)
2023-10-27 23:55:41 +0200 <davean> particular its symetry, etc.
2023-10-27 23:55:52 +0200 <EvanR> is the goal to be "clean", "in-place", or "\"performant\"", gotta decide
2023-10-27 23:56:04 +0200 <Inst> https://paste.tomsmeding.com/bisFWB96
2023-10-27 23:56:11 +0200 <davean> EvanR: Oh in Haskell we often can have all 3 with a little work.
2023-10-27 23:56:49 +0200 <EvanR> pick 3
2023-10-27 23:56:52 +0200 <EvanR> lol
2023-10-27 23:57:18 +0200 <Inst> my version is a big improvement on earlier overgolfed versions
2023-10-27 23:57:19 +0200 <davean> Its really a choice of 4 things, and we just ignore "engenering time" is a factor we might ever pick.
2023-10-27 23:57:36 +0200fweht(uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-10-27 23:58:07 +0200 <davean> Thats ok though, because maintance is so much lower!
2023-10-27 23:58:09 +0200 <int-e> Inst: lines 22-23 are needlessly cute