2023/11/02

2023-11-02 00:00:09 +0100juri__juri_
2023-11-02 00:02:16 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 255 seconds)
2023-11-02 00:02:21 +0100idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.5)
2023-11-02 00:10:09 +0100 <Axeman6> @remember yin haskell is nice; sometimes I get annoyed at all its imperfections but then i try another languages and I remember to be grateful
2023-11-02 00:10:09 +0100 <lambdabot> I will remember.
2023-11-02 00:10:18 +0100 <Axeman6> @quote yin
2023-11-02 00:10:18 +0100 <lambdabot> yin says: haskell is nice; sometimes I get annoyed at all its imperfections but then i try another languages and I remember to be grateful
2023-11-02 00:10:25 +0100 <Axeman6> @botsnack
2023-11-02 00:10:26 +0100 <lambdabot> :)
2023-11-02 00:13:43 +0100 <jack-o-lanterndk> Lovely sentiment
2023-11-02 00:19:15 +0100 <Axeman6> dsal: if you can extract the common functionality into a record, then you can just pass those into your app monad's reader or whatever, it's basically ghetto type classes
2023-11-02 00:19:16 +0100 <EvanR> haskell is the worst programming language, except for all the other ones
2023-11-02 00:20:02 +0100 <dsal> Axeman6: yeah, that's how it works. I just have people on different systems complaining about not knowing how to make it compile against postgres, which _I_ use, but isn't necessary for everyone.
2023-11-02 00:21:15 +0100 <EvanR> ship it with a dummy version of postgres which cabal detects, but it does nothing, goes nowhere (GNDN)
2023-11-02 00:29:26 +0100coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-11-02 00:33:20 +0100pixelmonk(~pixelmonk@173.46.79.26) (Ping timeout: 258 seconds)
2023-11-02 00:38:30 +0100gmg(~user@user/gehmehgeh) (Quit: Leaving)
2023-11-02 00:42:20 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 256 seconds)
2023-11-02 00:45:17 +0100hippoid(~hippoid@c-98-213-162-40.hsd1.il.comcast.net) (Quit: WeeChat 4.0.1)
2023-11-02 00:46:20 +0100 <dsal> This is currently just another failing campaign to get everyone using nix so I don't have to think about things.
2023-11-02 00:47:00 +0100 <geekosaur> are you buying me a bigger ssd?
2023-11-02 00:48:14 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-11-02 00:48:46 +0100 <Axeman6> It's Nix, just store everything on someone else's SSD and reference it by hash
2023-11-02 00:49:03 +0100 <jack-o-lanterndk> Once you're accepting a record-of-functions (or providing it in a separate package), is it possible to make the postgres stuff its own package?
2023-11-02 00:50:17 +0100pixelmonk(~pixelmonk@173.46.79.26)
2023-11-02 00:57:03 +0100arahael(~arahael@119-18-2-212.771202.syd.nbn.aussiebb.net) (Ping timeout: 240 seconds)
2023-11-02 01:00:32 +0100[_](~itchyjunk@user/itchyjunk/x-7353470)
2023-11-02 01:01:15 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2023-11-02 01:03:47 +0100Guest91(~Guest37@149.159.195.52) (Quit: Client closed)
2023-11-02 01:05:53 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:ec87:948a:1a8:d401)
2023-11-02 01:06:45 +0100htor(~htor@84.208.240.181) (Quit: htor)
2023-11-02 01:07:51 +0100lg188(~lg188@82.18.98.230) (Ping timeout: 260 seconds)
2023-11-02 01:08:14 +0100lg188(~lg188@82.18.98.230)
2023-11-02 01:09:49 +0100 <dsal> Basically only one file knows anything about postgres. Plus maybe one more to decide to reference it. It feels like it should be easy enough to split off.
2023-11-02 01:09:59 +0100 <dsal> At some point, there's some linkage, though.
2023-11-02 01:13:25 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2023-11-02 01:27:05 +0100 <thegman> is there a way to have a modifiable variable inside of a function
2023-11-02 01:27:45 +0100 <thegman> i added `where z = 1` and but i think it gets re set to that every time the function runs (its recursive)
2023-11-02 01:28:26 +0100Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Ping timeout: 255 seconds)
2023-11-02 01:29:43 +0100 <geekosaur> no
2023-11-02 01:30:01 +0100 <geekosaur> youu have to pass changing things as parameters
2023-11-02 01:32:51 +0100Square2(~Square@user/square) (Ping timeout: 255 seconds)
2023-11-02 01:33:32 +0100 <thegman> what does that mean
2023-11-02 01:33:45 +0100 <thegman> do you mean passing the arguments back to the function
2023-11-02 01:34:20 +0100Guest35(~Guest35@194.127.199.107)
2023-11-02 01:34:25 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2023-11-02 01:34:30 +0100 <thegman> im doing that with `z` but it just goes back to the where part and sets it back to 1
2023-11-02 01:38:28 +0100 <geekosaur> yes
2023-11-02 01:39:17 +0100 <geekosaur> bindings are immutable in Haskell; `z` will always be 1. (You may be temporarily shadowing it but that will go away when you recurse)
2023-11-02 01:41:35 +0100 <thegman> dang
2023-11-02 01:42:25 +0100 <thegman> the function i have needs to keep the original value of an input while modifying modifying it when doing another iteration
2023-11-02 01:43:02 +0100 <Guest35> hi. i've been reading "making our own types and typeclasses" from "learn you a haskell" and i don't understand one sentence which revolves around this piece of code: `https://paste.tomsmeding.com/Ne7LNFJH/raw/1`
2023-11-02 01:43:02 +0100 <Guest35> the sentence in question is: "Making `Frank` an instance of `Tofu` is pretty simple. We see that `tofu` takes a `j a` (so an example type of that form would be `Maybe Int`) and returns a `t a j`. So if we replace Frank with `j`, the result type would be `Frank Int Maybe`."
2023-11-02 01:43:03 +0100 <Guest35> shouldn't it be "So if we replace t with Frank, the result type would be Frank Int Maybe" as we would then get
2023-11-02 01:43:03 +0100 <Guest35> `tofu :: Maybe Int -> Frank Int Maybe`
2023-11-02 01:43:18 +0100 <yushyin> thegman: you can represent 'state' as a parameter to the function
2023-11-02 01:48:13 +0100 <Axeman6> Guest35: I'm not sure I understand the question, but if you turn on the InstanceSigs extension, you can hadd the type you think should be there and see if GHC agrees
2023-11-02 01:48:21 +0100 <geekosaur> Guest35, yes, I think that's right. I can
2023-11-02 01:48:44 +0100 <geekosaur> 't find an errata page for the online version, and it's not shown in the errata for the print version
2023-11-02 01:48:45 +0100 <Axeman6> I also think you are right though, nice work
2023-11-02 01:49:32 +0100 <geekosaur> you're already starting to think in terms of typed, that'll get you far
2023-11-02 01:49:37 +0100 <geekosaur> *types
2023-11-02 01:50:26 +0100 <thegman> what the heck is state
2023-11-02 01:51:13 +0100thegeekinside(~thegeekin@189.141.80.123)
2023-11-02 01:51:14 +0100 <geekosaur> the stuff that needs to change with each recursion
2023-11-02 01:51:49 +0100 <geekosaur> literally; we even have a State monad which hides the passing and returning of "mutable" values for us
2023-11-02 01:52:30 +0100 <geekosaur> so we work with `a` but it's really `s -> (s, a)`
2023-11-02 01:52:33 +0100 <thegman> i still need to figure out what monads are
2023-11-02 01:52:35 +0100 <yushyin> https://en.wikipedia.org/wiki/State_(computer_science)#Program_state o.o
2023-11-02 01:52:42 +0100 <thegman> word on the street is they are the big bad wolf of haskell
2023-11-02 01:52:53 +0100 <geekosaur> not really
2023-11-02 01:53:20 +0100 <geekosaur> people spread that because they don't want to have to think about Haskell. but it's immutability that really bugs them
2023-11-02 01:53:48 +0100 <Guest35> Axeman6 geekosaur, thanks for help, i couldn't make sense of that sentence no matter how i spun it
2023-11-02 01:56:00 +0100 <geekosaur> well. they also pretend IO is hard because it's a monad. but IO is not hard because it's a monad; it's hard because it's IO
2023-11-02 01:56:46 +0100 <geekosaur> the monad is literally a state monad that ensures that things happen in the correct order by passing the state between operations
2023-11-02 01:56:55 +0100Guest35(~Guest35@194.127.199.107) (Quit: Client closed)
2023-11-02 01:57:55 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 264 seconds)
2023-11-02 02:03:55 +0100Lycurgus(~georg@user/Lycurgus)
2023-11-02 02:05:16 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds)
2023-11-02 02:05:55 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2023-11-02 02:11:42 +0100Guest99(~Guest37@149.159.195.52)
2023-11-02 02:22:13 +0100vglfr(~vglfr@88.155.154.204)
2023-11-02 02:22:19 +0100vglfr(~vglfr@88.155.154.204) (Read error: Connection reset by peer)
2023-11-02 02:22:40 +0100vglfr(~vglfr@149.102.244.116)
2023-11-02 02:26:43 +0100ubert1(~Thunderbi@178.165.171.18.wireless.dyn.drei.com)
2023-11-02 02:28:12 +0100ubert(~Thunderbi@77.119.210.181.wireless.dyn.drei.com) (Ping timeout: 240 seconds)
2023-11-02 02:28:12 +0100ubert1ubert
2023-11-02 02:28:47 +0100Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2023-11-02 02:40:36 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-11-02 02:42:56 +0100fweht(uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-11-02 02:44:03 +0100[_](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 258 seconds)
2023-11-02 02:47:07 +0100xff0x(~xff0x@ai101218.d.east.v6connect.net) (Ping timeout: 264 seconds)
2023-11-02 02:47:34 +0100nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-11-02 02:48:06 +0100lisbeths(uid135845@id-135845.lymington.irccloud.com)
2023-11-02 02:53:08 +0100nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
2023-11-02 02:59:26 +0100Taneb(~Taneb@runciman.hacksoc.org) (Ping timeout: 255 seconds)
2023-11-02 02:59:41 +0100Taneb(~Taneb@runciman.hacksoc.org)
2023-11-02 03:03:51 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2023-11-02 03:05:29 +0100Guest99(~Guest37@149.159.195.52) (Quit: Client closed)
2023-11-02 03:11:03 +0100santiagopim(~user@90.167.66.131) (Ping timeout: 260 seconds)
2023-11-02 03:15:10 +0100aforemny_(~aforemny@i59F516CD.versanet.de)
2023-11-02 03:16:12 +0100aforemny(~aforemny@2001:9e8:6cde:2400:d38b:278:6ff7:5f3f) (Ping timeout: 240 seconds)
2023-11-02 03:24:19 +0100ystael(~ystael@user/ystael) (Ping timeout: 264 seconds)
2023-11-02 03:28:30 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 255 seconds)
2023-11-02 03:28:44 +0100otto_s(~user@p5b044594.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2023-11-02 03:28:52 +0100 <EvanR> thegman, f original current = ... f original current' ... where current' is the updated value
2023-11-02 03:29:11 +0100 <EvanR> keeps the original original throughout
2023-11-02 03:29:53 +0100 <EvanR> f previous current = ... f current current' ... remembers 1 previous step of history, but not the original original, in this case
2023-11-02 03:30:03 +0100otto_s(~user@p5b0440a1.dip0.t-ipconnect.de)
2023-11-02 03:31:03 +0100 <EvanR> or you could combine them and use 3 parameters
2023-11-02 03:31:31 +0100 <EvanR> f original previous current = ... f original current current' ...
2023-11-02 03:34:03 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2023-11-02 03:35:59 +0100 <EvanR> unrelated, ignore monad tutorials and if anything focus on Functor first xD
2023-11-02 03:36:28 +0100 <EvanR> aka the thing languages should be stealing from haskell and probably could easily
2023-11-02 03:38:45 +0100 <meejah> I think I found this one most useful: https://www.adit.io/posts/2013-04-17-functors,_applicatives,_and_monads_in_pictures.html
2023-11-02 03:39:25 +0100 <probie> EvanR: Can most languages easily steal functor? You need to be able to talk about higher kinded types
2023-11-02 03:40:45 +0100 <EvanR> like haskell actually doesn't enforce the functor laws, some languages could not enforce the types either xD
2023-11-02 03:41:00 +0100 <EvanR> but even other functional languages don't even try, look at clojure
2023-11-02 03:41:03 +0100vglfr(~vglfr@149.102.244.116) (Ping timeout: 240 seconds)
2023-11-02 03:43:11 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2023-11-02 03:43:32 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-11-02 03:43:43 +0100 <EvanR> some of their data structures have a map operation, but sometimes it takes the liberty changing the data structure
2023-11-02 03:44:28 +0100 <EvanR> all functory data types should have map that works like fmap
2023-11-02 03:45:55 +0100thegman(~Srain@072-239-207-086.res.spectrum.com) (Read error: Connection reset by peer)
2023-11-02 03:49:14 +0100vglfr(~vglfr@46.96.14.220)
2023-11-02 03:50:32 +0100 <EvanR> meejah, that article has the goofiest possible art
2023-11-02 03:50:45 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2023-11-02 03:51:46 +0100 <probie> Simply having a map operation is convenient, but not as convenient as Functor. I'm still going to struggle to write functions over arbitrary functors, like `unzip :: Functor f => f (a, b) -> (f a, f b)` in a statically typed language without higher kinded types
2023-11-02 03:52:36 +0100 <EvanR> many languages have ways of writing "generic" code
2023-11-02 03:52:49 +0100 <EvanR> they just don't have the map operation called the right thing or take the same arguments
2023-11-02 03:53:11 +0100 <EvanR> the name changes and the arguments aren't compatible, making the generic code impossible
2023-11-02 03:53:22 +0100 <EvanR> not just talking about typed languages
2023-11-02 03:55:44 +0100ddellacosta(~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 258 seconds)
2023-11-02 03:57:23 +0100ddellacosta(~ddellacos@ool-44c738de.dyn.optonline.net)
2023-11-02 03:57:56 +0100AssCrackBandit(~user@cust-west-par-46-193-2-167.cust.wifirst.net) (Ping timeout: 255 seconds)
2023-11-02 04:04:41 +0100Buggys(Buggys@Buggy.shelltalk.net) (Ping timeout: 246 seconds)
2023-11-02 04:05:34 +0100edr(~edr@user/edr) (Quit: Leaving)
2023-11-02 04:08:55 +0100friendshipaka(~Friendshi@user/Friendship) (Read error: Connection reset by peer)
2023-11-02 04:10:26 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:ec87:948a:1a8:d401) (Remote host closed the connection)
2023-11-02 04:10:31 +0100thegeekinside(~thegeekin@189.141.80.123) (Ping timeout: 264 seconds)
2023-11-02 04:10:43 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-11-02 04:10:43 +0100finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-11-02 04:10:43 +0100finn_elijaFinnElija
2023-11-02 04:10:46 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:ec87:948a:1a8:d401)
2023-11-02 04:10:48 +0100Friendship(~Friendshi@user/Friendship)
2023-11-02 04:15:41 +0100rosco(~rosco@yp-150-69.tm.net.my)
2023-11-02 04:23:35 +0100thegeekinside(~thegeekin@189.141.80.123)
2023-11-02 04:27:51 +0100thegeekinside(~thegeekin@189.141.80.123) (Ping timeout: 240 seconds)
2023-11-02 04:29:53 +0100sabino(~sabino@user/sabino) (Quit: Lambda _ -> x)
2023-11-02 04:34:32 +0100Lycurgus(~georg@user/Lycurgus)
2023-11-02 04:50:55 +0100Buggys(Buggys@shelltalk.net)
2023-11-02 04:53:05 +0100derpyxdhs(~Thunderbi@user/derpyxdhs)
2023-11-02 05:01:53 +0100td_(~td@i5387092B.versanet.de) (Ping timeout: 260 seconds)
2023-11-02 05:02:54 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2023-11-02 05:03:16 +0100td_(~td@i5387090E.versanet.de)
2023-11-02 05:29:53 +0100Inst(~Inst@120.244.192.250)
2023-11-02 05:29:57 +0100 <Inst> I have to say, China is great
2023-11-02 05:30:02 +0100 <Inst> Was briefly doing random searches on Baidu
2023-11-02 05:30:27 +0100 <Inst> What I find is a random Chinese e-girl video doing exercises in Baby Rudin while wearing blue contacts.
2023-11-02 05:30:43 +0100 <Inst> First comment: "This proof is wrong"
2023-11-02 05:30:44 +0100 <Inst> ????
2023-11-02 05:33:14 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 255 seconds)
2023-11-02 05:36:04 +0100Inst_(~Inst@120.244.192.250)
2023-11-02 05:38:10 +0100 <monochrom> Perhaps the e-girl was wrong. Did you check it?
2023-11-02 05:38:15 +0100Inst(~Inst@120.244.192.250) (Ping timeout: 240 seconds)
2023-11-02 05:42:25 +0100 <Inst_> Ehhh, I think it's probably just how women are expected to look on certain platforms, it's probably wrong to call her an e-girl, or for that matter, to judge her based on her appearance.
2023-11-02 05:42:27 +0100 <Inst_> https://www.bilibili.com/video/BV1UW4y1G7W2/
2023-11-02 05:43:24 +0100 <Inst_> "Even a smart elementary school student can prove this"
2023-11-02 05:45:00 +0100 <Inst_> Oh, she's actually a mom. And while the proof looks correct at the outset, let me see why she's upset about it.
2023-11-02 05:45:32 +0100 <Inst_> Complaining about how "if her kid was still 2, it'd be acceptable, but now they're 5, it's totally unacceptable."
2023-11-02 05:45:39 +0100 <Inst_> I'm probably not getting the humor in this.
2023-11-02 05:48:05 +0100 <Inst_> Okay, that's probably why this is the top-linked video, because the joke is that "Baby Rudin" is literally for babies.
2023-11-02 05:49:29 +0100 <monochrom> Oh, that.
2023-11-02 05:51:20 +0100aforemny(~aforemny@2001:9e8:6cfe:d400:32c5:cb0c:efd9:aea6)
2023-11-02 05:51:55 +0100aforemny_(~aforemny@i59F516CD.versanet.de) (Ping timeout: 255 seconds)
2023-11-02 05:53:24 +0100Jackneill_(~Jackneill@20014C4E1E16F000C6DFD3C15F3E3440.dsl.pool.telekom.hu)
2023-11-02 05:56:18 +0100Jackneill(~Jackneill@20014C4E1E03D8004F80E1E499FDC965.dsl.pool.telekom.hu) (Ping timeout: 272 seconds)
2023-11-02 06:08:21 +0100[Leary](~Leary]@user/Leary/x-0910699) (Remote host closed the connection)
2023-11-02 06:08:37 +0100[Leary](~Leary]@user/Leary/x-0910699)
2023-11-02 06:12:59 +0100vglfr(~vglfr@46.96.14.220) (Read error: Connection reset by peer)
2023-11-02 06:20:40 +0100qqq(~qqq@92.43.167.61) (Ping timeout: 252 seconds)
2023-11-02 06:22:29 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-11-02 06:22:50 +0100Lycurgus(~georg@user/Lycurgus) (Quit: Lost terminal)
2023-11-02 06:24:16 +0100 <Inst_> the reason she'd claim that the proof would garner a zero is because of duplication of work
2023-11-02 06:24:57 +0100 <Inst_> i.e, let o be either aaddition or subtraction, and use inverses to prove that r + x and rx are irrational if r is rational and non-zero, and x is irrational
2023-11-02 06:28:38 +0100 <Inst_> *addition or multiplication
2023-11-02 06:30:11 +0100 <EvanR> irrationals need their own word, the negation of rational defines it as the absence of something instead of highlighting the meat of the matter xD
2023-11-02 06:31:25 +0100 <Inst_> Okay, I think I know what's going on
2023-11-02 06:31:32 +0100 <Inst_> she is in fact a glamour model streaming online.
2023-11-02 06:31:46 +0100 <Inst_> However, there's regulatory requirements that demand that her content be educational at least on occasion.
2023-11-02 06:31:54 +0100 <Inst_> So, consequently... she decides to stream Baby Rudin.
2023-11-02 06:32:10 +0100 <Inst_> Which is awesome.
2023-11-02 06:33:28 +0100michalz(~michalz@185.246.207.218)
2023-11-02 06:34:36 +0100 <monochrom> Yeah.
2023-11-02 06:44:39 +0100pixelmonk(~pixelmonk@173.46.79.26) (Quit: WeeChat 4.1.0)
2023-11-02 06:45:19 +0100Friendship(~Friendshi@user/Friendship) (Ping timeout: 264 seconds)
2023-11-02 06:49:18 +0100nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-11-02 06:49:57 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-11-02 06:54:14 +0100nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
2023-11-02 07:00:50 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-11-02 07:05:28 +0100misterfish(~misterfis@84-53-85-146.bbserv.nl)
2023-11-02 07:06:27 +0100acidjnk(~acidjnk@p200300d6e72b931400da001bbea1022f.dip0.t-ipconnect.de)
2023-11-02 07:14:21 +0100vglfr(~vglfr@46.96.14.220)
2023-11-02 07:14:44 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2023-11-02 07:15:11 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-11-02 07:25:27 +0100elkcl(~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru) (Ping timeout: 240 seconds)
2023-11-02 07:25:50 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
2023-11-02 07:30:10 +0100rosco(~rosco@yp-150-69.tm.net.my) (Quit: Lost terminal)
2023-11-02 07:30:23 +0100rosco(~rosco@yp-150-69.tm.net.my)
2023-11-02 07:34:13 +0100elkcl(~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru)
2023-11-02 07:34:43 +0100misterfish(~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 260 seconds)
2023-11-02 07:35:56 +0100vglfr(~vglfr@46.96.14.220) (Read error: Connection reset by peer)
2023-11-02 07:36:07 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2023-11-02 07:36:42 +0100chomwitt(~chomwitt@2a02:587:7a2d:bc00:1ac0:4dff:fedb:a3f1)
2023-11-02 07:41:24 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:ec87:948a:1a8:d401) (Remote host closed the connection)
2023-11-02 08:17:53 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:ec87:948a:1a8:d401)
2023-11-02 08:23:12 +0100danza(~francesco@151.47.169.71)
2023-11-02 08:34:45 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2023-11-02 08:34:50 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2023-11-02 08:35:08 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2023-11-02 08:36:41 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-11-02 08:43:19 +0100lortabac(~lorenzo@2a01:e0a:541:b8f0:7e1b:b86f:7cc3:2e52)
2023-11-02 08:45:37 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 255 seconds)
2023-11-02 08:47:51 +0100danza(~francesco@151.47.169.71) (Ping timeout: 240 seconds)
2023-11-02 08:52:46 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-11-02 08:53:07 +0100derpyxdhs(~Thunderbi@user/derpyxdhs) (Quit: derpyxdhs)
2023-11-02 08:58:23 +0100tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz)
2023-11-02 09:02:25 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2023-11-02 09:12:01 +0100td_(~td@i5387090E.versanet.de) (Ping timeout: 260 seconds)
2023-11-02 09:13:03 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-11-02 09:13:30 +0100td_(~td@i5387092B.versanet.de)
2023-11-02 09:15:50 +0100danse-nr3(~danse@151.47.166.154)
2023-11-02 09:18:21 +0100misterfish(~misterfis@87.215.131.102)
2023-11-02 09:25:23 +0100danse-nr3(~danse@151.47.166.154) (Remote host closed the connection)
2023-11-02 09:25:48 +0100danse-nr3(~danse@151.47.166.154)
2023-11-02 09:26:21 +0100talismanick(~user@2601:204:ef00:bb0::1ab2)
2023-11-02 09:28:52 +0100econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2023-11-02 09:29:46 +0100fendor(~fendor@2a02:8388:1640:be00:2a62:2dd0:490d:f2ca)
2023-11-02 09:31:57 +0100FinnBoat(~user@176-151-21-224.abo.bbox.fr)
2023-11-02 09:33:13 +0100chele(~chele@user/chele)
2023-11-02 09:55:10 +0100seeg123456(~seeg12345@64.176.64.83) (Remote host closed the connection)
2023-11-02 09:58:28 +0100coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-11-02 10:01:11 +0100seeg123456(~seeg12345@64.176.64.83)
2023-11-02 10:08:47 +0100seeg123456(~seeg12345@64.176.64.83) (Quit: Gateway shutdown)
2023-11-02 10:09:03 +0100seeg123456(~seeg12345@64.176.64.83)
2023-11-02 10:10:49 +0100idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-11-02 10:17:03 +0100Umeaboy(~Umeaboy@94-255-145-133.cust.bredband2.com)
2023-11-02 10:20:17 +0100 <Umeaboy> Hi! I fully get that I can install GHC using ghcup, but what if I want to port it to a new distro? I'm using Mageia and we only have gcc-gnat, but I need to know what order to package all the dependencies in order to rebuild the src.rpm from OpenSuse or similar. Mageia (which forked from Mandriva) didn't move their GHC version from Mandriva when they forked so I have to rebuild and repackage all that. The wiki only tells people how
2023-11-02 10:20:17 +0100 <Umeaboy> to build from source, but not how to actually build all the dependencies in the right order.
2023-11-02 10:20:30 +0100 <Umeaboy> I could use some help.
2023-11-02 10:21:34 +0100 <Umeaboy> I have already built ghc-bootstrap, ghc-bootstrap-helpers and I'm trying to package xmlada and grpbuild, but I can't finish it.
2023-11-02 10:23:41 +0100migas9(~migas@static.140.65.63.178.clients.your-server.de) (Remote host closed the connection)
2023-11-02 10:24:00 +0100migas9(~migas@static.140.65.63.178.clients.your-server.de)
2023-11-02 10:30:07 +0100nckhexennckx
2023-11-02 10:31:04 +0100cods(~fred@tuxee.net) (Ping timeout: 255 seconds)
2023-11-02 10:31:07 +0100danse-nr3(~danse@151.47.166.154) (Read error: Connection reset by peer)
2023-11-02 10:31:46 +0100danse-nr3(~danse@151.47.128.166)
2023-11-02 10:33:45 +0100qqq(~qqq@92.43.167.61)
2023-11-02 10:38:04 +0100Pickchea(~private@user/pickchea)
2023-11-02 10:39:35 +0100 <danse-nr3> is it important for your users to have it packaged Umeaboy? Possibly better to rely on external system rather that having a packaged version without the right throughput to maintain it
2023-11-02 10:40:30 +0100 <Umeaboy> danse-nr3: Yes, For instance, the program called Shellcheck that checks code errors in scripts is built by GHC so now I need to port GHC for Mageia.
2023-11-02 10:40:39 +0100 <Umeaboy> Plus amongst of other projects.
2023-11-02 10:40:56 +0100 <danse-nr3> i see
2023-11-02 10:41:30 +0100 <Umeaboy> danse-nr3: Can yuo assist me? :)
2023-11-02 10:41:57 +0100 <Umeaboy> I can do the job, but I need to know how to package ghc dependencies.
2023-11-02 10:42:12 +0100 <Umeaboy> Like the devel packages for instance.
2023-11-02 10:42:36 +0100 <danse-nr3> i don't think i can help much, i mostly use ghcup. Can the distro use prebuilt versions?
2023-11-02 10:43:02 +0100chiselfuse(~chiselfus@user/chiselfuse) (Remote host closed the connection)
2023-11-02 10:43:12 +0100 <danse-nr3> (of programs written in haskell, so that users do not have to build locally)
2023-11-02 10:44:09 +0100 <danse-nr3> there is also #ghc and #hackage where people deal more often with installing from scratch
2023-11-02 10:44:34 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2023-11-02 10:45:02 +0100 <danse-nr3> also, considering how many distros are there around, i am surprised there is no doc to get the dependencies right ... but i don't have time to search for docs right now
2023-11-02 10:45:31 +0100ft(~ft@p4fc2a529.dip0.t-ipconnect.de) (Quit: leaving)
2023-11-02 10:46:54 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2023-11-02 10:47:19 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2023-11-02 10:48:39 +0100chiselfuse(~chiselfus@user/chiselfuse)
2023-11-02 10:50:50 +0100nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-11-02 10:55:32 +0100nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
2023-11-02 10:58:06 +0100cfricke(~cfricke@user/cfricke)
2023-11-02 10:58:27 +0100Umeaboy(~Umeaboy@94-255-145-133.cust.bredband2.com) (Quit: Leaving)
2023-11-02 11:01:31 +0100cyphase(~cyphase@user/cyphase) (Ping timeout: 264 seconds)
2023-11-02 11:05:23 +0100cyphase(~cyphase@user/cyphase)
2023-11-02 11:11:58 +0100Guest21(~Guest21@194.127.199.82)
2023-11-02 11:12:07 +0100Guest21(~Guest21@194.127.199.82) (Client Quit)
2023-11-02 11:13:24 +0100Lycurgus(~georg@user/Lycurgus)
2023-11-02 11:15:48 +0100oo_miguel(~Thunderbi@78-11-179-96.static.ip.netia.com.pl)
2023-11-02 11:28:48 +0100qqq(~qqq@92.43.167.61) (Remote host closed the connection)
2023-11-02 11:34:28 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com)
2023-11-02 11:35:20 +0100random-jellyfish(~tiber@user/random-jellyfish) (Remote host closed the connection)
2023-11-02 11:35:44 +0100random-jellyfish(~tiber@2a02:2f04:11e:c600:79b7:1b78:95b:d6a)
2023-11-02 11:35:45 +0100random-jellyfish(~tiber@2a02:2f04:11e:c600:79b7:1b78:95b:d6a) (Changing host)
2023-11-02 11:35:45 +0100random-jellyfish(~tiber@user/random-jellyfish)
2023-11-02 11:39:43 +0100kimiamania46(~b4f4a2ab@user/kimiamania) (Quit: Ping timeout (120 seconds))
2023-11-02 11:40:02 +0100kimiamania46(~b4f4a2ab@user/kimiamania)
2023-11-02 11:51:47 +0100htor(~htor@84.208.240.181)
2023-11-02 11:54:50 +0100arahael(~arahael@119-18-2-212.771202.syd.nbn.aussiebb.net)
2023-11-02 12:00:43 +0100migas4(~migas@astra4961.startdedicated.net) (Ping timeout: 260 seconds)
2023-11-02 12:06:47 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2023-11-02 12:07:06 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2023-11-02 12:10:22 +0100danse-nr3(~danse@151.47.128.166) (Ping timeout: 255 seconds)
2023-11-02 12:11:11 +0100FinnBoat(~user@176-151-21-224.abo.bbox.fr) (Ping timeout: 246 seconds)
2023-11-02 12:11:25 +0100Katarushisu1(~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
2023-11-02 12:12:45 +0100Katarushisu1(~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
2023-11-02 12:22:33 +0100santiagopim(~user@90.167.66.131)
2023-11-02 12:26:30 +0100__monty__(~toonn@user/toonn)
2023-11-02 12:36:03 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2023-11-02 12:45:14 +0100hexeme(~hexeme@user/hexeme) (Ping timeout: 255 seconds)
2023-11-02 12:47:52 +0100hexeme(~hexeme@user/hexeme)
2023-11-02 12:49:20 +0100Pickchea(~private@user/pickchea) (Ping timeout: 258 seconds)
2023-11-02 12:57:33 +0100danse-nr3(~danse@151.47.128.166)
2023-11-02 13:03:53 +0100edr(~edr@user/edr)
2023-11-02 13:05:09 +0100cfricke(~cfricke@user/cfricke) (Quit: WeeChat 4.0.5)
2023-11-02 13:08:30 +0100arahael(~arahael@119-18-2-212.771202.syd.nbn.aussiebb.net) (Ping timeout: 258 seconds)
2023-11-02 13:09:59 +0100 <yin> is there a difference between using these 2 forms, from a performance perspective? https://paste.jrvieira.com/1698926967807
2023-11-02 13:11:51 +0100 <dminuoso> yin: Nope
2023-11-02 13:11:53 +0100acidjnk(~acidjnk@p200300d6e72b931400da001bbea1022f.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2023-11-02 13:12:05 +0100 <dminuoso> Well, assuming its a truthful translation of course.
2023-11-02 13:12:34 +0100 <mauke> why not f (T0 x) =
2023-11-02 13:14:43 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 264 seconds)
2023-11-02 13:14:49 +0100mmhat(~mmh@p200300f1c7445e43ee086bfffe095315.dip0.t-ipconnect.de)
2023-11-02 13:14:53 +0100mmhat(~mmh@p200300f1c7445e43ee086bfffe095315.dip0.t-ipconnect.de) (Client Quit)
2023-11-02 13:17:24 +0100htor(~htor@84.208.240.181) (Quit: htor)
2023-11-02 13:28:39 +0100acidjnk(~acidjnk@p200300d6e72b931400da001bbea1022f.dip0.t-ipconnect.de)
2023-11-02 13:28:57 +0100arahael(~arahael@119-18-2-212.771202.syd.nbn.aussiebb.net)
2023-11-02 13:31:20 +0100 <yin> mauke: `t` in this case is actually `h t`
2023-11-02 13:32:11 +0100 <mauke> that changes performance
2023-11-02 13:32:13 +0100 <yin> i just hate nesting case expressions an like to adhere to a style
2023-11-02 13:32:27 +0100 <mauke> also, f (h -> T0 x)
2023-11-02 13:32:31 +0100 <yin> mauke: betweeen the two examples?
2023-11-02 13:32:42 +0100 <yin> mauke: is that a view pattern?
2023-11-02 13:33:19 +0100 <yin> so: https://paste.jrvieira.com/1698928394025
2023-11-02 13:38:14 +0100danse-nr3(~danse@151.47.128.166) (Remote host closed the connection)
2023-11-02 13:38:38 +0100danse-nr3(~danse@151.47.128.166)
2023-11-02 13:41:10 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2023-11-02 13:42:37 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 258 seconds)
2023-11-02 13:45:51 +0100acidjnk(~acidjnk@p200300d6e72b931400da001bbea1022f.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2023-11-02 13:51:20 +0100poscat(~poscat@user/poscat) (Quit: Bye)
2023-11-02 13:56:32 +0100random-jellyfish(~tiber@user/random-jellyfish) (Ping timeout: 246 seconds)
2023-11-02 14:00:29 +0100misterfish(~misterfis@87.215.131.102) (Ping timeout: 255 seconds)
2023-11-02 14:00:35 +0100Inst_(~Inst@120.244.192.250) (Ping timeout: 240 seconds)
2023-11-02 14:02:29 +0100shapr(~user@2600:1700:c640:3100:d86f:e811:dfe1:a875)
2023-11-02 14:03:37 +0100poscat(~poscat@user/poscat)
2023-11-02 14:13:31 +0100lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-11-02 14:19:25 +0100poscat0x04(~poscat@user/poscat)
2023-11-02 14:19:48 +0100son0p(~ff@181.136.122.143) (Ping timeout: 272 seconds)
2023-11-02 14:20:08 +0100poscat(~poscat@user/poscat) (Ping timeout: 260 seconds)
2023-11-02 14:21:38 +0100arahael(~arahael@119-18-2-212.771202.syd.nbn.aussiebb.net) (Ping timeout: 255 seconds)
2023-11-02 14:30:56 +0100danse-nr3(~danse@151.47.128.166) (Read error: Connection reset by peer)
2023-11-02 14:31:06 +0100jinsun(~jinsun@user/jinsun) (Read error: Connection reset by peer)
2023-11-02 14:31:14 +0100danse-nr3(~danse@ba-19-159-48.service.infuturo.it)
2023-11-02 14:31:21 +0100jinsun(~jinsun@user/jinsun)
2023-11-02 14:37:20 +0100ystael(~ystael@user/ystael)
2023-11-02 14:41:20 +0100Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2023-11-02 14:50:42 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2023-11-02 14:52:20 +0100nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-11-02 14:57:28 +0100nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2023-11-02 15:01:24 +0100chomwitt(~chomwitt@2a02:587:7a2d:bc00:1ac0:4dff:fedb:a3f1) (Ping timeout: 240 seconds)
2023-11-02 15:01:37 +0100haskellbridge(~haskellbr@069-135-003-034.biz.spectrum.com) (Remote host closed the connection)
2023-11-02 15:01:52 +0100Sgeo(~Sgeo@user/sgeo)
2023-11-02 15:02:41 +0100masterbuilder(~masterbui@user/masterbuilder) (Quit: leaving)
2023-11-02 15:03:01 +0100gatekempt(~gatekempt@user/gatekempt)
2023-11-02 15:05:08 +0100haskellbridge(~haskellbr@069-135-003-034.biz.spectrum.com)
2023-11-02 15:05:08 +0100ChanServ+v haskellbridge
2023-11-02 15:05:36 +0100xff0x(~xff0x@ai101218.d.east.v6connect.net)
2023-11-02 15:06:51 +0100Guest84(~Guest84@194.127.199.107)
2023-11-02 15:14:43 +0100shapr(~user@2600:1700:c640:3100:d86f:e811:dfe1:a875) (Remote host closed the connection)
2023-11-02 15:14:56 +0100shapr(~user@2600:1700:c640:3100:ec3b:814b:6065:5646)
2023-11-02 15:15:32 +0100jack-o-lanterndkjackdk
2023-11-02 15:15:41 +0100Guest84(~Guest84@194.127.199.107) (Quit: Client closed)
2023-11-02 15:16:05 +0100notzmv(~zmv@user/notzmv)
2023-11-02 15:17:05 +0100 <danse-nr3> i am sick of rewriting every JSON instance trivially any time an interface could break upon type change :(
2023-11-02 15:18:03 +0100 <danse-nr3> but i cannot think of any clever idea to detect breaking changes...
2023-11-02 15:19:50 +0100 <EvanR> are you saying the interface would not break by the types break
2023-11-02 15:19:58 +0100 <EvanR> but the types break*
2023-11-02 15:20:25 +0100 <danse-nr3> when one updates a type, an automatically derived JSON instance could propagate the change where that is not safe without warnings
2023-11-02 15:20:56 +0100 <danse-nr3> so i have to rewrite instances a lot for each interface that might break
2023-11-02 15:21:24 +0100 <exarkun> As in, propagate it into the JSON representation?
2023-11-02 15:21:29 +0100 <danse-nr3> yeah
2023-11-02 15:21:45 +0100 <danse-nr3> and in parsing
2023-11-02 15:21:48 +0100 <exarkun> "Golden" tests I guess
2023-11-02 15:22:14 +0100 <exarkun> Gotta have a specification of what you want _somewhere_, at least
2023-11-02 15:22:40 +0100 <danse-nr3> yeah i have been thinking to spend some free time to write something, but does not seem trivial. Similarly to Arbitrary, one has to generate all representations to detect which ones become invalid
2023-11-02 15:23:00 +0100 <exarkun> You could have round-trip tests that serialize with one version of your code and deserialize with another version
2023-11-02 15:23:16 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2023-11-02 15:23:19 +0100 <danse-nr3> that is also not trivial but yea
2023-11-02 15:23:28 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2023-11-02 15:23:35 +0100 <danse-nr3> (and again generating all representation is a task there)
2023-11-02 15:23:55 +0100 <exarkun> You already have Arbitrary instances for all these types through right
2023-11-02 15:24:09 +0100 <danse-nr3> not really. Would that help?
2023-11-02 15:24:37 +0100 <exarkun> It would just mean that one big chunk of your work is done already
2023-11-02 15:25:29 +0100 <danse-nr3> i thought Arbitrary was not for this. Would hardly need to produce different cases for a list for instance
2023-11-02 15:25:46 +0100 <danse-nr3> no need to try different Ints
2023-11-02 15:26:06 +0100 <exarkun> Perhaps I misunderstand the situation
2023-11-02 15:26:52 +0100 <danse-nr3> yea it is a problem that can seem trivial or complex, i guess that's the reason why it is so frustrating :P
2023-11-02 15:26:54 +0100 <exarkun> It sounded like you have some types defined by your codebase with derived JSON serializers/deserializers and sometimes you change the types and you wanted tool support telling you when those changes have a semantic change on the JSON
2023-11-02 15:27:18 +0100 <exarkun> (Like you have tool support telling you when those changes have semantic changes on the Haskell code using those types)
2023-11-02 15:27:49 +0100 <danse-nr3> yes, but an Arbitrary instance of { a:: Int, b::String } generates a lot of cases that are not interesting to this extent
2023-11-02 15:28:11 +0100 <exarkun> Ah well, sure, but that's just a question of efficiency
2023-11-02 15:28:33 +0100 <exarkun> I believe shapr has written up something about the relative efficiency of different property testing libraries in discovering interesting cases
2023-11-02 15:28:54 +0100 <exarkun> And also has a tool that does something /like/ profile-guided property testing
2023-11-02 15:29:08 +0100 <danse-nr3> i think it would need a different class altogether but no time to study the problem now ... back to monkey coding ...
2023-11-02 15:29:13 +0100 <exarkun> :)
2023-11-02 15:31:09 +0100thegeekinside(~thegeekin@189.141.80.123)
2023-11-02 15:33:31 +0100shaprbounces cheerfully
2023-11-02 15:37:55 +0100misterfish(~misterfis@84-53-85-146.bbserv.nl)
2023-11-02 15:39:35 +0100 <shapr> danse-nr3: if you're interested in coverage driven property testing, I could talk for hours about it.
2023-11-02 15:40:01 +0100 <shapr> This is the fun thing I wrote to "run enough property tests" https://github.com/shapr/kudzu/blob/main/src/Kudzu.hs
2023-11-02 15:40:43 +0100 <shapr> There's a group doing type safe mutation to increase coverage: https://lemonidas.github.io/
2023-11-02 15:41:56 +0100 <danse-nr3> he also looks handsome, but i am afraid i cannot study this much in depth at the moment :(
2023-11-02 15:42:08 +0100Friendship(~Friendshi@user/Friendship)
2023-11-02 15:42:25 +0100 <shapr> haha
2023-11-02 15:42:25 +0100 <danse-nr3> thanks for the pointers anyway
2023-11-02 15:42:41 +0100 <shapr> sure yeah, if you ever want to chat about it, I get REALLY EXCITED about property testing
2023-11-02 15:43:20 +0100 <danse-nr3> it is an interesting topic indeed ... but under which abstraction does it equate to interface breakage?
2023-11-02 15:44:23 +0100 <shapr> I like exarkun's idea of roundtrip properties with golden test values.
2023-11-02 15:44:45 +0100 <danse-nr3> yeah, easier than having two versions of some code
2023-11-02 15:44:46 +0100 <shapr> That is, every time you make "a release" you write out some mid-sized legal values
2023-11-02 15:45:11 +0100 <shapr> then you use something like hedgehog's tripping combinator to see if they still work when you run the tests.
2023-11-02 15:46:06 +0100danse-nr3looks that up ... while thinking the problem is having a compact set of values without losing errors
2023-11-02 15:46:47 +0100thegeekinside(~thegeekin@189.141.80.123) (Remote host closed the connection)
2023-11-02 15:47:12 +0100 <danse-nr3> uh "hedgehog tripping combinator" did not seem to yield useful results from a quick search ...
2023-11-02 15:48:09 +0100 <shapr> it's https://hackage.haskell.org/package/hedgehog-1.4/docs/Hedgehog.html#v:tripping
2023-11-02 15:48:28 +0100 <danse-nr3> oh, cheers
2023-11-02 15:49:52 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2023-11-02 15:49:57 +0100 <danse-nr3> i guess if we had golden tests, tripping would not be necessary, just parsing and serialising. The main problem still stands, how to produce meaningful values
2023-11-02 15:57:01 +0100 <exarkun> JSON is simple enough that maybe as long as you hit every involved constructor once, that's complete?
2023-11-02 15:57:24 +0100 <exarkun> unless you have a schema that dictates something more complex
2023-11-02 15:57:34 +0100 <danse-nr3> yes, seems something doing with generics
2023-11-02 15:57:40 +0100 <danse-nr3> s/doing/doable/
2023-11-02 15:58:01 +0100 <EvanR> oh, tripping is referring to round tripping (good), and not tripping a breaker (problem detected)
2023-11-02 15:58:22 +0100mc47(~mc47@xmonad/TheMC47)
2023-11-02 15:58:47 +0100 <exarkun> (obligatory nix plug - with nix it's not a big deal to have multiple versions of the code around ;)
2023-11-02 15:59:43 +0100paddymahoney(~paddymaho@cpe883d24bcf597-cmbc4dfb741f80.cpe.net.cable.rogers.com) (Ping timeout: 264 seconds)
2023-11-02 16:01:05 +0100 <int-e> but you'll have nix
2023-11-02 16:01:32 +0100vglfr(~vglfr@46.96.14.220)
2023-11-02 16:03:47 +0100snowsauce(~snowsauce@pa9-84-91-207-96.netvisao.pt) (Remote host closed the connection)
2023-11-02 16:09:31 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2023-11-02 16:12:14 +0100idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.5)
2023-11-02 16:15:32 +0100chomwitt(~chomwitt@2a02:587:7a2d:bc00:1ac0:4dff:fedb:a3f1)
2023-11-02 16:29:05 +0100econo_(uid147250@id-147250.tinside.irccloud.com)
2023-11-02 16:35:17 +0100sabino(~sabino@user/sabino)
2023-11-02 16:38:50 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:ec87:948a:1a8:d401) (Remote host closed the connection)
2023-11-02 16:38:54 +0100falafel(~falafel@62.175.113.194.dyn.user.ono.com)
2023-11-02 16:39:06 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:ec87:948a:1a8:d401)
2023-11-02 16:39:47 +0100danse-nr3(~danse@ba-19-159-48.service.infuturo.it) (Ping timeout: 255 seconds)
2023-11-02 16:43:14 +0100danse-nr3(~danse@ba-19-159-48.service.infuturo.it)
2023-11-02 16:46:05 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 255 seconds)
2023-11-02 16:47:10 +0100tremon(~tremon@83.80.159.219)
2023-11-02 16:47:45 +0100vglfr(~vglfr@46.96.14.220) (Read error: Connection reset by peer)
2023-11-02 16:48:08 +0100vglfr(vglfr@gateway/vpn/protonvpn/vglfr)
2023-11-02 16:48:44 +0100 <albet70> how to wrap three monads into one? I saw EitherT r e m a in contstuff
2023-11-02 16:49:45 +0100lortabac(~lorenzo@2a01:e0a:541:b8f0:7e1b:b86f:7cc3:2e52) (Quit: WeeChat 3.5)
2023-11-02 16:50:07 +0100 <danse-nr3> monad transformers and monad stacks? I think there are the mtl and transformers libraries, with different approaches. For some reason i never need to use these...
2023-11-02 16:50:22 +0100 <albet70> Either Cont IO three effect
2023-11-02 16:50:24 +0100 <EvanR> another example from mtl is RWST, which combines Reader, Writer, and State
2023-11-02 16:50:41 +0100 <EvanR> on top of a 4th monad
2023-11-02 16:51:01 +0100 <albet70> how to combine them? what's the trick?
2023-11-02 16:51:22 +0100 <EvanR> the definition of >>= just has to make all the effects happen
2023-11-02 16:51:53 +0100 <albet70> I mean how to construct the transformer?
2023-11-02 16:51:54 +0100 <EvanR> and the runRWST function gets the process started, giving back an action in the base monad
2023-11-02 16:52:11 +0100 <EvanR> construct an action?
2023-11-02 16:52:20 +0100 <geekosaur> albet70, can you give a concrete example?
2023-11-02 16:53:07 +0100 <danse-nr3> there are a gazillion of tutorials around. Recently there was a very nice one on haskell weekly comparing the mtl and transformers approach, but as usual ...
2023-11-02 16:53:22 +0100 <geekosaur> I mean, in xmonad we have `newtype X a = StateT XState (ReaderT XConf IO) a` so we have three monads, and mtl keeps them straight for us
2023-11-02 16:53:44 +0100 <danse-nr3> ... as usual the chrome history is too lame to find it
2023-11-02 16:53:45 +0100 <albet70> geekosaur , like this EitherT r e m a
2023-11-02 16:53:57 +0100 <geekosaur> you can't do that
2023-11-02 16:54:28 +0100 <albet70> https://wiki.haskell.org/Contstuff
2023-11-02 16:54:33 +0100 <geekosaur> you can combine them the mtl way, the transformers way, or the effects way. you can't just keep appending stuff to an existing monad transformer
2023-11-02 16:56:17 +0100todi(~todi@p4fd1a3e6.dip0.t-ipconnect.de)
2023-11-02 16:56:42 +0100 <geekosaur> that looks like a different monad library entirely. if it doesn';t have a CPSed monad already then you'll have to write one using the contstuff machinery
2023-11-02 16:57:16 +0100 <albet70> EitherT r (ContT r m) a this can be ok?
2023-11-02 16:58:18 +0100gdown(~gavin@h69-11-149-109.kndrid.broadband.dynamic.tds.net)
2023-11-02 16:59:04 +0100 <geekosaur> possibly?
2023-11-02 16:59:23 +0100vglfr(vglfr@gateway/vpn/protonvpn/vglfr) (Ping timeout: 260 seconds)
2023-11-02 17:00:04 +0100 <albet70> if m is IO, this three effect is when it's Right run some a -> IO r action, right?
2023-11-02 17:01:35 +0100vglfr(~vglfr@46.96.14.220)
2023-11-02 17:02:09 +0100 <albet70> three effect or three effects? use 'is' or 'are', my English is not good
2023-11-02 17:05:08 +0100 <EvanR> these three effects are cool
2023-11-02 17:05:21 +0100zetef(~zetef@2a02:2f00:5201:4b00:7fc8:6fbe:33d9:ba2a)
2023-11-02 17:06:03 +0100 <EvanR> EitherT sounds like it's supposed to add "terminate early" effects, but ContT can already do that, so I'm confused
2023-11-02 17:06:10 +0100 <sshine> albet70, I don't think people mind the grammar mistakes in English. what matters is that the Haskell types work :)
2023-11-02 17:07:31 +0100acidjnk(~acidjnk@p200300d6e72b931400da001bbea1022f.dip0.t-ipconnect.de)
2023-11-02 17:08:15 +0100 <geekosaur> ContT actually does terminate early, EitherT just shortcuts around your computation when >>= is given a "left"
2023-11-02 17:09:01 +0100 <albet70> EvanR , when some others function return Either r a, EitherT is useful, Cont isn't
2023-11-02 17:09:26 +0100 <geekosaur> Contstuff looks like a "mother of all monads" (https://www.schoolofhaskell.com/user/dpiponi/the-mother-of-all-monads) implementation
2023-11-02 17:11:28 +0100zetef(~zetef@2a02:2f00:5201:4b00:7fc8:6fbe:33d9:ba2a) (Quit: Leaving)
2023-11-02 17:11:45 +0100 <albet70> I asked chatgpt what cont effect is, and it tells me cont is about Pause and Resume, head that first time
2023-11-02 17:11:56 +0100 <albet70> and there is Pause monad, aha
2023-11-02 17:12:30 +0100 <geekosaur> I don't think that's how I would describe it, but then Cont always confuses me
2023-11-02 17:12:56 +0100 <danse-nr3> yeah me too. I believe that is a concept coming from other contexts that makes little sense in haskell
2023-11-02 17:13:04 +0100 <geekosaur> Cont/ContT is about being able to exit early by using an escape hatch passed to your computation
2023-11-02 17:13:33 +0100 <geekosaur> (I always have to sit down and work out what ContT is doing, then I forget it again shortly afterward)
2023-11-02 17:13:35 +0100 <albet70> ContT is not just early exit, also Choice
2023-11-02 17:13:58 +0100 <albet70> geekosaur , me too
2023-11-02 17:14:45 +0100pixelmonk(~pixelmonk@50.205.76.66)
2023-11-02 17:15:10 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 255 seconds)
2023-11-02 17:15:31 +0100 <albet70> I learn ContT at least three times one year, then I forget it
2023-11-02 17:16:29 +0100fendor(~fendor@2a02:8388:1640:be00:2a62:2dd0:490d:f2ca) (Remote host closed the connection)
2023-11-02 17:17:06 +0100 <dminuoso> I like to think of the ContT effect as just yield+reify and goto.
2023-11-02 17:18:09 +0100 <kuribas> There aren't many uses of ContT in haskell, are they?
2023-11-02 17:18:09 +0100 <dminuoso> Part of the reason it feels so difficult, is because it doesnt cover any single clear usecase.
2023-11-02 17:18:11 +0100fendor(~fendor@2a02:8388:1640:be00:2a62:2dd0:490d:f2ca)
2023-11-02 17:18:33 +0100 <dminuoso> kuribas: Mmm, lets phrase it different: There are many uses for continuations.
2023-11-02 17:18:42 +0100 <kuribas> Sure
2023-11-02 17:18:53 +0100 <int-e> . o O ( let me get back to you on that one )
2023-11-02 17:19:13 +0100 <kuribas> I used ContT only once, to get a list of resources out of a bracketed function.
2023-11-02 17:19:34 +0100 <dminuoso> Most of my ContT uses have disappeared into explicit continuations
2023-11-02 17:19:41 +0100 <dminuoso> Mostly because it felt much clearer and obvious
2023-11-02 17:19:51 +0100Guest58(~Guest37@149.159.199.141)
2023-11-02 17:20:01 +0100 <kuribas> yeah, this
2023-11-02 17:21:29 +0100 <albet70> that goto is tricky
2023-11-02 17:22:19 +0100gatekempt(~gatekempt@user/gatekempt) (Textual IRC Client: www.textualapp.com)
2023-11-02 17:24:20 +0100falafel(~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 255 seconds)
2023-11-02 17:30:19 +0100 <albet70> that data constructor is really open my mind, I never saw something like it in other languages, you can define some values like V a, you can create infinite values! I learned some monads now, I wonder can we have infinite monads?
2023-11-02 17:30:44 +0100 <albet70> how to create effects?
2023-11-02 17:30:46 +0100 <monochrom> Well [a] has infinite values too.
2023-11-02 17:31:20 +0100 <EvanR> let x = x + 1
2023-11-02 17:31:54 +0100 <EvanR> x = ∞
2023-11-02 17:32:45 +0100 <geekosaur> infinite values are allowed, infinite types are not
2023-11-02 17:32:59 +0100 <geekosaur> there are type systems which allow them but ghc's isn't one of them
2023-11-02 17:33:06 +0100 <EvanR> another missed opportuntiy for mayhem
2023-11-02 17:33:50 +0100thegeekinside(~thegeekin@189.141.80.123)
2023-11-02 17:34:55 +0100Ranhir(~Ranhir@157.97.53.139) (Read error: Connection reset by peer)
2023-11-02 17:34:56 +0100 <monochrom> My https://www.vex.net/~trebla/haskell/cont.xhtml characterizs Cont as inside-out, inversion of control. Formally, I state and prove an inside-out equation. I think it would be the fundamental theorem of Cont, and it is sufficient and necessary for every use case. I haven't done the similar for ContT, but it should be similar.
2023-11-02 17:36:06 +0100 <monochrom> Eh? I don't know why I had https there. :)
2023-11-02 17:36:23 +0100 <geekosaur> for me it's just habit
2023-11-02 17:37:17 +0100 <monochrom> Ah I think Chrome filled that in.
2023-11-02 17:38:33 +0100rosco(~rosco@yp-150-69.tm.net.my) (Quit: Lost terminal)
2023-11-02 17:39:30 +0100tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net)
2023-11-02 17:39:34 +0100 <monochrom> EvanR: Fortunately, impredicative types are the next best thing for mayhem. >:)
2023-11-02 17:39:44 +0100 <geekosaur> yeh, chrome recently switched to always forcing https
2023-11-02 17:40:32 +0100misterfish(~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 255 seconds)
2023-11-02 17:41:34 +0100 <dminuoso> albet70: You see this style *very* *very* often in JavaScript.
2023-11-02 17:42:11 +0100 <dminuoso> It's how you cope with bad library design. You just start tossing continuations at it enough until you goto your goal.
2023-11-02 17:42:31 +0100 <dminuoso> Its sort of how you slap goto in badly written C programs long enough to make it do what you want.
2023-11-02 17:42:53 +0100 <dminuoso> The only difference is that C programmers generally know this to be a bad thing.
2023-11-02 17:43:45 +0100 <monochrom> In fact, a similar inside-out equation is also the best way out there (both for teaching and in research papers) to explain shift-reset. I didn't think it up myself, I was porting best practice. :)
2023-11-02 17:44:05 +0100haskellbridge(~haskellbr@069-135-003-034.biz.spectrum.com) (Remote host closed the connection)
2023-11-02 17:44:36 +0100 <monochrom> One of the few times Dijkstra was right: A formula is worth a thousand pictures.
2023-11-02 17:44:38 +0100haskellbridge(~haskellbr@069-135-003-034.biz.spectrum.com)
2023-11-02 17:44:38 +0100ChanServ+v haskellbridge
2023-11-02 17:44:38 +0100haskellbridge(~haskellbr@069-135-003-034.biz.spectrum.com) (Read error: Connection reset by peer)
2023-11-02 17:44:58 +0100haskellbridge(~haskellbr@069-135-003-034.biz.spectrum.com)
2023-11-02 17:44:58 +0100ChanServ+v haskellbridge
2023-11-02 17:45:03 +0100 <monochrom> haskellbridge come back!!!!! :(
2023-11-02 17:45:04 +0100 <monochrom> :)
2023-11-02 17:45:29 +0100 <monochrom> OK most of the times Dijkstra was right. :)
2023-11-02 17:45:42 +0100 <APic>
2023-11-02 17:45:54 +0100 <geekosaur> for some reason it crashes the first time when I restart it (I added a channel)
2023-11-02 17:46:08 +0100 <geekosaur> reported it upstream, heard nothing back
2023-11-02 17:51:48 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-11-02 17:56:26 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1))
2023-11-02 18:02:22 +0100Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
2023-11-02 18:03:46 +0100zetef(~quassel@2a02:2f00:5201:4b00:7fc8:6fbe:33d9:ba2a)
2023-11-02 18:12:36 +0100 <EvanR> crashes? what's the error message
2023-11-02 18:13:37 +0100Square(~Square@user/square)
2023-11-02 18:17:53 +0100Nachtgespenst(~user@user/siracusa) (Quit: Bye!)
2023-11-02 18:18:35 +0100random-jellyfish(~tiber@2a02:2f04:11e:c600:79b7:1b78:95b:d6a)
2023-11-02 18:18:35 +0100random-jellyfish(~tiber@2a02:2f04:11e:c600:79b7:1b78:95b:d6a) (Changing host)
2023-11-02 18:18:35 +0100random-jellyfish(~tiber@user/random-jellyfish)
2023-11-02 18:20:34 +0100 <Unicorn_Princess> how did it come to pass that if/then/else in haskell isn't a mere function/operator, like C's '?'
2023-11-02 18:21:38 +0100 <[exa]> Unicorn_Princess: there's some syntactic convenience in that
2023-11-02 18:22:16 +0100 <EvanR> there is a function if you want to use it
2023-11-02 18:22:19 +0100 <EvanR> :t bool
2023-11-02 18:22:20 +0100 <lambdabot> a -> a -> Bool -> a
2023-11-02 18:22:51 +0100derpyxdhs(~Thunderbi@user/derpyxdhs)
2023-11-02 18:23:24 +0100zetef(~quassel@2a02:2f00:5201:4b00:7fc8:6fbe:33d9:ba2a) (Ping timeout: 240 seconds)
2023-11-02 18:23:38 +0100 <Unicorn_Princess> ah, thanks. was looking for Bool -> a -> a -> a, so hoogle didn't turn it up
2023-11-02 18:23:39 +0100 <EvanR> if then else was already a syntax in miranda, and other languages that haskell stole liberally from
2023-11-02 18:24:07 +0100idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-11-02 18:26:39 +0100Guest58(~Guest37@149.159.199.141) (Ping timeout: 248 seconds)
2023-11-02 18:30:01 +0100haskellbridge(~haskellbr@069-135-003-034.biz.spectrum.com) (Remote host closed the connection)
2023-11-02 18:30:38 +0100haskellbridge(~haskellbr@069-135-003-034.biz.spectrum.com)
2023-11-02 18:30:38 +0100ChanServ+v haskellbridge
2023-11-02 18:30:58 +0100Ranhir(~Ranhir@157.97.53.139)
2023-11-02 18:32:17 +0100danse-nr3(~danse@ba-19-159-48.service.infuturo.it) (Read error: Connection reset by peer)
2023-11-02 18:33:02 +0100danse-nr3(~danse@151.47.151.72)
2023-11-02 18:33:06 +0100chele(~chele@user/chele) (Remote host closed the connection)
2023-11-02 18:35:15 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-11-02 18:37:23 +0100derpyxdhs(~Thunderbi@user/derpyxdhs) (Quit: derpyxdhs)
2023-11-02 18:37:24 +0100zetef(~quassel@2a02:2f00:5201:4b00:7fc8:6fbe:33d9:ba2a)
2023-11-02 18:38:49 +0100AssCrackBandit(~user@cust-west-par-46-193-2-167.cust.wifirst.net)
2023-11-02 18:40:44 +0100zetef_(~quassel@2a02:2f00:5201:4b00:7fc8:6fbe:33d9:ba2a)
2023-11-02 18:40:55 +0100emmanuelux(~emmanuelu@user/emmanuelux)
2023-11-02 18:41:51 +0100zetef_(~quassel@2a02:2f00:5201:4b00:7fc8:6fbe:33d9:ba2a) (Client Quit)
2023-11-02 18:53:27 +0100juri__(~juri@79.140.117.143)
2023-11-02 18:53:51 +0100nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-11-02 18:54:28 +0100juri_(~juri@84-19-175-187.pool.ovpn.com) (Ping timeout: 255 seconds)
2023-11-02 18:54:43 +0100mikoto-chan(~mikoto-ch@ip-212-239-236-59.dsl.scarlet.be)
2023-11-02 18:56:04 +0100juri__(~juri@79.140.117.143) (Read error: Connection reset by peer)
2023-11-02 18:57:29 +0100Guest12(~Guest37@149.159.199.141)
2023-11-02 18:58:27 +0100juri_(~juri@84-19-175-187.pool.ovpn.com)
2023-11-02 18:58:50 +0100nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
2023-11-02 19:02:39 +0100zetef(~quassel@2a02:2f00:5201:4b00:7fc8:6fbe:33d9:ba2a) (Remote host closed the connection)
2023-11-02 19:06:36 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2023-11-02 19:07:07 +0100zetef(~quassel@2a02:2f00:5201:4b00:7fc8:6fbe:33d9:ba2a)
2023-11-02 19:07:26 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-11-02 19:09:29 +0100zetef(~quassel@2a02:2f00:5201:4b00:7fc8:6fbe:33d9:ba2a) (Remote host closed the connection)
2023-11-02 19:11:01 +0100zetef(~quassel@2a02:2f00:5201:4b00:7fc8:6fbe:33d9:ba2a)
2023-11-02 19:11:40 +0100Teacup(~teacup@user/teacup) ()
2023-11-02 19:11:57 +0100Teacup(~teacup@user/teacup)
2023-11-02 19:27:31 +0100coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-11-02 19:32:51 +0100Square(~Square@user/square) (Remote host closed the connection)
2023-11-02 19:34:38 +0100Guest12(~Guest37@149.159.199.141) (Quit: Client closed)
2023-11-02 19:36:16 +0100John_Ivan(~John_Ivan@user/john-ivan/x-1515935) (Remote host closed the connection)
2023-11-02 19:37:36 +0100John_Ivan(~John_Ivan@user/john-ivan/x-1515935)
2023-11-02 19:41:20 +0100John_Ivan(~John_Ivan@user/john-ivan/x-1515935) (Remote host closed the connection)
2023-11-02 19:41:50 +0100John_Ivan(~John_Ivan@user/john-ivan/x-1515935)
2023-11-02 19:44:58 +0100Batzy(~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2023-11-02 19:46:18 +0100Batzy(~quassel@user/batzy)
2023-11-02 19:48:20 +0100todi(~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Quit: ZNC - https://znc.in)
2023-11-02 19:50:07 +0100Guest51(~Guest37@149.159.199.141)
2023-11-02 19:52:56 +0100talismanick(~user@2601:204:ef00:bb0::1ab2) (Ping timeout: 272 seconds)
2023-11-02 19:56:08 +0100neceve(~neceve@user/neceve)
2023-11-02 19:58:38 +0100dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 272 seconds)
2023-11-02 20:04:33 +0100Square(~Square@user/square)
2023-11-02 20:05:23 +0100Square(~Square@user/square) (Remote host closed the connection)
2023-11-02 20:12:11 +0100pixelmonk(~pixelmonk@50.205.76.66) (Ping timeout: 255 seconds)
2023-11-02 20:21:38 +0100ridcully(~ridcully@p57b5294c.dip0.t-ipconnect.de) (Quit: WeeChat 4.0.5)
2023-11-02 20:21:55 +0100ridcully(~ridcully@p57b5294c.dip0.t-ipconnect.de)
2023-11-02 20:25:11 +0100pixelmonk(~pixelmonk@50.205.76.66)
2023-11-02 20:26:06 +0100htor(~htor@84.208.240.181)
2023-11-02 20:27:00 +0100ubert(~Thunderbi@178.165.171.18.wireless.dyn.drei.com) (Read error: Connection reset by peer)
2023-11-02 20:30:01 +0100Guest51(~Guest37@149.159.199.141) (Quit: Client closed)
2023-11-02 20:39:25 +0100vglfr(~vglfr@46.96.14.220) (Read error: Connection reset by peer)
2023-11-02 20:51:27 +0100danse-nr3(~danse@151.47.151.72) (Ping timeout: 240 seconds)
2023-11-02 20:51:40 +0100zer0bitz(~zer0bitz@user/zer0bitz) (Read error: Connection reset by peer)
2023-11-02 20:52:28 +0100dobblego(~dibblego@122-199-1-93.ip4.superloop.au)
2023-11-02 20:52:28 +0100dobblego(~dibblego@122-199-1-93.ip4.superloop.au) (Changing host)
2023-11-02 20:52:28 +0100dobblego(~dibblego@haskell/developer/dibblego)
2023-11-02 20:53:44 +0100dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 272 seconds)
2023-11-02 20:53:45 +0100dobblegodibblego
2023-11-02 20:58:30 +0100vglfr(~vglfr@46.96.14.220)
2023-11-02 21:01:55 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:ec87:948a:1a8:d401) (Remote host closed the connection)
2023-11-02 21:05:50 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-11-02 21:07:20 +0100danza(~francesco@151.47.151.72)
2023-11-02 21:09:00 +0100zer0bitz(~zer0bitz@user/zer0bitz)
2023-11-02 21:09:30 +0100Pickchea(~private@user/pickchea)
2023-11-02 21:24:15 +0100Guest98(~Guest37@149.159.198.179)
2023-11-02 21:26:11 +0100zetef_(~quassel@2a02:2f00:5201:4b00:7fc8:6fbe:33d9:ba2a)
2023-11-02 21:28:38 +0100zetef_(~quassel@2a02:2f00:5201:4b00:7fc8:6fbe:33d9:ba2a) (Client Quit)
2023-11-02 21:29:56 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 260 seconds)
2023-11-02 21:31:13 +0100slack1256(~slack1256@181.203.130.240)
2023-11-02 21:31:30 +0100 <slack1256> Is there a mutable IntMap for the ST Monad?
2023-11-02 21:32:48 +0100 <EvanR> or IO monad for that matter
2023-11-02 21:32:56 +0100 <slack1256> Yep
2023-11-02 21:35:02 +0100 <dminuoso> slack1256: Mind my asking, why does it have to be mutable?
2023-11-02 21:35:32 +0100 <slack1256> Test for a company. They are evaluating how fast it is on a single core.
2023-11-02 21:36:06 +0100Guest98(~Guest37@149.159.198.179) (Quit: Client closed)
2023-11-02 21:38:03 +0100Inst_(~Inst@120.244.192.250)
2023-11-02 21:41:01 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:6063:918b:7689:ac0f)
2023-11-02 21:41:14 +0100 <EvanR> seems like the point of IntMap is persistence, would it even make sense to have a mutable version
2023-11-02 21:44:50 +0100phma(phma@2001:5b0:2143:d188:322e:c0e7:31f:f4) (Read error: Connection reset by peer)
2023-11-02 21:45:41 +0100phma(~phma@2001:5b0:211f:22a8:df61:73e6:61a7:454)
2023-11-02 21:46:59 +0100Inst_(~Inst@120.244.192.250) (Read error: Connection reset by peer)
2023-11-02 21:47:04 +0100liamzy__(~Inst@120.244.192.250)
2023-11-02 21:47:19 +0100coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-11-02 21:48:15 +0100pixelmonk(~pixelmonk@50.205.76.66) (Ping timeout: 240 seconds)
2023-11-02 21:49:27 +0100danza(~francesco@151.47.151.72) (Ping timeout: 240 seconds)
2023-11-02 21:52:10 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2023-11-02 21:52:21 +0100pixelmonk(~pixelmonk@50.205.76.66)
2023-11-02 21:57:58 +0100Nachtgespenst(~user@user/siracusa)
2023-11-02 22:04:58 +0100 <monochrom> In my unpopular opinion: Benchmark IntMap itself or at most IORef (IntMap). If it's fast enough, take it. If it's too slow, leave it.
2023-11-02 22:05:33 +0100falafel(~falafel@62.175.113.194.dyn.user.ono.com)
2023-11-02 22:06:00 +0100 <monochrom> If they demand to artificially contrive mutable "IntMap" just to make Haskell look bad (we already know that route will look bad), leave them.
2023-11-02 22:06:00 +0100 <slack1256> Yeah, I will benchmark that. I hate being evaluated by performance.
2023-11-02 22:06:03 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2023-11-02 22:06:45 +0100 <dminuoso> Benchmarking a singular IntMap as the basis for evaluating language performance seems someone is just trying to set up Haskell for a predetermined result.
2023-11-02 22:07:33 +0100 <monochrom> I am a reductionist, but a good one, so I know when other people do reductionism wrong, for example this one. :)
2023-11-02 22:07:37 +0100 <dminuoso> It's sort of like benchmarking the thickness of a screw in order to decide whether Volkswagen is worth buying.
2023-11-02 22:09:25 +0100FinnBoat(~user@2001:861:5863:3d50:413d:b564:79ed:5fe0)
2023-11-02 22:10:19 +0100hippoid(~hippoid@user/hippoid)
2023-11-02 22:11:18 +0100 <EvanR> you could win the rigged contest by uberrigging it back at them: ask them to benchmark immutable arrays
2023-11-02 22:11:50 +0100 <EvanR> if immutable arrays suck, then language X based on mutable arrays must be terrible
2023-11-02 22:15:39 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2023-11-02 22:16:00 +0100 <monochrom> People make up their minds first and then look for moving goalpost rationalizations.
2023-11-02 22:16:15 +0100 <monochrom> Every time you prove them wrong, they steel their resolve.
2023-11-02 22:16:38 +0100 <monochrom> This is why I have a "leave them" under a suitable condition. Don't argue. Quit.
2023-11-02 22:18:59 +0100ft(~ft@p4fc2a529.dip0.t-ipconnect.de)
2023-11-02 22:21:20 +0100fendor(~fendor@2a02:8388:1640:be00:2a62:2dd0:490d:f2ca) (Remote host closed the connection)
2023-11-02 22:28:53 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2023-11-02 22:34:48 +0100FinnBoat(~user@2001:861:5863:3d50:413d:b564:79ed:5fe0) (Ping timeout: 260 seconds)
2023-11-02 22:36:35 +0100 <meejah> EvanR: yeah, i love the art :)
2023-11-02 22:49:27 +0100falafel(~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 240 seconds)
2023-11-02 22:53:00 +0100chomwitt(~chomwitt@2a02:587:7a2d:bc00:1ac0:4dff:fedb:a3f1) (Ping timeout: 240 seconds)
2023-11-02 22:55:21 +0100nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-11-02 22:56:47 +0100dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2023-11-02 23:00:22 +0100nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 258 seconds)
2023-11-02 23:03:20 +0100cmtaur^(~cd@70-88-177-118-Atlanta.hfc.comcastbusiness.net)
2023-11-02 23:09:21 +0100Lycurgus(~georg@user/Lycurgus)
2023-11-02 23:12:08 +0100vglfr(~vglfr@46.96.14.220) (Read error: Connection reset by peer)
2023-11-02 23:14:57 +0100todi(~todi@p4fd1a3e6.dip0.t-ipconnect.de)
2023-11-02 23:15:01 +0100michalz(~michalz@185.246.207.218) (Remote host closed the connection)
2023-11-02 23:17:51 +0100slack1256(~slack1256@181.203.130.240) (Read error: Connection reset by peer)
2023-11-02 23:19:03 +0100mikoto-chan(~mikoto-ch@ip-212-239-236-59.dsl.scarlet.be) (Ping timeout: 240 seconds)
2023-11-02 23:20:39 +0100accord(uid568320@id-568320.hampstead.irccloud.com)
2023-11-02 23:28:36 +0100zetef(~quassel@2a02:2f00:5201:4b00:7fc8:6fbe:33d9:ba2a) (Ping timeout: 240 seconds)
2023-11-02 23:29:03 +0100neceve(~neceve@user/neceve) (Ping timeout: 240 seconds)
2023-11-02 23:29:30 +0100Jackneill_(~Jackneill@20014C4E1E16F000C6DFD3C15F3E3440.dsl.pool.telekom.hu) (Ping timeout: 258 seconds)
2023-11-02 23:29:51 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-11-02 23:32:47 +0100Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2023-11-02 23:48:13 +0100Pickchea(~private@user/pickchea) (Quit: Leaving)