2022/07/13

2022-07-13 00:00:28 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-07-13 00:06:38 +0200jpds1(~jpds@gateway/tor-sasl/jpds)
2022-07-13 00:06:39 +0200acidjnk_new(~acidjnk@p200300d6e7058634ccce5b583b17b980.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2022-07-13 00:07:07 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2022-07-13 00:07:31 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
2022-07-13 00:09:49 +0200kjak(~kjak@pool-108-31-68-111.washdc.fios.verizon.net) (Ping timeout: 272 seconds)
2022-07-13 00:10:35 +0200jgeerds(~jgeerds@55d437cf.access.ecotel.net) (Ping timeout: 268 seconds)
2022-07-13 00:10:45 +0200kjak(~kjak@pool-108-31-68-111.washdc.fios.verizon.net)
2022-07-13 00:26:17 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
2022-07-13 00:28:36 +0200segfaultfizzbuzz(~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
2022-07-13 00:30:43 +0200ubert(~Thunderbi@91.141.39.36.wireless.dyn.drei.com) (Ping timeout: 272 seconds)
2022-07-13 00:30:55 +0200geschwindingskei(~John_Ivan@user/john-ivan/x-1515935) (Leaving)
2022-07-13 00:34:26 +0200cosimone(~user@2001:b07:ae5:db26:57c7:21a5:6e1c:6b81)
2022-07-13 00:43:02 +0200pmarg(~pmarg@2a01:799:159f:9b00:64d8:8354:ad7c:2411) (Remote host closed the connection)
2022-07-13 00:47:54 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-07-13 00:48:08 +0200slack1256(~slack1256@191.125.99.212)
2022-07-13 00:49:48 +0200slack6215(~slack1256@186.11.84.89)
2022-07-13 00:50:13 +0200slack1256(~slack1256@191.125.99.212) (Read error: Connection reset by peer)
2022-07-13 00:50:48 +0200slac35555(~slack1256@191.125.99.206) (Ping timeout: 272 seconds)
2022-07-13 00:51:43 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:9851:a856:681c:da1a)
2022-07-13 00:51:47 +0200nosewings(~ngpc@cpe-76-186-194-45.tx.res.rr.com) (Remote host closed the connection)
2022-07-13 00:52:53 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 272 seconds)
2022-07-13 00:57:04 +0200`2jt(~jtomas@141.red-88-17-65.dynamicip.rima-tde.net) (Remote host closed the connection)
2022-07-13 00:57:22 +0200`2jt(~jtomas@141.red-88-17-65.dynamicip.rima-tde.net)
2022-07-13 01:00:42 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-13 01:04:19 +0200kjak(~kjak@pool-108-31-68-111.washdc.fios.verizon.net) (Remote host closed the connection)
2022-07-13 01:04:32 +0200kjak(~kjak@pool-108-31-68-111.washdc.fios.verizon.net)
2022-07-13 01:08:54 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-07-13 01:10:55 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-07-13 01:24:15 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-07-13 01:28:21 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 272 seconds)
2022-07-13 01:30:15 +0200Alex_test(~al_test@178.34.160.206) (Ping timeout: 272 seconds)
2022-07-13 01:30:15 +0200AlexZenon(~alzenon@178.34.160.206) (Ping timeout: 272 seconds)
2022-07-13 01:33:04 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:9851:a856:681c:da1a) (Remote host closed the connection)
2022-07-13 01:33:48 +0200Alex_test(~al_test@178.34.160.206)
2022-07-13 01:33:48 +0200AlexZenon(~alzenon@178.34.160.206)
2022-07-13 01:33:52 +0200geschwindig(~John_Ivan@user/john-ivan/x-1515935)
2022-07-13 01:34:15 +0200 <geschwindig> Rembane, hello again. I wish to ask - how do you explicitly give function parameters a label?
2022-07-13 01:34:47 +0200 <geschwindig> theFunction :: Int -> IO -- this lacks parameter labels/naming.
2022-07-13 01:34:58 +0200 <Rembane> geschwindig: At the next line usually
2022-07-13 01:35:16 +0200 <Rembane> geschwindig: thefunction someInt = print someInt
2022-07-13 01:36:12 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2022-07-13 01:36:17 +0200 <geschwindig> Rembane, any other syntactic sugar way?
2022-07-13 01:36:33 +0200 <geschwindig> seems a little messy to do that, especially if the function is lengthy.
2022-07-13 01:36:43 +0200 <Rembane> geschwindig: None that I can think of
2022-07-13 01:36:50 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds)
2022-07-13 01:36:54 +0200 <geschwindig> Oof
2022-07-13 01:37:29 +0200Lord_of_Life_Lord_of_Life
2022-07-13 01:41:12 +0200 <geekosaur> some people use a record for the parameters and record update syntax to specify them
2022-07-13 01:41:27 +0200ph88(~ph88@ip5f5af71f.dynamic.kabel-deutschland.de)
2022-07-13 01:41:33 +0200 <geekosaur> this can go well with Default (but can also lead to that being overused and losing type safety)
2022-07-13 01:42:16 +0200 <geekosaur> instance Default MyParameters where def = … {- … -} foo def {thing = "what"}
2022-07-13 01:42:42 +0200Igloo(~ian@matrix.chaos.earth.li) (Quit: BIAW)
2022-07-13 01:42:48 +0200 <geekosaur> I dislike Default but can see how it would be attractive
2022-07-13 01:43:04 +0200 <geschwindig> I.... see. thank you.
2022-07-13 01:43:33 +0200 <geekosaur> it also lets you prepackage combinations of parameters (replacing `def`)
2022-07-13 01:44:22 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Write error: Connection reset by peer)
2022-07-13 01:44:22 +0200califax(~califax@user/califx) (Write error: Connection reset by peer)
2022-07-13 01:44:22 +0200jpds1(~jpds@gateway/tor-sasl/jpds) (Read error: Connection reset by peer)
2022-07-13 01:44:22 +0200noteness(~noteness@user/noteness) (Read error: Connection reset by peer)
2022-07-13 01:44:22 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-07-13 01:44:22 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Read error: Connection reset by peer)
2022-07-13 01:44:43 +0200noteness(~noteness@user/noteness)
2022-07-13 01:44:49 +0200pretty_d1(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
2022-07-13 01:44:55 +0200 <geschwindig> geekosaur, you ever played skyrim?
2022-07-13 01:45:03 +0200 <geekosaur> nope
2022-07-13 01:45:13 +0200AlexZenon(~alzenon@178.34.160.206) (Ping timeout: 260 seconds)
2022-07-13 01:45:17 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-07-13 01:45:29 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-07-13 01:45:39 +0200lottaquestions_(~nick@S0106a84e3f794893.ca.shawcable.net) (Quit: Konversation terminated!)
2022-07-13 01:45:51 +0200califax(~califax@user/califx)
2022-07-13 01:45:54 +0200AlexNoo(~AlexNoo@178.34.160.206) (Ping timeout: 272 seconds)
2022-07-13 01:46:05 +0200Alex_test(~al_test@178.34.160.206) (Ping timeout: 272 seconds)
2022-07-13 01:46:07 +0200jpds1(~jpds@gateway/tor-sasl/jpds)
2022-07-13 01:46:21 +0200 <geschwindig> geekosaur, then here's my reaction to all of your comments in this 30 second video. in particular at 0:10 - https://www.youtube.com/watch?v=pFhCGMW8pPo
2022-07-13 01:46:23 +0200 <geschwindig> :P
2022-07-13 01:46:48 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-07-13 01:47:09 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-07-13 01:49:39 +0200Tuplanolla(~Tuplanoll@91-159-69-97.elisa-laajakaista.fi) (Quit: Leaving.)
2022-07-13 01:49:43 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-07-13 01:50:15 +0200AlexNoo(~AlexNoo@178.34.160.206)
2022-07-13 01:50:17 +0200AlexZenon(~alzenon@178.34.160.206)
2022-07-13 01:50:24 +0200gurkengl1s(~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) (Ping timeout: 276 seconds)
2022-07-13 01:50:30 +0200Alex_test(~al_test@178.34.160.206)
2022-07-13 01:55:43 +0200noteness(~noteness@user/noteness) (Remote host closed the connection)
2022-07-13 01:56:01 +0200noteness(~noteness@user/noteness)
2022-07-13 01:59:04 +0200zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-07-13 02:00:33 +0200 <talismanick> Is it acceptable to ask about Haskell-family languages in here?
2022-07-13 02:01:19 +0200 <talismanick> I'll ask anyways: What are the options for pure (or almost) languages which compile to wasm and avoid touching Node/JS?
2022-07-13 02:01:26 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-07-13 02:01:42 +0200 <talismanick> like what Rust has with Yew
2022-07-13 02:02:15 +0200 <arahael> talismanick: i was going to suggest rust, but didnt know what you meant by "pure".
2022-07-13 02:02:57 +0200 <talismanick> arahael: Weeeell, I'm really happy that Rust has come this far, but I'd like something a bit higher level :)
2022-07-13 02:03:30 +0200 <talismanick> I've actually started to think as of late that I should take the plunge and learn Rust, but not to build a webapp
2022-07-13 02:03:43 +0200 <talismanick> (or plain website)
2022-07-13 02:04:13 +0200nightbreak(~nightbrea@2600:1700:70d1:d800:7997:c6a5:32b7:3d2e)
2022-07-13 02:04:59 +0200 <geekosaur[m]> Not ready yet but ghc will be targeting wasm with 9.6 hopefully
2022-07-13 02:05:01 +0200zaquest(~notzaques@5.130.79.72)
2022-07-13 02:06:22 +0200 <talismanick> geekosaur: Oh! I had basically given up on hope for Haskell itself after it seemed Asterius landed short of what I'd call "usable". (for someone like me)
2022-07-13 02:06:57 +0200 <talismanick> (really impressive, but I'm not skilled/diligent enough to wield it efficiently)
2022-07-13 02:07:02 +0200 <arahael> geekosaur[m]: woohoo!
2022-07-13 02:07:05 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net)
2022-07-13 02:08:08 +0200 <geekosaur[m]> Also don't know if it uses node; talk to terrorjack in #ghc
2022-07-13 02:08:59 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:9851:a856:681c:da1a)
2022-07-13 02:10:00 +0200 <geekosaur> asterius and ghcjs development got turned into the ghc 9.6 effort
2022-07-13 02:10:15 +0200 <talismanick> Ah, that explains why I stopped finding news after a certain point
2022-07-13 02:10:29 +0200 <talismanick> (or maybe it was a lull then)
2022-07-13 02:11:28 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Ping timeout: 244 seconds)
2022-07-13 02:12:06 +0200 <talismanick> And, re possible node dependence, it's likely that it can drop Node for Deno (lighter, partially backwards-compatible rewrite in Rust from author of Node)
2022-07-13 02:12:26 +0200 <talismanick> Depending on how it uses Node, that is
2022-07-13 02:13:02 +0200 <talismanick> I've learned a bit about alternatives in my crusade to purge Node from anything I do
2022-07-13 02:13:15 +0200mvk(~mvk@2607:fea8:5ce3:8500::909a)
2022-07-13 02:13:46 +0200 <arahael> i was surprised to learn that node's gc, and js's gc in general, is a reference counting scheme.
2022-07-13 02:15:22 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-07-13 02:15:25 +0200 <Axman6> I should write more JS with cyclic data structures...
2022-07-13 02:15:45 +0200ph88(~ph88@ip5f5af71f.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2022-07-13 02:15:49 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-07-13 02:16:40 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-07-13 02:17:18 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-07-13 02:19:18 +0200Ram-Z(~Ram-Z@li1814-254.members.linode.com) (Ping timeout: 276 seconds)
2022-07-13 02:22:11 +0200xff0x(~xff0x@2405:6580:b080:900:9e06:cb70:78ee:9dbc) (Ping timeout: 272 seconds)
2022-07-13 02:22:54 +0200 <Axman6> geschwindig: you can write foo (someInt :: Int) (someBar :: Bar) = ... which I've don on $work projectsd where functions had lots of arguments. you might need a language extension to do that but GHC will tell you if you do need it
2022-07-13 02:28:08 +0200 <talismanick> Is gi-gtk still the best library for a mostly-declarative, implementation-details-hidden GTK GUI?
2022-07-13 02:28:43 +0200 <talismanick> err, gi-gtk-declarative
2022-07-13 02:28:44 +0200 <talismanick> https://hackage.haskell.org/package/gi-gtk-declarative
2022-07-13 02:30:21 +0200 <talismanick> I started working with it a while back and liked it, but got sidetracked and never returned
2022-07-13 02:31:26 +0200 <talismanick> Never used gtk2hs (that's the standard one, right), but the former looked more idiomatic
2022-07-13 02:32:38 +0200 <glguy> I've used gi-gtk together with glade. Is this an alternative to glade?
2022-07-13 02:33:28 +0200justsomeguy(~justsomeg@user/justsomeguy)
2022-07-13 02:36:58 +0200bontaq`(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 240 seconds)
2022-07-13 02:38:39 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds)
2022-07-13 02:39:26 +0200nightbreaknightbreak[Away]
2022-07-13 02:39:37 +0200jargon(~jargon@184.101.188.251)
2022-07-13 02:40:04 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-13 02:42:08 +0200slack6215(~slack1256@186.11.84.89) (Remote host closed the connection)
2022-07-13 02:48:44 +0200 <jackdk> Axman6: you are right - type annotations in pattern bindings need `-XScopedTypeVariables`
2022-07-13 02:49:32 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net)
2022-07-13 02:49:59 +0200 <talismanick> glguy: In a sense, yeah. You lay out your GUI, "as the ancients would have", via text commands to put this next to that or nest it over yonder
2022-07-13 02:51:00 +0200 <talismanick> but, it goes beyond eliminating the need to (presumably) wire Glade output to gi-gtk - it has its own language of "events" overlaying GTK's native, imperative notion of "signals"
2022-07-13 02:51:02 +0200nate4(~nate@98.45.169.16)
2022-07-13 02:51:27 +0200 <talismanick> for example ^
2022-07-13 02:52:00 +0200qhong_(~qhong@rescomp-21-400677.stanford.edu)
2022-07-13 02:52:51 +0200 <Axman6> > let foldr (f :: a -> b -> b) (z :: b) ([] :: [a]) = z; foldr (f :: a -> b -> b) (z :: b) (x:xs :: [a]) = f x (foldr f z xs) in foldr (:) [] [1,2,3]
2022-07-13 02:52:53 +0200 <lambdabot> [1,2,3]
2022-07-13 02:55:10 +0200qhong(~qhong@DN200ouju.stanford.edu) (Ping timeout: 240 seconds)
2022-07-13 02:58:20 +0200califax(~califax@user/califx) (Ping timeout: 268 seconds)
2022-07-13 02:58:33 +0200troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset)
2022-07-13 02:58:44 +0200califax(~califax@user/califx)
2022-07-13 02:58:47 +0200cosimone(~user@2001:b07:ae5:db26:57c7:21a5:6e1c:6b81) (Remote host closed the connection)
2022-07-13 02:58:57 +0200lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 276 seconds)
2022-07-13 02:59:17 +0200lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
2022-07-13 02:59:40 +0200cosimone(~user@2001:b07:ae5:db26:57c7:21a5:6e1c:6b81)
2022-07-13 02:59:52 +0200troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-07-13 03:00:11 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
2022-07-13 03:01:51 +0200 <Axman6> Where's Dons when you need him
2022-07-13 03:02:46 +0200 <talismanick> Wow, I'm amazed reactive-banana is still kicking
2022-07-13 03:03:29 +0200 <talismanick> It really does live up to the first (fake) testimonial from its wiki page:
2022-07-13 03:03:30 +0200 <talismanick> "In the programming-language world, one rule of survival is simple: dance or die. This library makes dancing easy." – Simon Banana Jones
2022-07-13 03:04:53 +0200 <glguy> talismanick: in my case I automated away the wiring of the glade to my app
2022-07-13 03:04:56 +0200 <glguy> (using ghc.generics)
2022-07-13 03:06:33 +0200 <talismanick> glguy: Glade outputs... XML, if I'm not mistaken? Did you throw an XML->ADT parser at it and match up what came out with ghc.generics?
2022-07-13 03:08:57 +0200 <edwardk> Axman6: didn't he move back to .au? you should be able to go knock on his door
2022-07-13 03:09:28 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2022-07-13 03:10:00 +0200 <glguy> talismanick: I did it from a data type, but that could have been automated away with template haskell (I just didn't go that route)
2022-07-13 03:10:21 +0200 <glguy> https://github.com/glguy/CookieCalculator/blob/master/gui/Main.hs#L44-L55
2022-07-13 03:10:23 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-07-13 03:10:37 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Read error: Connection reset by peer)
2022-07-13 03:11:52 +0200 <glguy> The declarative thing seems like it'd be nice for a dynamically defined UI, though
2022-07-13 03:13:15 +0200 <talismanick> glguy: that's actually why I looked up reactive-banana again - there was reactive-banana-gi-gtk, and I was wondering if I could use the two together
2022-07-13 03:13:32 +0200 <Axman6> edwardk: yeah, but he's stopped showing up here. I don't have a car do popping down the road to Sydney is a bit more difficult
2022-07-13 03:13:37 +0200 <Axman6> so*
2022-07-13 03:16:44 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-07-13 03:16:58 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Remote host closed the connection)
2022-07-13 03:17:24 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-13 03:17:56 +0200entheogenesis[m](~entheogen@2001:470:69fc:105::1:e7c4)
2022-07-13 03:18:48 +0200orion(~orion@user/orion)
2022-07-13 03:20:41 +0200 <orion> Hello. Does Herbert Valerio Riedel (hvr) hang out here? If so, what is his pseudonym?
2022-07-13 03:22:38 +0200 <talismanick> glguy: is this... a program to play Cookie Clicker for you?
2022-07-13 03:22:46 +0200 <talismanick> A) that's awesome
2022-07-13 03:22:49 +0200 <talismanick> B) why
2022-07-13 03:23:23 +0200 <talismanick> C) why is the repo dominated in size by a .c file too large to be displayed in the browser
2022-07-13 03:24:14 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-07-13 03:24:32 +0200 <Axman6> I'm trying to build glean on macOS - seems that macOS defines isinf as a macro, and then one of the C++ deps tried to define a function with the same name without checking first -_-
2022-07-13 03:26:19 +0200 <jackdk> Axman6: I recommend s/mac/nix/
2022-07-13 03:29:30 +0200nate4(~nate@98.45.169.16) (Ping timeout: 240 seconds)
2022-07-13 03:29:49 +0200Ram-Z(~Ram-Z@li1814-254.members.linode.com)
2022-07-13 03:30:00 +0200machinedgod(~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 244 seconds)
2022-07-13 03:31:43 +0200jakalx(~jakalx@base.jakalx.net)
2022-07-13 03:32:20 +0200finsternis(~X@23.226.237.192)
2022-07-13 03:32:38 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
2022-07-13 03:33:40 +0200mixfix41(~sdenynine@user/mixfix41)
2022-07-13 03:34:50 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-13 03:35:06 +0200zxx7529(~Thunderbi@user/zxx7529)
2022-07-13 03:37:03 +0200abhinav(~abhinav@c-67-169-139-16.hsd1.ca.comcast.net)
2022-07-13 03:39:45 +0200 <glguy> talismanick: it was a model of cookie clicker that I used to try out combinations of upgrades to prioritize my purchases
2022-07-13 03:40:01 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-13 03:40:35 +0200 <glguy> talismanick: the C file is the game icons png/gif (don't remember) stashed in a C array
2022-07-13 03:40:49 +0200 <glguy> I think I meant to not commit that; it must have sneaked in at some point
2022-07-13 03:41:28 +0200 <glguy> It used to be able to generate very accurate values for cookies per second, click, etc, but the game has moved on since I implemented it and I haven't kept up
2022-07-13 03:43:38 +0200 <glguy> cookie clicker ends up getting surprisingly complicated when you're trying to generate cookies efficiently; there are a number of different strategies with varying levels of reliability and output and user involvement
2022-07-13 03:44:26 +0200g(x@libera/staff/glguy)
2022-07-13 03:46:42 +0200hughjfchen(~hughjfche@vmi556545.contaboserver.net)
2022-07-13 03:47:44 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:9851:a856:681c:da1a) (Remote host closed the connection)
2022-07-13 03:48:07 +0200simpleauthority(~simpleaut@user/simpleauthority) (Quit: ZNC 1.8.2 - https://znc.in)
2022-07-13 03:48:32 +0200simpleauthority(~simpleaut@user/simpleauthority)
2022-07-13 03:49:48 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net)
2022-07-13 03:51:21 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds)
2022-07-13 03:53:08 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-13 03:53:45 +0200onr(~onr@user/onr)
2022-07-13 04:00:50 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Ping timeout: 255 seconds)
2022-07-13 04:01:02 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:9851:a856:681c:da1a)
2022-07-13 04:09:51 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds)
2022-07-13 04:11:30 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-13 04:12:14 +0200seriously(~seriously@ool-18bd55d4.dyn.optonline.net)
2022-07-13 04:16:13 +0200brettgilio(~brettgili@c9yh.net) (Remote host closed the connection)
2022-07-13 04:18:37 +0200brettgilio(~brettgili@c9yh.net)
2022-07-13 04:19:59 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 272 seconds)
2022-07-13 04:20:01 +0200brettgilio(~brettgili@c9yh.net) (Client Quit)
2022-07-13 04:20:37 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds)
2022-07-13 04:20:40 +0200brettgilio(~brettgili@c9yh.net)
2022-07-13 04:21:17 +0200[_](~itchyjunk@user/itchyjunk/x-7353470)
2022-07-13 04:21:36 +0200brettgilio(~brettgili@c9yh.net) (Client Quit)
2022-07-13 04:21:53 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 272 seconds)
2022-07-13 04:22:24 +0200brettgilio(~brettgili@c9yh.net)
2022-07-13 04:22:28 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-13 04:26:50 +0200td_(~td@94.134.91.223) (Ping timeout: 244 seconds)
2022-07-13 04:27:26 +0200nate4(~nate@98.45.169.16)
2022-07-13 04:28:36 +0200 <edwardk> orion: he used to, quite actively. not so much these days. nick: hvr
2022-07-13 04:28:48 +0200 <orion> Thank you edwardk.
2022-07-13 04:28:51 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net)
2022-07-13 04:28:59 +0200td_(~td@muedsl-82-207-238-241.citykom.de)
2022-07-13 04:29:50 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds)
2022-07-13 04:31:51 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-13 04:34:33 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 272 seconds)
2022-07-13 04:38:12 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Ping timeout: 244 seconds)
2022-07-13 04:41:30 +0200nate4(~nate@98.45.169.16) (Ping timeout: 260 seconds)
2022-07-13 04:41:31 +0200segfaultfizzbuzz(~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 272 seconds)
2022-07-13 04:42:38 +0200wz1000(~zubin@static.11.113.47.78.clients.your-server.de) (Ping timeout: 255 seconds)
2022-07-13 04:44:03 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-07-13 04:44:03 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-07-13 04:44:03 +0200finn_elijaFinnElija
2022-07-13 04:45:26 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-07-13 04:47:54 +0200seriously(~seriously@ool-18bd55d4.dyn.optonline.net) (Quit: Client closed)
2022-07-13 04:50:20 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-13 04:54:05 +0200onr(~onr@user/onr) (Quit: Leaving)
2022-07-13 04:56:07 +0200sagax(~sagax_nb@user/sagax)
2022-07-13 05:02:49 +0200geschwindig(~John_Ivan@user/john-ivan/x-1515935) (Ping timeout: 256 seconds)
2022-07-13 05:03:01 +0200[_](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2022-07-13 05:06:44 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net)
2022-07-13 05:07:53 +0200Cajun(~Cajun@user/cajun)
2022-07-13 05:15:30 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2022-07-13 05:15:37 +0200orion(~orion@user/orion) (Quit: Leaving...)
2022-07-13 05:20:47 +0200nate4(~nate@98.45.169.16)
2022-07-13 05:27:30 +0200nate4(~nate@98.45.169.16) (Ping timeout: 276 seconds)
2022-07-13 05:30:01 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-07-13 05:30:01 +0200noteness(~noteness@user/noteness) (Read error: Connection reset by peer)
2022-07-13 05:30:22 +0200noteness(~noteness@user/noteness)
2022-07-13 05:30:24 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-07-13 05:34:14 +0200johnw(~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net)
2022-07-13 05:38:31 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds)
2022-07-13 05:41:36 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-13 05:43:20 +0200nate4(~nate@98.45.169.16)
2022-07-13 05:48:18 +0200nate4(~nate@98.45.169.16) (Ping timeout: 276 seconds)
2022-07-13 05:49:22 +0200Adran(adran@botters/adran) (Quit: Este é o fim.)
2022-07-13 05:58:41 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-07-13 05:59:02 +0200nightbreak[Away]nightbreak
2022-07-13 06:00:51 +0200noteness(~noteness@user/noteness) (Remote host closed the connection)
2022-07-13 06:01:10 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net)
2022-07-13 06:01:14 +0200noteness(~noteness@user/noteness)
2022-07-13 06:06:11 +0200toluene(~toluene@user/toulene) (Quit: Ping timeout (120 seconds))
2022-07-13 06:09:03 +0200toluene(~toluene@user/toulene)
2022-07-13 06:09:46 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-13 06:14:37 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds)
2022-07-13 06:16:00 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-13 06:17:46 +0200nate4(~nate@98.45.169.16)
2022-07-13 06:22:50 +0200nate4(~nate@98.45.169.16) (Ping timeout: 240 seconds)
2022-07-13 06:27:28 +0200dschrempf(~dominik@mobiledyn-62-240-134-33.mrsn.at)
2022-07-13 06:27:43 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-07-13 06:31:44 +0200notzmv(~zmv@user/notzmv)
2022-07-13 06:33:50 +0200forell(~forell@user/forell) (Ping timeout: 255 seconds)
2022-07-13 06:37:29 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2022-07-13 06:40:01 +0200kenran(~kenran@200116b82b67ed0072df3d95acc6d4a7.dip.versatel-1u1.de)
2022-07-13 06:40:34 +0200qhong_qhong
2022-07-13 06:40:37 +0200forell(~forell@user/forell)
2022-07-13 06:41:45 +0200kenran(~kenran@200116b82b67ed0072df3d95acc6d4a7.dip.versatel-1u1.de) (Client Quit)
2022-07-13 06:44:18 +0200segfaultfizzbuzz(~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
2022-07-13 06:49:01 +0200 <talismanick> Are there actively-maintained libraries to display subsets of HTML, like in emails?
2022-07-13 06:52:08 +0200 <talismanick> blizzard-html?
2022-07-13 07:00:26 +0200zxx7529(~Thunderbi@user/zxx7529) (Remote host closed the connection)
2022-07-13 07:05:37 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
2022-07-13 07:13:52 +0200mmhat(~mmh@p200300f1c7090757ee086bfffe095315.dip0.t-ipconnect.de)
2022-07-13 07:14:34 +0200nightbreak(~nightbrea@2600:1700:70d1:d800:7997:c6a5:32b7:3d2e) (Quit: Signing off for now...)
2022-07-13 07:16:55 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-07-13 07:17:40 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net)
2022-07-13 07:20:27 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-07-13 07:22:23 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
2022-07-13 07:22:31 +0200sagax(~sagax_nb@user/sagax) (Quit: Konversation terminated!)
2022-07-13 07:26:01 +0200mbuf(~Shakthi@122.165.55.71)
2022-07-13 07:28:25 +0200segfaultfizzbuzz(~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 268 seconds)
2022-07-13 07:31:45 +0200nschoe(~quassel@2a01:e0a:8e:a190:55e:c980:c5f4:9be5)
2022-07-13 07:33:30 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-13 07:34:17 +0200nightbreak_(~nightbrea@2600:1700:70d1:d800:7997:c6a5:32b7:3d2e)
2022-07-13 07:35:10 +0200zxx7529(~Thunderbi@user/zxx7529)
2022-07-13 07:44:12 +0200gmg(~user@user/gehmehgeh)
2022-07-13 07:50:03 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2022-07-13 07:51:52 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net)
2022-07-13 07:54:47 +0200segfaultfizzbuzz(~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
2022-07-13 07:57:06 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Ping timeout: 264 seconds)
2022-07-13 08:02:48 +0200dschrempf(~dominik@mobiledyn-62-240-134-33.mrsn.at) (Ping timeout: 244 seconds)
2022-07-13 08:13:18 +0200segfaultfizzbuzz(~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 264 seconds)
2022-07-13 08:13:49 +0200frost(~frost@user/frost)
2022-07-13 08:20:42 +0200causal(~user@50.35.83.177) (Quit: WeeChat 3.5)
2022-07-13 08:21:44 +0200dcoutts(~duncan@host86-176-29-6.range86-176.btcentralplus.com)
2022-07-13 08:22:37 +0200john(~john@60.254.0.204)
2022-07-13 08:23:00 +0200juri_(~juri@84-19-175-179.pool.ovpn.com) (Ping timeout: 276 seconds)
2022-07-13 08:23:49 +0200dcoutts_(~duncan@host86-176-29-6.range86-176.btcentralplus.com) (Ping timeout: 272 seconds)
2022-07-13 08:24:59 +0200dcoutts_(~duncan@host86-176-29-6.range86-176.btcentralplus.com)
2022-07-13 08:26:35 +0200schweers(~user@2001:9e8:be68:9d00:aaa1:59ff:fe3f:235c)
2022-07-13 08:26:47 +0200dcoutts(~duncan@host86-176-29-6.range86-176.btcentralplus.com) (Ping timeout: 255 seconds)
2022-07-13 08:26:59 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net)
2022-07-13 08:30:01 +0200nate4(~nate@98.45.169.16)
2022-07-13 08:30:05 +0200Batzy(~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-07-13 08:31:05 +0200hgolden(~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Quit: Konversation terminated!)
2022-07-13 08:32:29 +0200dolio(~dolio@130.44.130.54) (Ping timeout: 256 seconds)
2022-07-13 08:32:41 +0200nschoe(~quassel@2a01:e0a:8e:a190:55e:c980:c5f4:9be5) (Ping timeout: 272 seconds)
2022-07-13 08:32:42 +0200Batzy(~quassel@user/batzy)
2022-07-13 08:36:09 +0200dcoutts(~duncan@host86-176-29-6.range86-176.btcentralplus.com)
2022-07-13 08:38:02 +0200dcoutts_(~duncan@host86-176-29-6.range86-176.btcentralplus.com) (Ping timeout: 255 seconds)
2022-07-13 08:38:12 +0200nate4(~nate@98.45.169.16) (Ping timeout: 272 seconds)
2022-07-13 08:40:31 +0200benin0(~benin@183.82.29.162)
2022-07-13 08:40:55 +0200schweers(~user@2001:9e8:be68:9d00:aaa1:59ff:fe3f:235c) (Ping timeout: 272 seconds)
2022-07-13 08:45:09 +0200dcoutts_(~duncan@host86-176-29-6.range86-176.btcentralplus.com)
2022-07-13 08:45:09 +0200Vajb(~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi) (Read error: Connection reset by peer)
2022-07-13 08:45:20 +0200Vajb(~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi)
2022-07-13 08:47:53 +0200dcoutts(~duncan@host86-176-29-6.range86-176.btcentralplus.com) (Ping timeout: 272 seconds)
2022-07-13 08:48:00 +0200dolio(~dolio@130.44.130.54)
2022-07-13 08:48:38 +0200bilegeek(~bilegeek@2600:1008:b051:ad72:b292:6384:9c6:e29c)
2022-07-13 08:50:30 +0200dcoutts__(~duncan@host86-151-9-13.range86-151.btcentralplus.com)
2022-07-13 08:53:30 +0200dcoutts_(~duncan@host86-176-29-6.range86-176.btcentralplus.com) (Ping timeout: 260 seconds)
2022-07-13 08:53:42 +0200Sgeo_(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-07-13 08:54:24 +0200shriekingnoise(~shrieking@201.212.175.181) (Quit: Quit)
2022-07-13 08:54:53 +0200winny(~weechat@user/winny) (Remote host closed the connection)
2022-07-13 08:54:59 +0200dcoutts_(~duncan@host109-149-38-36.range109-149.btcentralplus.com)
2022-07-13 08:55:30 +0200winny(~weechat@user/winny)
2022-07-13 08:56:13 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:9851:a856:681c:da1a) (Remote host closed the connection)
2022-07-13 08:56:52 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e)
2022-07-13 08:57:35 +0200dcoutts__(~duncan@host86-151-9-13.range86-151.btcentralplus.com) (Ping timeout: 260 seconds)
2022-07-13 09:00:03 +0200noteness(~noteness@user/noteness) (Read error: Connection reset by peer)
2022-07-13 09:00:03 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2022-07-13 09:00:18 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net)
2022-07-13 09:00:30 +0200dcoutts_(~duncan@host109-149-38-36.range109-149.btcentralplus.com) (Ping timeout: 260 seconds)
2022-07-13 09:00:47 +0200noteness(~noteness@user/noteness)
2022-07-13 09:00:51 +0200gmg(~user@user/gehmehgeh)
2022-07-13 09:01:13 +0200nightbreak_nightbreak[Away]
2022-07-13 09:02:21 +0200dcoutts_(~duncan@host86-151-9-74.range86-151.btcentralplus.com)
2022-07-13 09:06:09 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-13 09:07:20 +0200coot(~coot@213.134.190.95)
2022-07-13 09:09:55 +0200bilegeek(~bilegeek@2600:1008:b051:ad72:b292:6384:9c6:e29c) (Quit: Leaving)
2022-07-13 09:12:02 +0200noteness(~noteness@user/noteness) (Ping timeout: 268 seconds)
2022-07-13 09:12:40 +0200noteness(~noteness@user/noteness)
2022-07-13 09:13:59 +0200 <albet70> how to merge others cabal project into my project?
2022-07-13 09:16:50 +0200dcoutts(~duncan@host86-151-9-74.range86-151.btcentralplus.com)
2022-07-13 09:17:10 +0200elkcl(~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Ping timeout: 240 seconds)
2022-07-13 09:17:12 +0200dcoutts_(~duncan@host86-151-9-74.range86-151.btcentralplus.com) (Ping timeout: 244 seconds)
2022-07-13 09:17:25 +0200nschoe(~quassel@178.251.84.79)
2022-07-13 09:17:50 +0200 <[exa]> albet70: as in "use more packages in 1 project directory" ? there's `cabal.project` for that
2022-07-13 09:18:07 +0200 <[exa]> AFAIK you just list the project subdirectories there and that's it
2022-07-13 09:18:36 +0200 <[exa]> roughly like this: https://cabal.readthedocs.io/en/3.6/cabal-project.html
2022-07-13 09:21:05 +0200zmt00(~zmt00@user/zmt00) (Read error: Connection reset by peer)
2022-07-13 09:21:16 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-07-13 09:21:40 +0200dcoutts_(~duncan@host86-151-9-74.range86-151.btcentralplus.com)
2022-07-13 09:22:30 +0200dcoutts(~duncan@host86-151-9-74.range86-151.btcentralplus.com) (Ping timeout: 240 seconds)
2022-07-13 09:22:31 +0200zmt00(~zmt00@user/zmt00)
2022-07-13 09:24:21 +0200abhinav(~abhinav@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 268 seconds)
2022-07-13 09:25:50 +0200dcoutts_(~duncan@host86-151-9-74.range86-151.btcentralplus.com) (Ping timeout: 240 seconds)
2022-07-13 09:29:31 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2022-07-13 09:29:35 +0200dcoutts(~duncan@host165-120-97-107.range165-120.btcentralplus.com)
2022-07-13 09:31:17 +0200 <albet70> I use 'cabal v2-install --lib scotty' to install scotty, but runghc told me couldn't load module 'Network.Wai' ... a member of the hidden package 'wai-3.2.3'
2022-07-13 09:31:51 +0200 <albet70> why there always hidden package what the heck that supposed to be
2022-07-13 09:34:21 +0200 <[exa]> if you don't declare that you need the package, it's hidden. How do you compile your project? with ghc or with cabal?
2022-07-13 09:34:54 +0200Cajun(~Cajun@user/cajun) (Ping timeout: 252 seconds)
2022-07-13 09:35:58 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
2022-07-13 09:36:50 +0200dcoutts(~duncan@host165-120-97-107.range165-120.btcentralplus.com) (Ping timeout: 244 seconds)
2022-07-13 09:37:00 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net)
2022-07-13 09:37:20 +0200Cajun(~Cajun@user/cajun)
2022-07-13 09:37:21 +0200Tuplanolla(~Tuplanoll@91-159-69-97.elisa-laajakaista.fi)
2022-07-13 09:37:41 +0200dcoutts(~duncan@host213-122-124-201.range213-122.btcentralplus.com)
2022-07-13 09:38:19 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-13 09:39:36 +0200 <jackdk> I'm about to run out the door, but I think albet70 just needs to be set up with a cabal package for his work, so that he can add any dependencies that he needs
2022-07-13 09:39:38 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-07-13 09:40:00 +0200dcoutts_(~duncan@host213-122-124-145.range213-122.btcentralplus.com)
2022-07-13 09:40:32 +0200acidjnk_new(~acidjnk@p200300d6e7058698ed7ff12f14b44c79.dip0.t-ipconnect.de)
2022-07-13 09:40:59 +0200Guest|38(~Guest|38@89.253.138.59)
2022-07-13 09:42:02 +0200dcoutts__(~duncan@host213-122-124-189.range213-122.btcentralplus.com)
2022-07-13 09:42:17 +0200MajorBiscuit(~MajorBisc@86-88-79-148.fixed.kpn.net)
2022-07-13 09:42:32 +0200dcoutts(~duncan@host213-122-124-201.range213-122.btcentralplus.com) (Ping timeout: 244 seconds)
2022-07-13 09:44:23 +0200`2jt(~jtomas@141.red-88-17-65.dynamicip.rima-tde.net) (Remote host closed the connection)
2022-07-13 09:44:36 +0200dcoutts_(~duncan@host213-122-124-145.range213-122.btcentralplus.com) (Ping timeout: 244 seconds)
2022-07-13 09:48:22 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-07-13 09:49:38 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 268 seconds)
2022-07-13 09:49:57 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Ping timeout: 272 seconds)
2022-07-13 09:52:00 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-13 09:52:29 +0200chomwitt(~chomwitt@2a02:587:dc0d:4a00:99fe:ae00:5424:6d23)
2022-07-13 09:55:19 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2022-07-13 09:55:21 +0200jumper149(~jumper149@2001:a61:51a8:e202:d123:92ae:67ca:73e3)
2022-07-13 09:55:24 +0200jumper149(~jumper149@2001:a61:51a8:e202:d123:92ae:67ca:73e3) (Client Quit)
2022-07-13 09:55:47 +0200jgeerds(~jgeerds@55d437cf.access.ecotel.net)
2022-07-13 09:55:49 +0200jumper149(~jumper149@2001:a61:51a8:e202:d123:92ae:67ca:73e3)
2022-07-13 09:55:59 +0200jumper149(~jumper149@2001:a61:51a8:e202:d123:92ae:67ca:73e3) (Client Quit)
2022-07-13 09:56:28 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-07-13 09:58:41 +0200jumper149(~jumper149@2001:a61:51a8:e202:d123:92ae:67ca:73e3)
2022-07-13 09:58:52 +0200chele(~chele@user/chele)
2022-07-13 09:58:59 +0200jumper149(~jumper149@2001:a61:51a8:e202:d123:92ae:67ca:73e3) (Client Quit)
2022-07-13 09:59:19 +0200machinedgod(~machinedg@d172-219-86-154.abhsia.telus.net)
2022-07-13 10:05:16 +0200fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-07-13 10:05:21 +0200lottaquestions(~nick@S0106a84e3f794893.ca.shawcable.net)
2022-07-13 10:05:23 +0200 <fockerize> [1..10] ^. ix 1 :: (Num a, Enum a, Monoid a) => a
2022-07-13 10:05:38 +0200 <fockerize> it complains Int not a Monoid
2022-07-13 10:05:56 +0200 <Axman6> Int is not a monoid
2022-07-13 10:06:07 +0200 <Axman6> % :t ix
2022-07-13 10:06:07 +0200 <yahb2> <interactive>:1:1: error: ; • Variable not in scope: ix ; • Perhaps you meant one of these: ; ‘id’ (imported from Prelude), ‘it’ (line 94)
2022-07-13 10:06:17 +0200 <Axman6> % :t Control.Lens.At.ix
2022-07-13 10:06:17 +0200 <c_wraith> what happens if there is no value at index 1 in the list?
2022-07-13 10:06:17 +0200 <yahb2> <interactive>:1:1: error: ; Not in scope: ‘Control.Lens.At.ix’ ; No module named ‘Control.Lens.At’ is imported.
2022-07-13 10:06:45 +0200 <Axman6> you possibly want to use ^?
2022-07-13 10:06:55 +0200 <c_wraith> or at instead of ix
2022-07-13 10:07:10 +0200 <fockerize> do i need to unwrap from a maybe?
2022-07-13 10:07:16 +0200 <Axman6> % [1.. 10 :: Int] ^. ix 1
2022-07-13 10:07:16 +0200 <yahb2> <interactive>:136:17: error: ; • Variable not in scope: (^.) :: [Int] -> t0 -> t ; • Perhaps you meant one of these: ; ‘^’ (imported from Prelude), ‘.’ (imported from Prelude), ; ...
2022-07-13 10:07:28 +0200 <Axman6> % import Control.Lens
2022-07-13 10:07:28 +0200 <yahb2> <no location info>: error: ; Could not find module ‘Control.Lens’ ; It is not a module in the current program, or in any known package.
2022-07-13 10:07:32 +0200 <Axman6> D:
2022-07-13 10:07:41 +0200 <c_wraith> just use lambdabot
2022-07-13 10:07:45 +0200 <Axman6> why is yahb2 so uninformed
2022-07-13 10:07:52 +0200 <Axman6> does lambdabot have any of the lens stuff?
2022-07-13 10:07:53 +0200 <c_wraith> > [1 .. 10] ^. at 1
2022-07-13 10:07:55 +0200 <lambdabot> error:
2022-07-13 10:07:55 +0200 <lambdabot> • No instance for (At [Integer]) arising from a use of ‘e_11101’
2022-07-13 10:07:55 +0200 <lambdabot> • In the expression: e_11101
2022-07-13 10:08:12 +0200 <c_wraith> oh, right. lists can't be At
2022-07-13 10:08:18 +0200 <c_wraith> > [1 .. 10] ^? ix 1
2022-07-13 10:08:20 +0200 <lambdabot> Just 2
2022-07-13 10:08:29 +0200dcoutts_(~duncan@host213-122-124-249.range213-122.btcentralplus.com)
2022-07-13 10:09:34 +0200 <fockerize> [1..10] ^. pre (ix 1) . non 0
2022-07-13 10:09:38 +0200ccntrq(~Thunderbi@2a01:c22:90b1:6100:1d89:f6ad:e13f:6833)
2022-07-13 10:09:42 +0200 <fockerize> > [1..10] ^. pre (ix 1) . non 0
2022-07-13 10:09:44 +0200 <lambdabot> 2
2022-07-13 10:10:12 +0200 <fockerize> ok just checking if there's other canonical way of doing this
2022-07-13 10:10:30 +0200 <Axman6> > [1.. 10::Int] ^? ix 1
2022-07-13 10:10:32 +0200 <lambdabot> Just 2
2022-07-13 10:10:38 +0200 <fockerize> > [1..10] ^. pre (ix 11) . non 0
2022-07-13 10:10:40 +0200 <lambdabot> 0
2022-07-13 10:11:29 +0200dcoutts__(~duncan@host213-122-124-189.range213-122.btcentralplus.com) (Ping timeout: 272 seconds)
2022-07-13 10:13:42 +0200lottaquestions(~nick@S0106a84e3f794893.ca.shawcable.net) (Quit: Konversation terminated!)
2022-07-13 10:14:39 +0200benin0(~benin@183.82.29.162) (Ping timeout: 272 seconds)
2022-07-13 10:14:45 +0200 <Profpatsch> When I have a left fold from postgres, I guess I don’t want to use a [] as the intermediate result type right?
2022-07-13 10:15:06 +0200 <Profpatsch> cause append is horrible
2022-07-13 10:15:53 +0200 <Profpatsch> In the same vein, is Validation (NonEmpty err) a even a good idea?
2022-07-13 10:16:04 +0200 <Profpatsch> When using it with applicative instances that is
2022-07-13 10:17:24 +0200chomwitt(~chomwitt@2a02:587:dc0d:4a00:99fe:ae00:5424:6d23) (Ping timeout: 276 seconds)
2022-07-13 10:18:44 +0200mud(~mud@user/kadoban) (Remote host closed the connection)
2022-07-13 10:19:02 +0200Katarushisu(~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
2022-07-13 10:19:04 +0200 <Profpatsch> But looks like there isn’t even a Map.fromSeq
2022-07-13 10:19:09 +0200mud(~mud@user/kadoban)
2022-07-13 10:21:30 +0200phma(phma@2001:5b0:211c:eca8:4705:335b:2d2:d9c2) (Read error: Connection reset by peer)
2022-07-13 10:22:25 +0200raym(~raym@user/raym) (Quit: kernel update, rebooting...)
2022-07-13 10:22:30 +0200phma(phma@2001:5b0:211f:568:3cfb:a496:a509:3082)
2022-07-13 10:22:44 +0200thaumavorio(~thaumavor@thaumavor.io) (Quit: ZNC 1.8.2 - https://znc.in)
2022-07-13 10:24:01 +0200thaumavorio(~thaumavor@thaumavor.io)
2022-07-13 10:24:14 +0200dextaa8dextaa
2022-07-13 10:25:20 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-13 10:27:22 +0200Midjak(~Midjak@82.66.147.146)
2022-07-13 10:28:29 +0200dcoutts(~duncan@host86-177-125-93.range86-177.btcentralplus.com)
2022-07-13 10:29:38 +0200kuribas(~user@silversquare.silversquare.eu)
2022-07-13 10:30:02 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-07-13 10:30:19 +0200 <kuribas> ugh, my project for making a record of lenses is going totally out of hand...
2022-07-13 10:30:35 +0200dcoutts_(~duncan@host213-122-124-249.range213-122.btcentralplus.com) (Ping timeout: 244 seconds)
2022-07-13 10:31:39 +0200 <kuribas> using generics
2022-07-13 10:31:50 +0200wagle(~wagle@quassel.wagle.io) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
2022-07-13 10:31:59 +0200 <kuribas> Now I am using an existential to hide a type variable, then unsafeCoerce to pull it out again.
2022-07-13 10:32:13 +0200 <kuribas> I wonder if I shouldn't just scrap the idea, and go with template haskell instead.
2022-07-13 10:32:16 +0200wagle(~wagle@quassel.wagle.io)
2022-07-13 10:32:30 +0200 <kuribas> The generics will be probably slower as well.
2022-07-13 10:32:46 +0200 <fockerize> I have a MyData record type which contains a field(MyField) of type Num. how to make instance Num MyData to be the same as the field MyField?
2022-07-13 10:32:59 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-07-13 10:33:27 +0200 <fockerize> so that I don't have to define all the functions required by the class Num
2022-07-13 10:33:32 +0200 <kuribas> fockerize: you cannot
2022-07-13 10:33:33 +0200 <fockerize> by hand
2022-07-13 10:33:35 +0200 <kuribas> unless it's a newtype
2022-07-13 10:33:51 +0200Pickchea(~private@user/pickchea)
2022-07-13 10:34:11 +0200 <fockerize> kuribas: that's sad
2022-07-13 10:34:11 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Ping timeout: 244 seconds)
2022-07-13 10:34:12 +0200mvk(~mvk@2607:fea8:5ce3:8500::909a) (Ping timeout: 244 seconds)
2022-07-13 10:35:52 +0200 <merijn> fockerize: Also, that sounds like a terrible idea that should not be attempted >.>
2022-07-13 10:36:06 +0200 <kuribas> that also
2022-07-13 10:36:47 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-07-13 10:36:54 +0200 <merijn> Whenever you think "I want X to be an instance of Num" and you are *not* writing an algebra library where X is something resembling a number, just go for a walk until the insanity passes :)
2022-07-13 10:37:00 +0200 <kuribas> fockerize: make lenses for your record.
2022-07-13 10:37:24 +0200 <kuribas> fockerize: then you can update the field using "over myFieldLens"
2022-07-13 10:37:32 +0200 <kuribas> :t over
2022-07-13 10:37:34 +0200 <lambdabot> ASetter s t a b -> (a -> b) -> s -> t
2022-07-13 10:37:53 +0200 <kuribas> much saner
2022-07-13 10:37:59 +0200 <kuribas> and also more general
2022-07-13 10:39:47 +0200 <kuribas> or with generic-lens: over field @"myField" (* 2)
2022-07-13 10:44:16 +0200 <kuribas> https://hackage.haskell.org/package/generic-lens-2.2.1.0/docs/Data-Generics-Product-Fields.html#v:…
2022-07-13 10:44:59 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-07-13 10:44:59 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Write error: Connection reset by peer)
2022-07-13 10:44:59 +0200noteness(~noteness@user/noteness) (Write error: Connection reset by peer)
2022-07-13 10:44:59 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Write error: Connection reset by peer)
2022-07-13 10:44:59 +0200winny(~weechat@user/winny) (Read error: Connection reset by peer)
2022-07-13 10:44:59 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Read error: Connection reset by peer)
2022-07-13 10:44:59 +0200califax(~califax@user/califx) (Read error: Connection reset by peer)
2022-07-13 10:45:10 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) (Remote host closed the connection)
2022-07-13 10:45:21 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-07-13 10:45:22 +0200califax(~califax@user/califx)
2022-07-13 10:45:23 +0200noteness(~noteness@user/noteness)
2022-07-13 10:45:24 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-07-13 10:45:30 +0200winny(~weechat@user/winny)
2022-07-13 10:45:32 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-07-13 10:46:04 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-07-13 10:46:14 +0200nate4(~nate@98.45.169.16)
2022-07-13 10:46:33 +0200winny(~weechat@user/winny) (Remote host closed the connection)
2022-07-13 10:46:40 +0200ubert(~Thunderbi@91.141.39.36.wireless.dyn.drei.com)
2022-07-13 10:46:58 +0200winny(~weechat@user/winny)
2022-07-13 10:48:08 +0200Pickchea(~private@user/pickchea) (Ping timeout: 244 seconds)
2022-07-13 10:50:18 +0200jargon(~jargon@184.101.188.251) (Remote host closed the connection)
2022-07-13 10:50:34 +0200schweers(~user@p200300e34f1b3c008e5a2f37be14a79a.dip0.t-ipconnect.de)
2022-07-13 10:50:58 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-07-13 10:51:55 +0200nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-07-13 10:54:51 +0200 <albet70> I have a cabal project named "upload-files", and "cd upload-files; cabal init" got upload-files.cabal, now there's a cabal project called scotty-login-session on github, I git clone it into my upload-files, now how can use the third party modules in my code by config cabal.project?
2022-07-13 10:55:36 +0200 <albet70> I read the doc about cabal.project, sorry I don't get it
2022-07-13 10:57:11 +0200 <albet70> I know I can just cd scotty-login-session and use cabal v2-install --lib to install it, then config upload-files.cabal to use it, is there other proper way?
2022-07-13 10:58:15 +0200 <albet70> I can't find kind of this question on google, it's so few people to use it?
2022-07-13 10:58:28 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-13 10:59:57 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net)
2022-07-13 11:00:15 +0200Guest|38(~Guest|38@89.253.138.59) (Ping timeout: 272 seconds)
2022-07-13 11:02:37 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-07-13 11:02:39 +0200dcoutts_(~duncan@host86-158-23-99.range86-158.btcentralplus.com)
2022-07-13 11:03:00 +0200dcoutts(~duncan@host86-177-125-93.range86-177.btcentralplus.com) (Ping timeout: 260 seconds)
2022-07-13 11:07:51 +0200noteness(~noteness@user/noteness) (Remote host closed the connection)
2022-07-13 11:08:06 +0200noteness(~noteness@user/noteness)
2022-07-13 11:10:07 +0200`2jt(~jtomas@84.78.228.192)
2022-07-13 11:10:16 +0200wz1000(~zubin@static.11.113.47.78.clients.your-server.de)
2022-07-13 11:13:21 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-07-13 11:14:40 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-13 11:14:40 +0200Igloo(~ian@matrix.chaos.earth.li)
2022-07-13 11:14:43 +0200coot(~coot@213.134.190.95)
2022-07-13 11:15:27 +0200noctux(~noctux@user/noctux) (Read error: Connection reset by peer)
2022-07-13 11:16:03 +0200ix(~ix@82-71-2-184.dsl.in-addr.zen.co.uk) (Ping timeout: 244 seconds)
2022-07-13 11:16:48 +0200Pickchea(~private@user/pickchea)
2022-07-13 11:17:36 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2022-07-13 11:18:47 +0200bjobjo(~bjobjo@user/bjobjo) (Quit: leaving)
2022-07-13 11:18:58 +0200gmg(~user@user/gehmehgeh)
2022-07-13 11:24:25 +0200 <[exa]> albet70: the "install it" goes to local project directories, it is still separated from other packages. Do you see the example on the top of the cabal.project docs?
2022-07-13 11:25:44 +0200Guest|38(~Guest|38@89.253.138.59)
2022-07-13 11:25:50 +0200 <[exa]> the only thing from that you need is the first line -- just put it into your "upload-files" directory next to "upload-files.cabal", i.e. into file "upload-files/cabal.project"
2022-07-13 11:26:05 +0200 <[exa]> that tells cabal you have local packages in that directory's subdirectories
2022-07-13 11:26:37 +0200 <[exa]> then you put the scotty-login-session as a subdirectory there, i.e. you will have `upload-files/scotty-login-session`
2022-07-13 11:27:03 +0200 <[exa]> and then it should just work™
2022-07-13 11:27:38 +0200 <[exa]> (just checking -- do you have a dependency declared in upload-files.cabal? it should explicitly say that it needs the scotty-login-session package.)
2022-07-13 11:31:06 +0200pie__(~pie_bnc@user/pie/x-2818909) ()
2022-07-13 11:31:27 +0200pie_(~pie_bnc@user/pie/x-2818909)
2022-07-13 11:31:30 +0200noctux(~noctux@user/noctux)
2022-07-13 11:32:08 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-13 11:33:09 +0200 <albet70> "[exa] :the only thing from that you need is the first line -- just put it into your "upload-files" directory next to "upload-files.cabal", i.e. into file "upload-files/cabal.project"", the first line is "package: */*.cabal"? just write this into cabal.project?
2022-07-13 11:33:22 +0200 <albet70> "[exa] :(just checking -- do you have a dependency declared in upload-files.cabal? it should explicitly say that it needs the scotty-login-session package.)", yes, I do
2022-07-13 11:35:43 +0200mmhat(~mmh@p200300f1c7090757ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2022-07-13 11:36:32 +0200mc47(~mc47@xmonad/TheMC47)
2022-07-13 11:36:38 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-07-13 11:38:33 +0200ix(~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe)
2022-07-13 11:39:51 +0200 <albet70> now I have upload-files/scotty-login-session and upload-files/cabal.project, just one line "package: */*.cabal" in it, and in upload-files.cabal's build-depends, there is scotty-login-session, but when I run "cabal run " it tells no target given and no package in current directory
2022-07-13 11:41:15 +0200nschoe(~quassel@178.251.84.79) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-07-13 11:41:28 +0200nschoe(~quassel@178.251.84.79)
2022-07-13 11:44:35 +0200`2jt(~jtomas@84.78.228.192) (Ping timeout: 272 seconds)
2022-07-13 11:44:36 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-07-13 11:45:09 +0200ix(~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe) (Ping timeout: 276 seconds)
2022-07-13 11:45:40 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e)
2022-07-13 11:47:00 +0200hsman(~hsman@80.95.197.227)
2022-07-13 11:47:11 +0200drlkf(~drlkf@ns327185.ip-37-187-109.eu) (Quit: q=)
2022-07-13 11:47:44 +0200drlkf(~drlkf@ns327185.ip-37-187-109.eu)
2022-07-13 11:48:48 +0200mmhat(~mmh@p200300f1c7090754ee086bfffe095315.dip0.t-ipconnect.de)
2022-07-13 11:48:49 +0200 <hsman> Hello all! I recently started using Haskell and I like what I've seen so far. Can somebody please point me to a good, open-source project to learn from? \
2022-07-13 11:50:30 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) (Ping timeout: 268 seconds)
2022-07-13 11:54:33 +0200__monty__(~toonn@user/toonn)
2022-07-13 11:54:47 +0200 <[exa]> hsman: depends on what you want to learn. The whole hackage has "source" buttons, so you can literally click any function you like in the docs and see how people do it
2022-07-13 11:55:20 +0200 <[exa]> albet70: do you have `upload-files.cabal` ?
2022-07-13 11:55:35 +0200 <[exa]> that should be the starting point of your current project
2022-07-13 11:59:29 +0200 <hsman> I would like to learn how to structure the project, how to "include" files etc. My experience this far is only with the usual suspects (C++, Python etc) where you have quite a lot of liberty on how to organise files etc.
2022-07-13 11:59:42 +0200CiaoSen(~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-07-13 12:01:08 +0200 <hsman> albet70: I haven't used cabal
2022-07-13 12:01:23 +0200CiaoSen(~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Client Quit)
2022-07-13 12:04:00 +0200CiaoSen(~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-07-13 12:04:32 +0200Everything(~Everythin@37.115.210.35)
2022-07-13 12:05:48 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-13 12:07:27 +0200 <chreekat> albet70: it sounds like you just want to use scotty-login-session as a dependency in your project, right? If that's the case you don't want to download it manually, you just want to add it as a dependency in your project. You do that by editing your project's cabal file
2022-07-13 12:10:05 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-07-13 12:10:24 +0200 <chreekat> Also if you just want to use it as a dependency, you don't need to bother with cabal.project file yet. That's basically only for projects that contain multiple Haskell packages. But you've just got one so far, "upload-files"
2022-07-13 12:10:46 +0200`2jt(~jtomas@84.78.228.192)
2022-07-13 12:13:08 +0200 <[exa]> hsman: then this is probably for you https://wiki.haskell.org/How_to_write_a_Haskell_program
2022-07-13 12:13:20 +0200 <chreekat> hsman: a Haskell package is defined by a cabal file. Unfortunately I haven't approached this from the newcomer perspective in a while, and I don't know if any good tutorials or examples for getting started off the top of my head. Fwiw the cabal docs are at https://cabal.readthedocs.io/en/3.6/
2022-07-13 12:13:43 +0200Vajb(~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Ping timeout: 272 seconds)
2022-07-13 12:15:56 +0200 <chreekat> Ah it looks like https://en.m.wikibooks.org/wiki/Haskell/Packaging has a link to a simple example package
2022-07-13 12:16:16 +0200toluene(~toluene@user/toulene) (Quit: Ping timeout (120 seconds))
2022-07-13 12:16:18 +0200Vajb(~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi)
2022-07-13 12:16:21 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 276 seconds)
2022-07-13 12:17:48 +0200toluene(~toluene@user/toulene)
2022-07-13 12:18:10 +0200merijn(~merijn@86.86.29.250)
2022-07-13 12:18:18 +0200 <albet70> "🟢 [exa] :albet70: do you have `upload-files.cabal` ?", yes, I have
2022-07-13 12:18:18 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 240 seconds)
2022-07-13 12:18:50 +0200Everything(~Everythin@37.115.210.35) ()
2022-07-13 12:19:25 +0200 <hsman> Thanks. I'll have a look
2022-07-13 12:19:58 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
2022-07-13 12:22:10 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-13 12:24:16 +0200 <schweers> Since I recently ran `stack clean` on my project, my builds fail with this mysterious error: https://pastebin.com/gZx9bBD4 Does anyone have an idea what might be going on here?
2022-07-13 12:26:53 +0200erisco(~erisco@d24-57-249-233.home.cgocable.net) (Read error: Connection reset by peer)
2022-07-13 12:27:12 +0200erisco(~erisco@d24-57-249-233.home.cgocable.net)
2022-07-13 12:28:36 +0200fjmorazan(~quassel@user/fjmorazan) (Remote host closed the connection)
2022-07-13 12:29:45 +0200fjmorazan(~quassel@user/fjmorazan)
2022-07-13 12:30:35 +0200jgeerds(~jgeerds@55d437cf.access.ecotel.net) (Ping timeout: 268 seconds)
2022-07-13 12:30:37 +0200 <schweers> On a possibly related note: are there known problems with both cabal and stack when using debian unstable? I get warnings about GHC being very new. Also cabal won’t build my project, because it can’t satisfy the dependencies for some reason. It seems to be a problem with different versions.
2022-07-13 12:31:12 +0200alexhandy2(~trace@user/trace)
2022-07-13 12:31:32 +0200MajorBiscuit(~MajorBisc@86-88-79-148.fixed.kpn.net) (Quit: WeeChat 3.5)
2022-07-13 12:33:23 +0200MajorBiscuit(~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net)
2022-07-13 12:33:42 +0200cfricke(~cfricke@user/cfricke)
2022-07-13 12:34:11 +0200alexhandy(~trace@user/trace) (Read error: Connection reset by peer)
2022-07-13 12:34:17 +0200CiaoSen(~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2022-07-13 12:34:23 +0200alexhandy(~trace@user/trace)
2022-07-13 12:36:13 +0200ccapndave(~ccapndave@xcpe-194-230-18-110.cgn.res.adslplus.ch)
2022-07-13 12:36:56 +0200phma(phma@2001:5b0:211f:568:3cfb:a496:a509:3082) (Read error: Connection reset by peer)
2022-07-13 12:37:40 +0200alexhandy2(~trace@user/trace) (Ping timeout: 244 seconds)
2022-07-13 12:37:42 +0200phma(~phma@host-67-44-208-126.hnremote.net)
2022-07-13 12:39:10 +0200 <chreekat> schweers: that warning looks specific to stack, which I hear doesn't support certain versions of ghc yet. In general, the interplay of versions of Haskell software (compiler, build tools, libraries) is sufficiently complex that relying on distro packages nearly doesn't work. For libraries you can rely on cabal/stack, and for compilers and cabal/stack themselves you can look at ghcup
2022-07-13 12:40:32 +0200jmorris(uid537181@id-537181.uxbridge.irccloud.com)
2022-07-13 12:40:56 +0200 <schweers> So the general recommendation of the haskell community is to use ghcup instead of distro packages?
2022-07-13 12:41:14 +0200 <maerwald> schweers: that's an excellent choice
2022-07-13 12:44:33 +0200 <Clint> schweers: unstable is a mess right now due to the GHC 9 transition; if you want something usable you'd need to use stable or testing
2022-07-13 12:47:03 +0200 <[exa]> schweers: distro packages usually serve for powering the distro haskell software distribution (e.g., compiling pandoc for debians), which is very likely not what you want as a programmer
2022-07-13 12:47:31 +0200 <[exa]> albet70: where do you run the 'cabal install' ? should be next to that upload-files.cabal file.
2022-07-13 12:48:08 +0200 <schweers> I see that it’s a mess at the time. I normally prefer to use distro packages, but it seems that for many languages that’s no longer a good choice.
2022-07-13 12:49:06 +0200ccapndave(~ccapndave@xcpe-194-230-18-110.cgn.res.adslplus.ch) (Quit: Textual IRC Client: www.textualapp.com)
2022-07-13 12:49:13 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-07-13 12:50:32 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-07-13 12:51:18 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-07-13 12:51:28 +0200 <john> Hi .. I have a type signature munge :: (x -> y) -> (y -> (w, z)) -> x -> w for which the implementation in haskell book is
2022-07-13 12:51:49 +0200 <john> munge :: (x -> y) -> (y -> (w, z)) -> x -> w
2022-07-13 12:52:13 +0200 <john> sorry
2022-07-13 12:52:37 +0200 <john> munge xy ywz x = fst $ ywz $ xy x
2022-07-13 12:52:48 +0200 <john> how did they get the fst function here ??
2022-07-13 12:53:14 +0200 <john> :t munge xy ywz x = fst $ ywz $ xy x
2022-07-13 12:53:15 +0200 <lambdabot> error: parse error on input ‘=’
2022-07-13 12:54:05 +0200Guest|38(~Guest|38@89.253.138.59) (Ping timeout: 255 seconds)
2022-07-13 12:55:17 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net)
2022-07-13 12:56:28 +0200 <geekosaur> :t let munge xy ywz x = fst $ ywz $ xy x in munge
2022-07-13 12:56:29 +0200 <lambdabot> (t1 -> t2) -> (t2 -> (a, b)) -> t1 -> a
2022-07-13 12:57:41 +0200Julius(~Julius@ip5f5abb4c.dynamic.kabel-deutschland.de)
2022-07-13 12:58:16 +0200Julius(~Julius@ip5f5abb4c.dynamic.kabel-deutschland.de) (Client Quit)
2022-07-13 12:59:01 +0200 <geekosaur> and I don't really understand the question, beyond that `ywz` is returning `(a,b)` so if we want just `a` then we have to use `fst`
2022-07-13 12:59:08 +0200absence_absence
2022-07-13 13:00:03 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2022-07-13 13:00:03 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-07-13 13:00:04 +0200 <john> "ywz is returning (a,b)" ?
2022-07-13 13:00:39 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-07-13 13:01:10 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-07-13 13:01:19 +0200 <geekosaur> this comes from the type signature, compared to what the function is doing
2022-07-13 13:01:30 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2022-07-13 13:01:39 +0200 <john> geekosaur: Can you explain the type signature "munge :: (x -> y) -> (y -> (w, z)) -> x -> w"
2022-07-13 13:01:49 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-07-13 13:01:56 +0200jgeerds(~jgeerds@55d437cf.access.ecotel.net)
2022-07-13 13:01:57 +0200 <geekosaur> yes, based on the implementation
2022-07-13 13:01:59 +0200pmarg(~pmarg@2a01:799:159f:9b00:6584:89a5:7099:99c5)
2022-07-13 13:02:17 +0200cheater(~Username@user/cheater) (Quit: Bitchx: Better than peer)
2022-07-13 13:02:18 +0200 <albet70> "🟢 [exa] :albet70: where do you run the 'cabal install' ? should be next to that upload-files.cabal file.", you mean I need to run "cabal install" inside upload-files before "cabal run"?
2022-07-13 13:02:21 +0200 <geekosaur> fst (ywz (xy x))
2022-07-13 13:02:45 +0200 <geekosaur> (turning the `$`s into parentheses to show that it's function application)
2022-07-13 13:03:22 +0200 <geekosaur> so this indicates that `ywz` and `xy` must be functions, and the type signature is showing you the types of these functions
2022-07-13 13:04:07 +0200 <geekosaur> `xy` is a function from `x` to `y`, and `ywz` is a function from `y` to a tuple `(w,z)`
2022-07-13 13:04:15 +0200 <john> I understood munge as a function which takes xy which in turn takes another function ywz which in turn takes an argument x resulting in an output w" .. does that sound right?
2022-07-13 13:04:28 +0200 <geekosaur> not quite
2022-07-13 13:04:49 +0200 <geekosaur> `xy` does not take that function. `munge xy` does
2022-07-13 13:05:01 +0200 <john> yes
2022-07-13 13:05:22 +0200 <geekosaur> (partial application, that is)
2022-07-13 13:05:25 +0200 <john> yes
2022-07-13 13:05:35 +0200 <geekosaur> `xy` is just a function from `x` to `y`
2022-07-13 13:05:41 +0200 <john> ok
2022-07-13 13:05:53 +0200 <geekosaur> `ywz` is a function from `y` to `(w,z)`
2022-07-13 13:05:56 +0200mjacob(~mjacob@adrastea.uberspace.de) (Read error: Connection reset by peer)
2022-07-13 13:06:05 +0200 <john> ok
2022-07-13 13:06:09 +0200 <geekosaur> then we want, according to the type of `munge`, just the `w`
2022-07-13 13:06:18 +0200 <geekosaur> so it applies `fst` to the result
2022-07-13 13:06:49 +0200 <john> in such a scenario.. y refers to the function fst?
2022-07-13 13:07:15 +0200 <geekosaur> it *is* kinda difficul;t to trace through this because it all looks like type variable soup 🙂 but if you trace through them it becomes fairly obvious
2022-07-13 13:07:23 +0200 <geekosaur> no
2022-07-13 13:07:38 +0200 <geekosaur> `fst` is not a parameter, it's a function from the Prelude
2022-07-13 13:07:43 +0200 <john> yes
2022-07-13 13:08:11 +0200 <geekosaur> `y` is the same `y` produced by `xy`
2022-07-13 13:08:42 +0200 <john> ok
2022-07-13 13:10:09 +0200 <geekosaur> in some sense you can think of `$` as pipelining values from one function to another, so `ywz $ xy x` computes `xy x` and sends the result to `ywz`
2022-07-13 13:10:13 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-07-13 13:10:20 +0200 <geekosaur> then the result of that is sent to `fst`
2022-07-13 13:10:24 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-07-13 13:10:26 +0200cheater(~Username@user/cheater)
2022-07-13 13:10:54 +0200 <geekosaur> (in general function application and function composition go right to left, not left to right)
2022-07-13 13:11:21 +0200 <john> and that necessarily has to give the value (w,z) and we want to get w out so we apply fst ??
2022-07-13 13:11:42 +0200mjacob(~mjacob@adrastea.uberspace.de)
2022-07-13 13:12:22 +0200 <geekosaur> yes
2022-07-13 13:12:29 +0200 <john> got it..
2022-07-13 13:12:35 +0200bontaq`(~user@ool-45779fe5.dyn.optonline.net)
2022-07-13 13:13:49 +0200 <john> one more advice.. you mentioned tracing through the it.. how do you do it.? I understand when you have real values you can compute / solve a bit and see if its lining along but how do you do it with abstract values?
2022-07-13 13:15:22 +0200 <geekosaur> you can still see the flow of types. you also need the implementation as guidance, though
2022-07-13 13:15:31 +0200hpc(~juzz@ip98-169-32-242.dc.dc.cox.net)
2022-07-13 13:15:38 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2022-07-13 13:16:28 +0200xff0x(~xff0x@2405:6580:b080:900:226f:8243:60d1:9235)
2022-07-13 13:16:28 +0200 <geekosaur> but, for example, since `w` only appears in the tuple `(w,z)` and as the result type, you can tell immediately that the tuple must be the result of `ywz`
2022-07-13 13:16:38 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-07-13 13:16:38 +0200bjobjo(~bjobjo@user/bjobjo)
2022-07-13 13:17:05 +0200 <john> ok
2022-07-13 13:17:18 +0200 <absence> is there a way to "rebalance" tuples automatically, e.g. ((x, y), z) -> (x, (y, z)), without spelling out all possible permutations? i realise that such tuples are different types, so i guess it would involve something like generics/th
2022-07-13 13:17:51 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-07-13 13:18:15 +0200 <geekosaur> yeh, probably generics
2022-07-13 13:19:00 +0200zxx7529(~Thunderbi@user/zxx7529) (Ping timeout: 244 seconds)
2022-07-13 13:19:10 +0200 <geekosaur> it's kinda unfortunate that tuples don't behave somewhat like lists (iirc they do in some other haskell-like languages😞 (a,b,c) is actually (a,(b,c)), and so on
2022-07-13 13:20:12 +0200 <fockerize> any web scrapers that also supports modification or updates?
2022-07-13 13:20:37 +0200 <fockerize> I'm fond of the scalpel library, but it can't update files
2022-07-13 13:22:10 +0200 <absence> geekosaur: that sounds nice... do you know if there's a library that already does something like that with generics?
2022-07-13 13:22:45 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-07-13 13:23:01 +0200 <geekosaur[m]> Not offhand
2022-07-13 13:26:19 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-13 13:27:50 +0200john(~john@60.254.0.204) (Ping timeout: 255 seconds)
2022-07-13 13:30:25 +0200nate4(~nate@98.45.169.16)
2022-07-13 13:32:50 +0200jgeerds(~jgeerds@55d437cf.access.ecotel.net) (Ping timeout: 240 seconds)
2022-07-13 13:33:17 +0200jtomas(~jtomas@84.78.228.192)
2022-07-13 13:34:13 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2022-07-13 13:34:38 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-07-13 13:34:50 +0200`2jt(~jtomas@84.78.228.192) (Read error: Connection reset by peer)
2022-07-13 13:35:15 +0200nate4(~nate@98.45.169.16) (Ping timeout: 260 seconds)
2022-07-13 13:36:08 +0200`2jt(~jtomas@84.78.228.192)
2022-07-13 13:37:02 +0200 <schweers> Can someone explain this cabal line to me? [__1] rejecting: base-4.14.3.0/installed-4.14.3.0 (conflict: aufb => base^>=4.11.3.0 && <5)
2022-07-13 13:37:06 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-07-13 13:37:17 +0200 <schweers> Why does 4.14.3 not satisfy >=4.11.3.0?
2022-07-13 13:37:31 +0200 <schweers> Also: what does ^>= mean, compared to >=?
2022-07-13 13:38:10 +0200jtomas(~jtomas@84.78.228.192) (Ping timeout: 260 seconds)
2022-07-13 13:38:49 +0200 <merijn> schweers: See the 2nd half of: https://cabal.readthedocs.io/en/3.6/cabal-package.html#pkg-field-build-depends
2022-07-13 13:39:19 +0200cheater(~Username@user/cheater) (Quit: (BitchX) If you gaze into the abyss, the abyss gazes also into you)
2022-07-13 13:40:18 +0200 <schweers> Oh, I see, thank you very much!
2022-07-13 13:40:45 +0200 <merijn> I'm guessing the <5 constraint comes from another package
2022-07-13 13:40:47 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-07-13 13:41:19 +0200 <merijn> And it's really just a conflict of ^>=4.11.3.0 not allowing 4.14
2022-07-13 13:41:40 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-13 13:42:19 +0200raym(~raym@user/raym)
2022-07-13 13:43:10 +0200[exa](exa@user/exa/x-3587197) (Ping timeout: 240 seconds)
2022-07-13 13:44:00 +0200[exa](exa@srv3.blesmrt.net)
2022-07-13 13:46:02 +0200emanon421(~emanon42@103.120.19.44)
2022-07-13 13:47:24 +0200cheater(~Username@user/cheater)
2022-07-13 13:47:37 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e)
2022-07-13 13:47:54 +0200emanon42(~emanon42@103.120.19.44) (Ping timeout: 272 seconds)
2022-07-13 13:47:54 +0200emanon421emanon42
2022-07-13 13:51:41 +0200merijn(~merijn@86.86.29.250) (Ping timeout: 255 seconds)
2022-07-13 13:52:04 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) (Ping timeout: 244 seconds)
2022-07-13 13:57:26 +0200john(~john@115.96.219.230)
2022-07-13 14:05:30 +0200bliminse(~bliminse@user/bliminse) (Ping timeout: 240 seconds)
2022-07-13 14:06:57 +0200cheater(~Username@user/cheater) (Read error: Connection reset by peer)
2022-07-13 14:07:28 +0200bliminse(~bliminse@user/bliminse)
2022-07-13 14:18:25 +0200merijn(~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl)
2022-07-13 14:21:11 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2022-07-13 14:23:55 +0200pmarg(~pmarg@2a01:799:159f:9b00:6584:89a5:7099:99c5) (Remote host closed the connection)
2022-07-13 14:27:45 +0200merijn(~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
2022-07-13 14:29:10 +0200`2jt(~jtomas@84.78.228.192) (Ping timeout: 240 seconds)
2022-07-13 14:29:28 +0200schweers(~user@p200300e34f1b3c008e5a2f37be14a79a.dip0.t-ipconnect.de) (Remote host closed the connection)
2022-07-13 14:30:47 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-07-13 14:31:13 +0200alexhandy2(~trace@user/trace)
2022-07-13 14:31:34 +0200dschrempf(~dominik@mobiledyn-62-240-134-33.mrsn.at)
2022-07-13 14:33:59 +0200alexhandy(~trace@user/trace) (Read error: Connection reset by peer)
2022-07-13 14:34:19 +0200alexhandy(~trace@user/trace)
2022-07-13 14:35:28 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2022-07-13 14:37:32 +0200alexhandy2(~trace@user/trace) (Ping timeout: 244 seconds)
2022-07-13 14:37:45 +0200pgas(~pg@190.247.245.154)
2022-07-13 14:38:25 +0200img(~img@user/img)
2022-07-13 14:39:47 +0200fserucas(~fserucas@89.214.118.110)
2022-07-13 14:39:51 +0200fserucas_(~fserucas@89.214.118.110)
2022-07-13 14:41:51 +0200zxx7529(~Thunderbi@user/zxx7529)
2022-07-13 14:42:24 +0200zxx7529(~Thunderbi@user/zxx7529) (Remote host closed the connection)
2022-07-13 14:42:37 +0200zxx7529(~Thunderbi@user/zxx7529)
2022-07-13 14:43:45 +0200Guest34(~Guest34@152.7.255.203)
2022-07-13 14:47:40 +0200phma(~phma@host-67-44-208-126.hnremote.net) (Read error: Connection reset by peer)
2022-07-13 14:47:58 +0200raym(~raym@user/raym) (Ping timeout: 240 seconds)
2022-07-13 14:48:19 +0200dextaa(~DV@user/dextaa) (Read error: Connection reset by peer)
2022-07-13 14:48:38 +0200phma(~phma@2001:5b0:211c:45d8:dcca:18c7:bf12:f383)
2022-07-13 14:50:22 +0200dextaa(~DV@user/dextaa)
2022-07-13 14:51:09 +0200dextaa(~DV@user/dextaa) (Read error: Connection reset by peer)
2022-07-13 14:51:55 +0200 <qrpnxz> there a way to get ghc to do an action when the garbage collector is called on an object?
2022-07-13 14:52:32 +0200ccntrq(~Thunderbi@2a01:c22:90b1:6100:1d89:f6ad:e13f:6833) (Ping timeout: 244 seconds)
2022-07-13 14:52:35 +0200bontaq`bontaq
2022-07-13 14:53:03 +0200 <qrpnxz> like __gc in lua
2022-07-13 14:53:22 +0200dextaa(~DV@user/dextaa)
2022-07-13 14:53:27 +0200 <kuribas> qrpnxz: if you use the FFI you can make your own finalizer.
2022-07-13 14:53:36 +0200 <kuribas> as far as I remember
2022-07-13 14:54:19 +0200 <qrpnxz> hmm thanks.
2022-07-13 14:54:33 +0200 <qrpnxz> Think i can get by with just a bracket actually, but that's good to know.
2022-07-13 14:54:35 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds)
2022-07-13 14:54:52 +0200merijn(~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl)
2022-07-13 14:55:56 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-13 14:56:58 +0200jpds1jpds
2022-07-13 14:59:07 +0200 <geekosaur> there is ForeignPtr
2022-07-13 14:59:38 +0200ccntrq(~Thunderbi@dynamic-095-112-112-176.95.112.pool.telefonica.de)
2022-07-13 14:59:38 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-13 15:00:23 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-07-13 15:01:06 +0200mima(~mmh@aftr-62-216-210-233.dynamic.mnet-online.de) (Quit: leaving)
2022-07-13 15:01:23 +0200ubert(~Thunderbi@91.141.39.36.wireless.dyn.drei.com) (Quit: ubert)
2022-07-13 15:01:31 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net)
2022-07-13 15:02:21 +0200shriekingnoise(~shrieking@201.212.175.181)
2022-07-13 15:03:20 +0200mvk(~mvk@2607:fea8:5ce3:8500::909a)
2022-07-13 15:06:39 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Ping timeout: 276 seconds)
2022-07-13 15:07:50 +0200Colere(~colere@about/linux/staff/sauvin) (Ping timeout: 240 seconds)
2022-07-13 15:08:33 +0200Colere(~colere@about/linux/staff/sauvin)
2022-07-13 15:09:28 +0200nate4(~nate@98.45.169.16)
2022-07-13 15:09:36 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 272 seconds)
2022-07-13 15:11:00 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-07-13 15:11:07 +0200Furor(~colere@about/linux/staff/sauvin)
2022-07-13 15:12:58 +0200john(~john@115.96.219.230) (Quit: Leaving)
2022-07-13 15:13:43 +0200Colere(~colere@about/linux/staff/sauvin) (Ping timeout: 244 seconds)
2022-07-13 15:14:29 +0200nate4(~nate@98.45.169.16) (Ping timeout: 255 seconds)
2022-07-13 15:18:01 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 272 seconds)
2022-07-13 15:19:18 +0200chomwitt(~chomwitt@2a02:587:dc0d:4a00:2f00:f9a4:8560:d503)
2022-07-13 15:20:20 +0200jmorris(uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2022-07-13 15:25:08 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-07-13 15:25:39 +0200ccntrq1(~Thunderbi@2a01:c23:9146:7000:ddce:cb28:98cc:4397)
2022-07-13 15:26:03 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-07-13 15:26:10 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-13 15:27:27 +0200ccntrq(~Thunderbi@dynamic-095-112-112-176.95.112.pool.telefonica.de) (Ping timeout: 276 seconds)
2022-07-13 15:27:27 +0200ccntrq1ccntrq
2022-07-13 15:28:45 +0200merijn(~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 276 seconds)
2022-07-13 15:29:36 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-07-13 15:32:11 +0200dcoutts_(~duncan@host86-158-23-99.range86-158.btcentralplus.com) (Remote host closed the connection)
2022-07-13 15:32:29 +0200dcoutts_(~duncan@host86-158-23-99.range86-158.btcentralplus.com)
2022-07-13 15:35:31 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net)
2022-07-13 15:36:01 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-13 15:36:33 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 276 seconds)
2022-07-13 15:38:21 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-13 15:39:16 +0200ystael(~ystael@user/ystael) (Quit: Lost terminal)
2022-07-13 15:40:36 +0200dcoutts(~duncan@host86-151-44-236.range86-151.btcentralplus.com)
2022-07-13 15:41:50 +0200dcoutts_(~duncan@host86-158-23-99.range86-158.btcentralplus.com) (Ping timeout: 240 seconds)
2022-07-13 15:42:34 +0200geschwindig(~John_Ivan@user/john-ivan/x-1515935)
2022-07-13 15:43:59 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds)
2022-07-13 15:45:40 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-13 15:49:26 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-07-13 15:49:33 +0200juri_(~juri@84-19-175-179.pool.ovpn.com)
2022-07-13 15:49:41 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
2022-07-13 15:50:45 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.5)
2022-07-13 15:51:12 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-07-13 15:51:20 +0200segfaultfizzbuzz(~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
2022-07-13 15:51:38 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
2022-07-13 15:53:38 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2022-07-13 15:54:24 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-13 15:55:41 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-07-13 15:56:13 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-13 15:57:06 +0200ix(~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe)
2022-07-13 15:57:21 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-13 15:57:38 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-07-13 15:58:34 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit)
2022-07-13 15:58:43 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2022-07-13 15:58:51 +0200dcoutts_(~duncan@host86-151-44-236.range86-151.btcentralplus.com)
2022-07-13 15:59:05 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-13 15:59:41 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-07-13 15:59:41 +0200dcoutts(~duncan@host86-151-44-236.range86-151.btcentralplus.com) (Ping timeout: 244 seconds)
2022-07-13 16:00:11 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-07-13 16:00:20 +0200raym(~raym@user/raym)
2022-07-13 16:00:37 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-07-13 16:01:13 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-13 16:02:10 +0200fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 272 seconds)
2022-07-13 16:03:10 +0200frost(~frost@user/frost) (Quit: Client closed)
2022-07-13 16:06:29 +0200dcoutts(~duncan@host86-151-44-236.range86-151.btcentralplus.com)
2022-07-13 16:07:50 +0200dcoutts_(~duncan@host86-151-44-236.range86-151.btcentralplus.com) (Ping timeout: 240 seconds)
2022-07-13 16:08:38 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
2022-07-13 16:10:20 +0200dcoutts_(~duncan@host86-176-29-82.range86-176.btcentralplus.com)
2022-07-13 16:10:44 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-13 16:11:13 +0200MajorBiscuit(~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net) (Ping timeout: 272 seconds)
2022-07-13 16:12:04 +0200MajorBiscuit(~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net)
2022-07-13 16:12:10 +0200dcoutts(~duncan@host86-151-44-236.range86-151.btcentralplus.com) (Ping timeout: 240 seconds)
2022-07-13 16:12:40 +0200dcoutts(~duncan@host86-167-90-210.range86-167.btcentralplus.com)
2022-07-13 16:14:07 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-13 16:14:41 +0200dcoutts_(~duncan@host86-176-29-82.range86-176.btcentralplus.com) (Ping timeout: 244 seconds)
2022-07-13 16:17:31 +0200fserucas__(~fserucas@1.75.114.89.rev.vodafone.pt)
2022-07-13 16:18:17 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-07-13 16:19:38 +0200fserucas_(~fserucas@89.214.118.110) (Ping timeout: 240 seconds)
2022-07-13 16:19:51 +0200fserucas_(~fserucas@1.75.114.89.rev.vodafone.pt)
2022-07-13 16:20:43 +0200fserucas(~fserucas@89.214.118.110) (Ping timeout: 272 seconds)
2022-07-13 16:24:15 +0200justsomeguy(~justsomeg@user/justsomeguy)
2022-07-13 16:27:57 +0200merijn(~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl)
2022-07-13 16:28:43 +0200 <maerwald[m]> https://www.haskell.org/onlinereport/haskell2010/haskellch2.html#x7-200002.6
2022-07-13 16:28:57 +0200 <maerwald[m]> I'm wondering if base's Char type violates the standard
2022-07-13 16:29:18 +0200 <maerwald[m]> As in: is the description of Char in the standard exhaustive?
2022-07-13 16:30:09 +0200 <maerwald[m]> Because it doesn't speak of unicode codepoint, it is much more specific. But it's not clear to me whether it demands only those properties
2022-07-13 16:30:18 +0200segfaultfizzbuzz(~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds)
2022-07-13 16:32:34 +0200elkcl(~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru)
2022-07-13 16:33:02 +0200 <dolio> https://www.haskell.org/onlinereport/haskell2010/haskellch6.html#x13-1190006.1.2
2022-07-13 16:33:41 +0200 <geekosaur> https://www.haskell.org/onlinereport/haskell2010/haskellch2.html#x7-160002.2 has it hidden in graphic
2022-07-13 16:34:19 +0200 <dolio> Or do you mean, it doesn't say you're allowed to use actual codepoints in a string?
2022-07-13 16:34:27 +0200 <geekosaur> interestingly, the spec disallows literal unicode whitespace
2022-07-13 16:35:03 +0200 <geekosaur> (since it calls for space instead of whitechar)
2022-07-13 16:35:41 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-13 16:35:43 +0200frost(~frost@user/frost)
2022-07-13 16:35:47 +0200 <maerwald[m]> dolio: Char allows surrogates even
2022-07-13 16:35:53 +0200 <maerwald[m]> I don't see that in the spec
2022-07-13 16:36:32 +0200 <maerwald[m]> This causes issues for IsString class
2022-07-13 16:36:44 +0200dextaa(~DV@user/dextaa) (Read error: Connection reset by peer)
2022-07-13 16:38:39 +0200 <geekosaur> (actually it also excludes literal tabs, which makes me think it's the standard that is buggy)
2022-07-13 16:38:57 +0200dextaa(~DV@user/dextaa)
2022-07-13 16:39:56 +0200 <dolio> What is the space lexeme used for?
2022-07-13 16:41:17 +0200 <geekosaur> it's used in the definition of whitechar which in turn is used in the definition of whitestuff
2022-07-13 16:41:35 +0200 <geekosaur> space → a space (https://www.haskell.org/onlinereport/haskell2010/haskellch2.html#x7-160002.2)
2022-07-13 16:41:36 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-07-13 16:42:38 +0200 <dolio> Yeah, I saw that. But I don't have an encyclopedic knowledge of everywhere else `space` is referred to. And without that, it's not obvious that having a symbol for exactly an ascii space is a bug.
2022-07-13 16:43:25 +0200 <geekosaur> I didn';t say it was. I said that using it in the definition of Char and String literals probably is, because it excludes both Unicode whitespace codepoints and literal tabs
2022-07-13 16:43:44 +0200 <geekosaur> and that whitechar was probably intended
2022-07-13 16:44:24 +0200jakalx(~jakalx@base.jakalx.net)
2022-07-13 16:45:09 +0200 <dolio> Can't be whitechar.
2022-07-13 16:45:24 +0200 <dolio> It'd have to be filtered, at least.
2022-07-13 16:45:25 +0200 <geekosaur> it also looks to me like grapheme covers most non-whitespace Unicode codepoints, so they're valid in Char and String literals. dunno on a quick look whether that would include surrogates
2022-07-13 16:45:27 +0200 <maerwald[m]> Unicode standard chapter 22 defines Symbols. From my understanding, that excludes surrogates
2022-07-13 16:45:30 +0200mvk(~mvk@2607:fea8:5ce3:8500::909a) (Ping timeout: 240 seconds)
2022-07-13 16:45:40 +0200 <dolio> Which I assume is what the subscript means.
2022-07-13 16:46:10 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.5)
2022-07-13 16:46:12 +0200nate4(~nate@98.45.169.16)
2022-07-13 16:46:43 +0200juri_(~juri@84-19-175-179.pool.ovpn.com) (Ping timeout: 244 seconds)
2022-07-13 16:46:53 +0200 <maerwald[m]> https://imgur.com/a/px8MqRQ
2022-07-13 16:49:19 +0200 <geekosaur> but I also think excluding surrogates from Char is a similar problem to excluding negative numbers from Word: for the most part it's defined at runtime, not compile time
2022-07-13 16:50:40 +0200 <geekosaur> literals should exclude them, but excluding them from base would require every operation on Char or String to check for them
2022-07-13 16:51:18 +0200nate4(~nate@98.45.169.16) (Ping timeout: 276 seconds)
2022-07-13 16:51:50 +0200 <maerwald[m]> geekosaur: yes but IsString doesn't just work on literals
2022-07-13 16:53:27 +0200juri_(~juri@dynamic-089-204-138-046.89.204.138.pool.telefonica.de)
2022-07-13 16:53:32 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e)
2022-07-13 16:54:26 +0200 <geekosaur> dolio, what did you mean by "can't be whitechar"?
2022-07-13 16:55:25 +0200 <geekosaur> oh, that newline would need to be filtered? (and probablky vertical tab)
2022-07-13 16:55:43 +0200 <geekosaur> that's unfortunate, yes
2022-07-13 16:55:59 +0200 <geekosaur> but then this feels like the whole grammar needs to be carefully gone over
2022-07-13 16:56:21 +0200chomwitt(~chomwitt@2a02:587:dc0d:4a00:2f00:f9a4:8560:d503) (Remote host closed the connection)
2022-07-13 16:56:40 +0200 <dolio> Right, it has stuff that can't be allowed in a character literal.
2022-07-13 16:56:42 +0200chomwitt(~chomwitt@2a02:587:dc0d:4a00:deae:e1cf:72:7368)
2022-07-13 16:57:09 +0200 <dolio> There needs to be a 'within line whitespace' token or something.
2022-07-13 16:57:27 +0200raym(~raym@user/raym) (Ping timeout: 272 seconds)
2022-07-13 16:57:38 +0200raym(~raym@user/raym)
2022-07-13 16:58:43 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds)
2022-07-13 16:59:04 +0200frost(~frost@user/frost) (Quit: Client closed)
2022-07-13 17:00:17 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-13 17:02:10 +0200merijn(~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
2022-07-13 17:02:23 +0200pgas(~pg@190.247.245.154) (Leaving)
2022-07-13 17:02:37 +0200pgas(~pg@190.247.245.154)
2022-07-13 17:04:10 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-07-13 17:05:09 +0200dcoutts_(~duncan@host86-167-90-210.range86-167.btcentralplus.com)
2022-07-13 17:11:01 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-07-13 17:11:07 +0200frost(~frost@user/frost)
2022-07-13 17:16:26 +0200merijn(~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl)
2022-07-13 17:16:55 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds)
2022-07-13 17:18:13 +0200yax(~yax@2402:e280:3e30:264:6382:23ae:df6a:b0e1)
2022-07-13 17:18:36 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-13 17:18:48 +0200cheater(~Username@user/cheater)
2022-07-13 17:18:55 +0200hgolden(~hgolden2@cpe-172-251-233-141.socal.res.rr.com)
2022-07-13 17:18:56 +0200yax(~yax@2402:e280:3e30:264:6382:23ae:df6a:b0e1) (Changing host)
2022-07-13 17:18:56 +0200yax(~yax@user/yax/x-9576643)
2022-07-13 17:18:57 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2022-07-13 17:19:21 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-07-13 17:19:24 +0200yax(~yax@user/yax/x-9576643) ()
2022-07-13 17:19:39 +0200yax(~yax@user/yax/x-9576643)
2022-07-13 17:19:55 +0200yaxyax__
2022-07-13 17:20:01 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-13 17:20:10 +0200ulvarrefr(~user@185.24.53.152)
2022-07-13 17:20:29 +0200yax__(~yax@user/yax/x-9576643) ()
2022-07-13 17:21:14 +0200yax__(~yax@user/yax/x-9576643)
2022-07-13 17:21:31 +0200merijn(~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds)
2022-07-13 17:22:08 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-07-13 17:23:04 +0200zebrag(~chris@user/zebrag)
2022-07-13 17:23:57 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-13 17:24:29 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-07-13 17:24:39 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-07-13 17:26:14 +0200nek0(~nek0@2a01:4f8:222:2b41::12) (Quit: The Lounge - https://thelounge.chat)
2022-07-13 17:27:12 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Ping timeout: 268 seconds)
2022-07-13 17:27:40 +0200nek0(~nek0@2a01:4f8:222:2b41::12)
2022-07-13 17:28:34 +0200juri_(~juri@dynamic-089-204-138-046.89.204.138.pool.telefonica.de) (Read error: Connection reset by peer)
2022-07-13 17:29:27 +0200chele(~chele@user/chele) (Remote host closed the connection)
2022-07-13 17:30:23 +0200PiDelport(uid25146@id-25146.lymington.irccloud.com)
2022-07-13 17:30:33 +0200juri_(~juri@dynamic-089-204-138-046.89.204.138.pool.telefonica.de)
2022-07-13 17:30:47 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-07-13 17:32:51 +0200segfaultfizzbuzz(~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
2022-07-13 17:35:11 +0200HaxCPUAndrew
2022-07-13 17:37:42 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) (Remote host closed the connection)
2022-07-13 17:39:33 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-07-13 17:40:30 +0200stonedHash
2022-07-13 17:41:01 +0200dcoutts__(~duncan@host86-155-218-160.range86-155.btcentralplus.com)
2022-07-13 17:41:23 +0200nschoe(~quassel@178.251.84.79) (Ping timeout: 268 seconds)
2022-07-13 17:42:26 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-07-13 17:43:32 +0200dcoutts(~duncan@host86-167-90-210.range86-167.btcentralplus.com) (Ping timeout: 244 seconds)
2022-07-13 17:43:45 +0200dcoutts_(~duncan@host86-167-90-210.range86-167.btcentralplus.com) (Ping timeout: 260 seconds)
2022-07-13 17:44:03 +0200biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2022-07-13 17:44:13 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-07-13 17:44:46 +0200frost(~frost@user/frost) (Ping timeout: 252 seconds)
2022-07-13 17:45:59 +0200dcoutts(~duncan@host86-150-18-52.range86-150.btcentralplus.com)
2022-07-13 17:46:06 +0200dcoutts_(~duncan@host86-150-18-52.range86-150.btcentralplus.com)
2022-07-13 17:46:50 +0200AndrewHaxCPU
2022-07-13 17:47:23 +0200schweers(~user@2001:9e8:be68:9d00:aaa1:59ff:fe3f:235c)
2022-07-13 17:47:51 +0200dcoutts__(~duncan@host86-155-218-160.range86-155.btcentralplus.com) (Ping timeout: 276 seconds)
2022-07-13 17:49:19 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-07-13 17:50:06 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Remote host closed the connection)
2022-07-13 17:50:14 +0200o-90(~o-90@gateway/tor-sasl/o-90)
2022-07-13 17:52:25 +0200o-90(~o-90@gateway/tor-sasl/o-90) (Remote host closed the connection)
2022-07-13 17:54:39 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-07-13 17:56:05 +0200skubcat(~Guest48@156.57.184.235)
2022-07-13 17:56:07 +0200dschrempf(~dominik@mobiledyn-62-240-134-33.mrsn.at) (Quit: WeeChat 3.5)
2022-07-13 17:56:23 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-13 17:57:36 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Ping timeout: 276 seconds)
2022-07-13 17:57:44 +0200 <sm> is there a more robust, featureful, portable regex lib than regex-tdfa these days ?
2022-07-13 17:58:53 +0200ccntrq(~Thunderbi@2a01:c23:9146:7000:ddce:cb28:98cc:4397) (Remote host closed the connection)
2022-07-13 17:59:12 +0200ccntrq(~Thunderbi@2a01:c23:9146:7000:ddce:cb28:98cc:4397)
2022-07-13 17:59:43 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2022-07-13 18:00:43 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-07-13 18:01:50 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net)
2022-07-13 18:02:06 +0200dcoutts(~duncan@host86-150-18-52.range86-150.btcentralplus.com) (Remote host closed the connection)
2022-07-13 18:02:29 +0200dcoutts(~duncan@host86-150-18-52.range86-150.btcentralplus.com)
2022-07-13 18:02:37 +0200dcoutts__(~duncan@host86-150-18-52.range86-150.btcentralplus.com)
2022-07-13 18:05:51 +0200dcoutts_(~duncan@host86-150-18-52.range86-150.btcentralplus.com) (Ping timeout: 272 seconds)
2022-07-13 18:06:16 +0200dcoutts_(~duncan@host86-150-18-52.range86-150.btcentralplus.com)
2022-07-13 18:07:30 +0200dcoutts(~duncan@host86-150-18-52.range86-150.btcentralplus.com) (Ping timeout: 240 seconds)
2022-07-13 18:07:38 +0200juri_(~juri@dynamic-089-204-138-046.89.204.138.pool.telefonica.de) (Ping timeout: 240 seconds)
2022-07-13 18:07:58 +0200segfaultfizzbuzz(~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds)
2022-07-13 18:08:23 +0200dcoutts__(~duncan@host86-150-18-52.range86-150.btcentralplus.com) (Ping timeout: 272 seconds)
2022-07-13 18:08:38 +0200acidjnk_new(~acidjnk@p200300d6e7058698ed7ff12f14b44c79.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-07-13 18:08:45 +0200dcoutts(~duncan@host86-150-18-52.range86-150.btcentralplus.com)
2022-07-13 18:09:30 +0200Guest8527(~Guest85@ti0185a400-0748.bb.online.no)
2022-07-13 18:09:38 +0200juri_(~juri@84-19-175-179.pool.ovpn.com)
2022-07-13 18:12:06 +0200MajorBiscuit(~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net) (Read error: Connection reset by peer)
2022-07-13 18:15:36 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-13 18:16:57 +0200ccntrq(~Thunderbi@2a01:c23:9146:7000:ddce:cb28:98cc:4397) (Remote host closed the connection)
2022-07-13 18:22:05 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Quit: WeeChat 3.5)
2022-07-13 18:24:13 +0200mmhat(~mmh@p200300f1c7090754ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.5)
2022-07-13 18:24:15 +0200chomwitt(~chomwitt@2a02:587:dc0d:4a00:deae:e1cf:72:7368) (Ping timeout: 276 seconds)
2022-07-13 18:24:45 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2022-07-13 18:25:10 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-07-13 18:26:33 +0200kuribas(~user@silversquare.silversquare.eu) (Quit: ERC (IRC client for Emacs 26.3))
2022-07-13 18:27:10 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Ping timeout: 240 seconds)
2022-07-13 18:27:47 +0200biberu(~biberu@user/biberu)
2022-07-13 18:31:32 +0200segfaultfizzbuzz(~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
2022-07-13 18:31:36 +0200machinedgod(~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 244 seconds)
2022-07-13 18:32:36 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2022-07-13 18:32:38 +0200jgeerds(~jgeerds@55d437cf.access.ecotel.net)
2022-07-13 18:36:16 +0200yax__(~yax@user/yax/x-9576643) (Ping timeout: 268 seconds)
2022-07-13 18:38:05 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e)
2022-07-13 18:43:02 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) (Ping timeout: 272 seconds)
2022-07-13 18:43:42 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-07-13 18:46:58 +0200merijn(~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl)
2022-07-13 18:49:43 +0200dcoutts(~duncan@host86-150-18-52.range86-150.btcentralplus.com) (Remote host closed the connection)
2022-07-13 18:49:54 +0200schweers(~user@2001:9e8:be68:9d00:aaa1:59ff:fe3f:235c) (ERC 5.4 (IRC client for GNU Emacs 28.1))
2022-07-13 18:50:01 +0200dcoutts__(~duncan@host86-150-18-52.range86-150.btcentralplus.com)
2022-07-13 18:50:06 +0200dcoutts(~duncan@host86-150-18-52.range86-150.btcentralplus.com)
2022-07-13 18:50:27 +0200segfaultfizzbuzz(~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 268 seconds)
2022-07-13 18:51:21 +0200fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-07-13 18:52:10 +0200dcoutts_(~duncan@host86-150-18-52.range86-150.btcentralplus.com) (Ping timeout: 240 seconds)
2022-07-13 18:53:58 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2022-07-13 18:54:50 +0200chomwitt(~chomwitt@2a02:587:dc0d:4a00:dd89:2ce:aa76:b885)
2022-07-13 18:56:14 +0200segfaultfizzbuzz(~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
2022-07-13 18:58:30 +0200dcoutts_(~duncan@host86-150-18-52.range86-150.btcentralplus.com)
2022-07-13 18:59:21 +0200dcoutts(~duncan@host86-150-18-52.range86-150.btcentralplus.com) (Ping timeout: 276 seconds)
2022-07-13 18:59:30 +0200dcoutts__(~duncan@host86-150-18-52.range86-150.btcentralplus.com) (Ping timeout: 244 seconds)
2022-07-13 18:59:45 +0200dcoutts(~duncan@host86-150-18-52.range86-150.btcentralplus.com)
2022-07-13 18:59:48 +0200jese(~nikola@178-221-112-41.dynamic.isp.telekom.rs)
2022-07-13 19:00:17 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-07-13 19:00:28 +0200sander(~sander@user/sander) (Quit: So long! :))
2022-07-13 19:00:36 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-07-13 19:00:57 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 268 seconds)
2022-07-13 19:01:38 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2022-07-13 19:01:38 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2022-07-13 19:01:41 +0200allbery_bgeekosaur
2022-07-13 19:03:26 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-07-13 19:04:42 +0200 <jese> Where can i see with which versions of base my compiler comes with?
2022-07-13 19:05:31 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e)
2022-07-13 19:05:35 +0200jinsun__(~jinsun@user/jinsun)
2022-07-13 19:05:35 +0200jinsunGuest2672
2022-07-13 19:05:35 +0200Guest2672(~jinsun@user/jinsun) (Killed (tungsten.libera.chat (Nickname regained by services)))
2022-07-13 19:05:35 +0200jinsun__jinsun
2022-07-13 19:06:36 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-13 19:10:57 +0200 <[exa]> jese: I'm usually looking at the output of `ghc-pkg list` but there might be better ways
2022-07-13 19:11:05 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
2022-07-13 19:11:46 +0200 <[exa]> AFAIK the ghc and base versions are pretty much fixed 1:1, so you might have luck with just `ghc --version` and looking base up on the internet (if there's a page about it :D )
2022-07-13 19:13:02 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-07-13 19:13:09 +0200yax___(~yax@user/yax/x-9576643)
2022-07-13 19:14:26 +0200nate4(~nate@98.45.169.16)
2022-07-13 19:15:06 +0200 <geekosaur> https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/libraries/version-history
2022-07-13 19:16:19 +0200 <[exa]> oh beautiful
2022-07-13 19:16:33 +0200mbuf(~Shakthi@122.165.55.71) (Quit: Leaving)
2022-07-13 19:17:32 +0200zxx7529(~Thunderbi@user/zxx7529) (Remote host closed the connection)
2022-07-13 19:17:53 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-07-13 19:17:57 +0200 <geekosaur> but as mentioned, to see which version your compiler comes with, "ghc-pkg list base"
2022-07-13 19:18:49 +0200jgeerds(~jgeerds@55d437cf.access.ecotel.net) (Ping timeout: 268 seconds)
2022-07-13 19:19:18 +0200pmarg(~pmarg@2a01:799:159f:9b00:893e:346:2854:a0fd)
2022-07-13 19:19:57 +0200nate4(~nate@98.45.169.16) (Ping timeout: 272 seconds)
2022-07-13 19:20:20 +0200jakalx(~jakalx@base.jakalx.net)
2022-07-13 19:20:30 +0200Guest45(~Guest45@bras-base-okvlon5405w-grc-53-70-30-46-127.dsl.bell.ca)
2022-07-13 19:20:48 +0200merijn(~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 276 seconds)
2022-07-13 19:21:48 +0200yax___(~yax@user/yax/x-9576643) (Remote host closed the connection)
2022-07-13 19:24:04 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2022-07-13 19:24:56 +0200econo(uid147250@user/econo)
2022-07-13 19:25:20 +0200coot(~coot@213.134.190.95)
2022-07-13 19:27:30 +0200Kaiepi(~Kaiepi@156.34.47.253) (Ping timeout: 240 seconds)
2022-07-13 19:29:19 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-13 19:32:09 +0200 <jese> i see i have only one version of base; i thought i have more of them. can i install other versions of base or is base always tied to the compiler?
2022-07-13 19:32:42 +0200 <[exa]> base is very tightly glued to the compiler
2022-07-13 19:32:54 +0200 <[exa]> if you want another base, you probably need another ghc
2022-07-13 19:32:54 +0200 <Rembane> jese: You can have many versions of base but base is always tied to the compiler. Both ghcup and stack helps you manage different version of ghc.
2022-07-13 19:33:22 +0200 <geekosaur> well, there was one compiler which supported two versions of base. it's the reason they don't do that any more
2022-07-13 19:34:03 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-07-13 19:38:38 +0200 <jese> Rembane: what about cabal? can it automatically select ghc to use based upon base constraints of a package i want to build?
2022-07-13 19:38:56 +0200 <jese> (probably not but let's give it a try)
2022-07-13 19:39:14 +0200 <geekosaur> cabal can't autoselect one for you but you can select one for it with -w
2022-07-13 19:39:25 +0200 <Rembane> jese: What geekosaur said
2022-07-13 19:39:30 +0200 <geekosaur> I'm unclear on whether that's intended as a future feature
2022-07-13 19:39:59 +0200janus(janus@anubis.0x90.dk)
2022-07-13 19:40:15 +0200 <jese> i get it
2022-07-13 19:40:17 +0200 <janus> which ghc releases, if any, include the driver rework patch ? https://gitlab.haskell.org/ghc/ghc/-/commit/25977ab542a30df4ae71d9699d015bcdd1ab7cfb
2022-07-13 19:41:14 +0200 <janus> if i click the '...' next to 'branches unavailable' it says 9.4.1-alpha1, I guess that means its not in 9.2?
2022-07-13 19:42:19 +0200 <geekosaur> yeh, that looks like it's in 9.4pre
2022-07-13 19:46:01 +0200dcoutts__(~duncan@host86-150-18-52.range86-150.btcentralplus.com)
2022-07-13 19:48:34 +0200dcoutts(~duncan@host86-150-18-52.range86-150.btcentralplus.com) (Ping timeout: 244 seconds)
2022-07-13 19:48:34 +0200dcoutts_(~duncan@host86-150-18-52.range86-150.btcentralplus.com) (Ping timeout: 244 seconds)
2022-07-13 19:48:58 +0200dcoutts(~duncan@host86-150-18-52.range86-150.btcentralplus.com)
2022-07-13 19:50:55 +0200dcoutts__(~duncan@host86-150-18-52.range86-150.btcentralplus.com) (Ping timeout: 260 seconds)
2022-07-13 19:55:18 +0200 <jese> if i use stack will the process of building, installing, and selecting the appropriate compiler version be carried out automatically? so that i don't have to bother with both ghcup and cabal.
2022-07-13 19:57:15 +0200 <geekosaur> stack doesn't select automatically either. it lives and dies by the resolver you specify
2022-07-13 19:57:44 +0200 <geekosaur> it just autoselects a bunch of compatible libraries for you, not just base, from the resolver
2022-07-13 19:57:48 +0200acidjnk_new(~acidjnk@p200300d6e7058698ed7ff12f14b44c79.dip0.t-ipconnect.de)
2022-07-13 19:58:56 +0200nightbreak[Away]nightbreak_
2022-07-13 19:58:58 +0200 <jese> okay thanks
2022-07-13 19:59:33 +0200Guest34(~Guest34@152.7.255.203) (Quit: Client closed)
2022-07-13 20:00:04 +0200hsman(~hsman@80.95.197.227) (Quit: Client closed)
2022-07-13 20:03:08 +0200 <jese> /exit/exit
2022-07-13 20:03:10 +0200jese(~nikola@178-221-112-41.dynamic.isp.telekom.rs) (Quit: leaving)
2022-07-13 20:05:57 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl)
2022-07-13 20:06:22 +0200kenran(~kenran@200116b82b67ed00effa09132c8744c8.dip.versatel-1u1.de)
2022-07-13 20:08:17 +0200causal(~user@50.35.83.177)
2022-07-13 20:09:59 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-13 20:14:02 +0200sander(~sander@user/sander)
2022-07-13 20:15:04 +0200Guest45(~Guest45@bras-base-okvlon5405w-grc-53-70-30-46-127.dsl.bell.ca) (Quit: Client closed)
2022-07-13 20:15:13 +0200 <romes[m]> what’s the best way of debugging an infinite loop
2022-07-13 20:15:42 +0200Dutchgriffon(~Laurens@70.36.53.134)
2022-07-13 20:16:06 +0200dcoutts(~duncan@host86-150-18-52.range86-150.btcentralplus.com) (Remote host closed the connection)
2022-07-13 20:16:30 +0200dcoutts(~duncan@host86-150-18-52.range86-150.btcentralplus.com)
2022-07-13 20:17:48 +0200vglfr(~vglfr@coupling.penchant.volia.net) (Remote host closed the connection)
2022-07-13 20:18:11 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-07-13 20:18:15 +0200gurkenglas(~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de)
2022-07-13 20:19:36 +0200 <ski> romes[m] : i guess you could try binary search, maybe
2022-07-13 20:19:43 +0200 <ski> ("staring hard" is also an option)
2022-07-13 20:19:46 +0200dcoutts_(~duncan@host109-149-38-92.range109-149.btcentralplus.com)
2022-07-13 20:20:11 +0200 <ski> (but it really depends on the nature of the code which exhibited the loop)
2022-07-13 20:20:28 +0200 <romes[m]> hahahahah
2022-07-13 20:20:35 +0200 <romes[m]> I have littered everything with traces
2022-07-13 20:20:41 +0200 <romes[m]> I am at a loss ahah
2022-07-13 20:20:54 +0200 <romes[m]> I cannot figure out what is looping
2022-07-13 20:21:07 +0200dcoutts(~duncan@host86-150-18-52.range86-150.btcentralplus.com) (Ping timeout: 244 seconds)
2022-07-13 20:21:10 +0200 <romes[m]> it feels like it just stops
2022-07-13 20:21:25 +0200 <ski> i'm assuming you're talking about a data loop, rather than a control loop ?
2022-07-13 20:21:42 +0200 <monochrom> If your debugging messages are not being printed infinitely, then your debugging messages are not part of the infinite loop.
2022-07-13 20:22:00 +0200 <romes[m]> indeed monochrom
2022-07-13 20:22:05 +0200 <romes[m]> but i’ve run out of ideas where to place more of them
2022-07-13 20:22:14 +0200 <monochrom> But we gotta up the game and ask: What's the best way to ask a question?
2022-07-13 20:22:19 +0200 <romes[m]> i was ready to turn to actual profiling/debugging
2022-07-13 20:22:34 +0200 <ski> monochrom : surely to ask it as open-ended as possible ?
2022-07-13 20:22:52 +0200 <monochrom> Yeah, in #math it would be "hi how do I solve equations?"
2022-07-13 20:23:01 +0200 <romes[m]> ski: how would you differentiate them
2022-07-13 20:23:25 +0200 <ski> i'm not sure i know how to differentiate (nor integrate) questions .. sounds interesting, though
2022-07-13 20:23:25 +0200 <Rembane> romes[m]: Does the infinite loop make the program eventually crash?
2022-07-13 20:23:28 +0200[exa]suspects a traditional case of let x = x. romes[m], did you check your lets?
2022-07-13 20:23:58 +0200 <romes[m]> but all is good, I’ll stare harder. I just realized I had never really asked “so how would the best way look like”
2022-07-13 20:24:47 +0200 <romes[m]> Yeah, I’m going to revert some bits
2022-07-13 20:24:47 +0200 <romes[m]> the program doesn’t crash; i’ll double check the let’s
2022-07-13 20:25:26 +0200segfaultfizzbuzz(~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds)
2022-07-13 20:25:29 +0200 <[exa]> esp. the nice great looking let's in `do` blocks tend to eeeasily mix with harmless `x <- x` binds
2022-07-13 20:25:47 +0200 <ski> for a data loop, i guess there's a cyclic path somewhere .. so all points on the cycle contributes to the loop (or, if you break it anywhere, the loop disappears). so that would suggest not looking for a particular spot in code (although it can be that), but a set of spots, contributing to the cycle (a global property)
2022-07-13 20:25:53 +0200 <Rembane> romes[m]: If the program doesn't crash it either means that you have infinite RAM or that it doesn't allocate in the infinite loop.
2022-07-13 20:26:37 +0200 <ski> (or that what it allocates is GCed, i guess ?)
2022-07-13 20:26:45 +0200 <monochrom> Rembane: In my case, Chrome crashed. (Explanation: Linux OOM handler chose to kill Chrome rather than my Haskell program. >:) )
2022-07-13 20:26:46 +0200 <romes[m]> Rembane good insight
2022-07-13 20:26:57 +0200 <romes[m]> LOL
2022-07-13 20:27:19 +0200talismanick(~talismani@2601:200:c100:3850::dd64) (Ping timeout: 244 seconds)
2022-07-13 20:27:34 +0200 <romes[m]> ski: right; those are trickier. mine is in a hotspot. i’m starting to feel like exa might be right
2022-07-13 20:27:36 +0200 <Rembane> monochrom: That's a good symtom. :D
2022-07-13 20:27:46 +0200 <romes[m]> those x <- x bindings are indeed misleading
2022-07-13 20:27:53 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-07-13 20:28:18 +0200 <monochrom> Heh yesterday my student wrote "numberHelper left >>= \left -> ..."
2022-07-13 20:28:25 +0200 <ski> try adding some `rec' to your `do's
2022-07-13 20:28:30 +0200noteness(~noteness@user/noteness) (Remote host closed the connection)
2022-07-13 20:28:46 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-13 20:28:57 +0200 <ski> monochrom : and they were then confused ?
2022-07-13 20:28:58 +0200noteness(~noteness@user/noteness)
2022-07-13 20:29:42 +0200 <monochrom> Naw, he knew he had two different "left"s, just too lazy to think of a better name at an early stage, eventually he did the proper renaming.
2022-07-13 20:30:02 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2022-07-13 20:30:02 +0200 <ski> ic
2022-07-13 20:30:06 +0200 <monochrom> It was actually OK because the 1st "left" would not be used again.
2022-07-13 20:30:44 +0200 <ski> in OCaml, they often suggest using (non-recursive) `let foo = ..foo..'s
2022-07-13 20:30:49 +0200feliix42(~felix@gibbs.uberspace.de) (Read error: Connection reset by peer)
2022-07-13 20:31:07 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-07-13 20:31:07 +0200AWizzArd(~code@gehrels.uberspace.de) (Read error: Connection reset by peer)
2022-07-13 20:31:18 +0200 <ski> (for different versions of "the same thing")
2022-07-13 20:32:30 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-07-13 20:32:48 +0200Sgeo(~Sgeo@user/sgeo)
2022-07-13 20:33:44 +0200seriously(~seriously@ool-18bd55d4.dyn.optonline.net)
2022-07-13 20:33:56 +0200feliix42(~felix@gibbs.uberspace.de)
2022-07-13 20:35:15 +0200 <seriously> Hey question... am  i reading this bit here wrong? https://paste.tomsmeding.com/ExKVF9us
2022-07-13 20:35:33 +0200 <monochrom> Going back to debugging messages, I guess the difference between my success and other people's failure is because I add debugging messages to where I think nothing goes wrong, other people add to where they thing something goes wrong.
2022-07-13 20:35:49 +0200 <seriously> Does the refactored function not take any arguments?
2022-07-13 20:36:10 +0200 <darkling> seriously: It returns a function.
2022-07-13 20:36:10 +0200 <monochrom> Now consider the fact that human nature confirmation bias implies that I actually have a better chance.
2022-07-13 20:36:17 +0200 <[exa]> seriously: that's perfectly okay
2022-07-13 20:36:32 +0200 <darkling> seriously: So you can then pass an argument to it, and it'll evalute its thing.
2022-07-13 20:36:43 +0200AWizzArd(~code@gehrels.uberspace.de)
2022-07-13 20:38:38 +0200 <ski> seriously : it does take an input
2022-07-13 20:38:50 +0200segfaultfizzbuzz(~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
2022-07-13 20:38:53 +0200 <seriously> but wont the compiler complain that its a partial function? The definition doesnt match any patteerns
2022-07-13 20:38:55 +0200 <ski> (albeit not explicitly, in that code)
2022-07-13 20:39:00 +0200 <ski> no
2022-07-13 20:39:41 +0200 <monochrom> Patterns are not compulsory in defining functions. (or defining anything.)
2022-07-13 20:39:59 +0200 <[exa]> seriously: (mathspeak:) it matches a single empty pattern
2022-07-13 20:40:04 +0200 <ski> `even . length . greaterThan100' *is* a function, myTest' is declared to be a function (further, with matching input and output types). so there is no problem defining the latter to be equal to the former
2022-07-13 20:40:07 +0200 <monochrom> You answer one single question.
2022-07-13 20:40:09 +0200 <romes[m]> [exa]: let b = b + 1 :)))))))))))))
2022-07-13 20:40:09 +0200PiDelport(uid25146@id-25146.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-07-13 20:40:24 +0200 <ski> [exa] : how's that mathspeak ?
2022-07-13 20:40:25 +0200 <monochrom> Does "even . length . greaterThan100" have type "[Integer] -> Bool"?
2022-07-13 20:40:32 +0200 <monochrom> If yes, then you're done.
2022-07-13 20:40:36 +0200 <[exa]> romes[m]: that was the loop? :D
2022-07-13 20:40:37 +0200 <monochrom> No but.
2022-07-13 20:41:02 +0200 <romes[m]> [exa]: not literally but something like that
2022-07-13 20:41:04 +0200 <romes[m]> your prediction was spot on
2022-07-13 20:41:04 +0200 <ski> romes[m] : perhaps you should have added `b :: Natural' ..
2022-07-13 20:41:15 +0200 <monochrom> You know, at this level, you don't even care whether "[Integer] -> Bool" is a function type.
2022-07-13 20:41:47 +0200 <[exa]> haha lol good. Hope it helped. :D
2022-07-13 20:41:57 +0200 <romes[m]> i finally understood why you might want to have explicit recursive lets
2022-07-13 20:42:02 +0200 <[exa]> ski: I meant the tone there. :]
2022-07-13 20:42:27 +0200 <romes[m]> the name didn’t even exist before the let :) i meant
2022-07-13 20:42:56 +0200 <ski> i don't think math people talk about matching patterns too much ..
2022-07-13 20:43:01 +0200 <romes[m]> * (null)
2022-07-13 20:43:25 +0200 <ski> seriously : anyway, the definition is not "partial". and not matching patterns (explicitly) wouldn't make it partial, anyway
2022-07-13 20:43:37 +0200 <monochrom> ski, math people include degenerate cases all the time, e.g., "a circle" can have radius 0.
2022-07-13 20:43:51 +0200 <ski> sure
2022-07-13 20:44:32 +0200 <seriously> How does myTest', when called, know what argument to apply itself too
2022-07-13 20:44:41 +0200 <ski> (although, `1' is (nowadays) not a prime number. and an empty space is not connected)
2022-07-13 20:45:10 +0200 <ski> myTest' [42]
2022-07-13 20:45:22 +0200 <ski> = (even . length . greaterThan100) [42]
2022-07-13 20:45:35 +0200 <ski> = even ((length . greaterThan100) [42])
2022-07-13 20:45:50 +0200 <ski> = even (length (greaterThan100 [42]))
2022-07-13 20:45:56 +0200merijn(~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl)
2022-07-13 20:45:59 +0200 <ski> = ...
2022-07-13 20:46:41 +0200 <darkling> seriously: The Haskell syntax is very very simple: "f x" means apply the function f to the thing x.
2022-07-13 20:47:35 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-13 20:47:52 +0200 <darkling> So it doesn't need to know anything extra here -- invoking myTest' (which takes no parameters) returns a function which takes a parameter and returns a Bool.
2022-07-13 20:48:02 +0200 <seriously> I see... I guess just up to this point it seemed mandatory to give a function definition arguments if its type demanded it... just through me off
2022-07-13 20:48:54 +0200 <seriously> looking at it this way, myTest' [42], helps
2022-07-13 20:49:23 +0200 <monochrom> I showed my students "f = \x -> ..."
2022-07-13 20:49:52 +0200 <monochrom> from which point onwards it's a slippery slope to conclude that "f = <any expression of the right type>" is OK.
2022-07-13 20:50:40 +0200 <monochrom> I also showed early on "v :: Integer ; v = 4" so they know that "definition" is not limited to "functions".
2022-07-13 20:51:43 +0200fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Quit: WeeChat 3.5)
2022-07-13 20:52:06 +0200 <darkling> I was reaching for that one just now, but wasn't sure I could do the explanation justice.
2022-07-13 20:55:10 +0200 <monochrom> Well, there is a cultural shock because the imperative culture is to make a big artificial fuss about syntactically distinguishing function definitions and non-function definitions.
2022-07-13 20:55:10 +0200seriously(~seriously@ool-18bd55d4.dyn.optonline.net) (Quit: Client closed)
2022-07-13 20:55:45 +0200seriously(~seriously@ool-18bd55d4.dyn.optonline.net)
2022-07-13 20:56:02 +0200alp(~alp@user/alp)
2022-07-13 20:56:19 +0200 <seriously> Is there a way for me to stay in the chat without leaving; so I can review conversations later?
2022-07-13 20:57:08 +0200 <geekosaur> use matrix instead of irc directly?
2022-07-13 20:57:20 +0200 <geekosaur> (or irccloud or other service that does the same)
2022-07-13 20:57:29 +0200 <monochrom> It took me a couple of years of teaching before I realized I could break that curse by the simple act of showing "n :: Int ; n = 4" and "f :: X->Y; f = \x -> ...", and stating that "f x = ..." is syntax sugar for the lambda version.
2022-07-13 20:57:35 +0200 <geekosaur> you might however want to look at the logs url in the /topic
2022-07-13 20:58:22 +0200 <seriously> ok
2022-07-13 20:59:23 +0200 <monochrom> I also took the time to explain "X -> (Y -> Z)" and "\x -> \y -> ..." and even "f x = \y -> ...", at which point nothing is sacred.
2022-07-13 20:59:44 +0200 <ski> monochrom : it's hard to even remember the time before this lesson was grokked
2022-07-13 21:00:00 +0200 <geekosaur> I keep my client idling on the channel but I'm also on matrix because element for android is better than the android irc clients I've found; but it means I can pop onto app.element.io as well
2022-07-13 21:00:08 +0200alexhandy2(~trace@user/trace)
2022-07-13 21:00:57 +0200 <monochrom> Yeah, but I have the benefit of observing beginner questions in here and in my office hours.
2022-07-13 21:01:39 +0200skinods
2022-07-13 21:02:48 +0200skubcat(~Guest48@156.57.184.235) (Quit: Client closed)
2022-07-13 21:03:30 +0200alexhandy(~trace@user/trace) (Ping timeout: 244 seconds)
2022-07-13 21:03:32 +0200 <ski> [exa] : i guess i would've been less thrown off if you'd said something like "it matches a single case with no patterns"
2022-07-13 21:04:08 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net)
2022-07-13 21:05:03 +0200sandersndr
2022-07-13 21:05:47 +0200 <ski> ("empty pattern" made me think of e.g. the "absurd patterns" in Agda .. like in Haskell, you have `foo :: Void -> ...; foo v = case v of {}'. in Agda, that'd be `foo : Void -> ...; foo ()' (no definiens/body/right-hand-side), `()' being the absurd pattern .. personally, i write overscore instead (with an RHS))
2022-07-13 21:06:39 +0200 <ski> foo ‾ = ‾ -- i.e.
2022-07-13 21:07:31 +0200 <monochrom> -_-
2022-07-13 21:07:37 +0200 <monochrom> I mean heh
2022-07-13 21:08:04 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-07-13 21:08:30 +0200 <monochrom> But they should totally consider the syntax foo ^ = ^
2022-07-13 21:09:13 +0200 <seriously> *Instead of thinking about what we want to do with each element, we can instead think about making incremental transformations to the entire input, using the existing recursion patterns that we know of. *
2022-07-13 21:09:16 +0200 <seriously> this
2022-07-13 21:09:20 +0200 <ski> (`‾' being the neutral element for disjunctive / or- patterns, just like the wildcard `_' is the neutral element for conjunctive / and- patterns (of which `<var> @ <pat>' is a special case))
2022-07-13 21:09:21 +0200yauhsien(~yauhsien@61-231-21-122.dynamic-ip.hinet.net) (Ping timeout: 276 seconds)
2022-07-13 21:09:28 +0200 <seriously> is said nicely**
2022-07-13 21:09:34 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-07-13 21:09:39 +0200talismanick(~talismani@campus-045-135.ucdavis.edu)
2022-07-13 21:09:45 +0200talismanick(~talismani@campus-045-135.ucdavis.edu) (Remote host closed the connection)
2022-07-13 21:10:01 +0200talismanick(~talismani@campus-045-135.ucdavis.edu)
2022-07-13 21:10:04 +0200 <ski> monochrom : heh, i think i've used `^' occasionally, when i only had access to ASCII
2022-07-13 21:10:26 +0200 <ski> seriously : where does that come from ?
2022-07-13 21:10:40 +0200 <seriously> https://www.seas.upenn.edu/~cis1940/spring13/lectures/04-higher-order.html
2022-07-13 21:10:41 +0200 <ski> talk about wholemeal vs. piecemeal programming ?
2022-07-13 21:10:43 +0200 <monochrom> I don't think it is said nicely. But it's because I don't think it can be said nicely at all. At least not until a few concrete examples are shown.
2022-07-13 21:10:46 +0200 <seriously> yeah
2022-07-13 21:11:28 +0200 <seriously> true I mean it makes better sense now after everything that was said here
2022-07-13 21:11:33 +0200Guest8527(~Guest85@ti0185a400-0748.bb.online.no) (Quit: Client closed)
2022-07-13 21:11:47 +0200 <monochrom> This is also why I refuse to explain monads in words.
2022-07-13 21:11:50 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) (Remote host closed the connection)
2022-07-13 21:12:30 +0200ski. o O ( <https://en.wikipedia.org/wiki/Ostensive_definition> )
2022-07-13 21:12:57 +0200Cajun(~Cajun@user/cajun) (Quit: Client closed)
2022-07-13 21:12:58 +0200 <Rembane> monochrom: Do you give the equations and point to the paper?
2022-07-13 21:13:06 +0200 <monochrom> Nah.
2022-07-13 21:13:35 +0200 <monochrom> Examples. Use cases. Equations (but supported by examples and use cases).
2022-07-13 21:13:42 +0200 <seriously> I suppose I will try to write all my functions in the "composed" style from now on, for practice
2022-07-13 21:14:08 +0200 <ski> seriously : it is good practice .. but it can also be taken too far
2022-07-13 21:14:52 +0200 <ski> @pointless myTest xs = even (length (greaterThan100 xs))
2022-07-13 21:14:52 +0200 <lambdabot> myTest = even . length . greaterThan100
2022-07-13 21:14:53 +0200 <monochrom> Haskell does have the advantage that you can do algebra and it explains a whole lot, and then you understand why Dijkstra says a formula is worth a thousand pictures.
2022-07-13 21:15:40 +0200 <ski> @pointless greaterThan100 xs = filter (\x -> x > 100) xs
2022-07-13 21:15:40 +0200 <lambdabot> greaterThan100 = filter (> 100)
2022-07-13 21:15:53 +0200 <Rembane> monochrom: I dig that.
2022-07-13 21:16:33 +0200 <seriously> probably best to keep a standard tho no?? if Im going to do it to long functions to make them short; shouldnt I just do it to the simple ones too?
2022-07-13 21:16:58 +0200 <seriously> easier to read theas a whole
2022-07-13 21:17:00 +0200 <seriously> then*
2022-07-13 21:17:23 +0200 <monochrom> Keep 15 standards
2022-07-13 21:18:14 +0200 <monochrom> The Haskell community is one of the very few sane communities that understand that one coding style guide doesn't fit all.
2022-07-13 21:18:35 +0200 <monochrom> There we have another cultural shock.
2022-07-13 21:20:01 +0200merijn(~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 244 seconds)
2022-07-13 21:20:32 +0200 <ski> seriously : i mean, sometimes if you do it to a function, the code just becomes pretty much incomprehensible (especially after a week or a month)
2022-07-13 21:21:04 +0200skiwas looking for a suitable example in CIS194 to illustrate this on, but didn't find one
2022-07-13 21:22:09 +0200Guest85(~Guest85@ti0185a400-0748.bb.online.no)
2022-07-13 21:22:11 +0200 <ski> @pointless pythagoreanDiagonal x y = sqrt (x^2 + y^2) -- i guess this example will do ?
2022-07-13 21:22:11 +0200 <lambdabot> pythagoreanDiagonal = (sqrt .) . (. (^ 2)) . (+) . (^ 2)
2022-07-13 21:22:19 +0200 <monochrom> Yeah
2022-07-13 21:22:40 +0200 <ski> seriously : would you prefer reading the "pointful" version, or the "pointless" one ?
2022-07-13 21:22:46 +0200ulvarrefr(~user@185.24.53.152) (Ping timeout: 268 seconds)
2022-07-13 21:23:08 +0200 <seriously> lol gotcha
2022-07-13 21:23:18 +0200 <monochrom> Even in Unix pipelining, we realize that pipelining is very limiting. A general data flow diagram does not always look like a line.
2022-07-13 21:24:10 +0200 <ski> it can be nice mental gymnastics to explore and try to stretch your ability to formulate code like this, once in a while .. but you should probably think twice before committing such code to your code base
2022-07-13 21:25:42 +0200segfaultfizzbuzz(~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds)
2022-07-13 21:25:50 +0200 <ski> (sometimes it can be warranted. e.g. using `liftA2 (+)' (using `Applicative (rho ->)') or specific (with practice) recognizable idioms like `(f .) . g' or `(post .) . (. pre)' .. but you should probably such sparingly)
2022-07-13 21:26:48 +0200 <monochrom> I don't go as far as (f .) . g
2022-07-13 21:26:55 +0200 <seriously> maybe then "point-style" is generally best for functions that work on list inputs
2022-07-13 21:26:56 +0200 <ski> monochrom : reminds me of a shell that allowed naming pipes (not as files), passing them as explicit parameters to shell-defined procedures (actually the shell was inspired by logic programming)
2022-07-13 21:28:10 +0200 <monochrom> bash has "cmd (< cmd2) (> cmd3)" for non-linear data flow diagrams
2022-07-13 21:28:24 +0200 <monochrom> (Haskell has Arrow proc->do notation, heh)
2022-07-13 21:28:35 +0200 <geekosaur> ksh had the notion of a (single) "coprocess"
2022-07-13 21:28:38 +0200PiDelport(uid25146@id-25146.lymington.irccloud.com)
2022-07-13 21:28:47 +0200 <geekosaur> I think zsh generalized that
2022-07-13 21:29:18 +0200shapr(~user@2600:4040:2d31:7100:a4a4:5e03:eeb6:d024)
2022-07-13 21:30:33 +0200 <ski> "one coding style guide doesn't fit all" -- as much as i have some quite particular idiosyncratic preferences and tendencies in code, i realize my personal style isn't for everyone (and shouldn't be) (although i'm not loathe to show examples of, or give suggestions regarding, my opinions about it) .. what matters most is how well *you* can understand your code
2022-07-13 21:30:56 +0200pmarg(~pmarg@2a01:799:159f:9b00:893e:346:2854:a0fd) (Remote host closed the connection)
2022-07-13 21:31:25 +0200 <exarkun> that matters most until it matters more that someone else can understand your code :)
2022-07-13 21:31:42 +0200 <darkling> And how much the other people that have to read your code can do so. :)
2022-07-13 21:31:48 +0200 <monochrom> Yeah I s/self/everyone who work with this code/
2022-07-13 21:31:52 +0200 <ski> yes (i was thinking about adding that the "you" that's relevant can vary)
2022-07-13 21:32:00 +0200 <monochrom> Sure, 99% of the time it's self again, but meh
2022-07-13 21:32:17 +0200 <monochrom> Naw, since I teach, 99% of the time it's my poor students haha.
2022-07-13 21:33:16 +0200Guest85(~Guest85@ti0185a400-0748.bb.online.no) (Quit: Client closed)
2022-07-13 21:33:37 +0200 <monochrom> Ugh now I see my code sometimes uses >> and sometimes uses *> and it's now inconsistent for no good reason :)
2022-07-13 21:33:58 +0200 <monochrom> (worksforme wontfix)
2022-07-13 21:34:10 +0200 <ski> seriously : it's good to lurk around and see what style and idioms people use and suggest. but in the end, you have to decide what is reasonable in your circumstance. but you should try to understand the commonly proposed options, and preferably the *reasons* for them (then you can make a more informed decision)
2022-07-13 21:34:10 +0200 <Bulby[m]> mood
2022-07-13 21:34:11 +0200 <EvanR> what matters most is if someone else can understand the code. Where someone else = you in 1 or more months from now
2022-07-13 21:34:54 +0200 <darkling> "Which idiot wrote this code? Oh, yeah, that darkling knew nothing."
2022-07-13 21:35:25 +0200 <EvanR> this test has been flunked many times by using "clever tricks" in the code
2022-07-13 21:35:40 +0200 <darkling> I'm sure there's stuff in our codebase at work that, 5 years from now, will be the subject of a refactoring exercise initiated with the phrase "yes, that's a darkling special" :)
2022-07-13 21:36:00 +0200 <EvanR> xkcd code review metric "wtfs per minute"
2022-07-13 21:37:48 +0200nek0(~nek0@2a01:4f8:222:2b41::12) (Quit: The Lounge - https://thelounge.chat)
2022-07-13 21:37:52 +0200skiagrees with everything said in the last eight minutes, or so
2022-07-13 21:39:14 +0200 <ski> seriously : it's more related to whether the processing can be expressed more or less as a "linear pipeline" or not, i think
2022-07-13 21:39:55 +0200 <ski> (reminds me of concatenative programming, like in Forth e.g. ..)
2022-07-13 21:42:11 +0200 <seriously> ski ok ill keep that in mind... while were on the subject of coding standards; I've found myself doing this alot... could be an imperative habit of mine manifesting into functional style: https://paste.tomsmeding.com/igJBGaD1
2022-07-13 21:42:32 +0200phma(~phma@2001:5b0:211c:45d8:dcca:18c7:bf12:f383) (Read error: Connection reset by peer)
2022-07-13 21:42:50 +0200 <seriously> What is the general opinion on that ... "by that, I mean the code in there 'where' block"
2022-07-13 21:43:24 +0200 <ski> you mean the `where'-naming ? .. yea, you do
2022-07-13 21:43:50 +0200phma(phma@2001:5b0:210d:adb8:1b94:33b4:266b:899a)
2022-07-13 21:44:02 +0200 <ski> sometimes, it's nice to give some names to intermediate results (documenting their intended interpretation somewhat)
2022-07-13 21:44:41 +0200 <ski> sometimes, it doesn't really help comprehension, and just clutters up the code (and may be annoying to have to conjure up a name for it)
2022-07-13 21:45:58 +0200 <darkling> Yeah, names as documentation is a very good reason for doing that sort of thing.
2022-07-13 21:47:53 +0200 <EvanR> I just like a where clause so the sub-definitions don't extend down and to the right like a messed up stairway
2022-07-13 21:48:16 +0200 <ski> > (last . transpose . chunksOf 3) "abcdefghijkl"
2022-07-13 21:48:18 +0200 <lambdabot> "cfil"
2022-07-13 21:48:46 +0200 <ski> > (map last . chunksOf 3) "abcdefghijkl" -- also as
2022-07-13 21:48:47 +0200 <lambdabot> "cfil"
2022-07-13 21:49:32 +0200 <EvanR> moving "dot chain" function definitions into a where clause can also serve to remove parentheses, esp if you use this function multiple times
2022-07-13 21:50:11 +0200 <ski> (the `transpose' idea is nice, if you want to split a list/stream into `n' ones (alternating), process those separately, and then interleave them back into a single one again)
2022-07-13 21:50:26 +0200TonyStone(~TonyStone@2603-7080-8607-c36a-81b9-1e80-00bb-4a85.res6.spectrum.com) (Remote host closed the connection)
2022-07-13 21:50:40 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-07-13 21:51:15 +0200fserucas__(~fserucas@1.75.114.89.rev.vodafone.pt) (Remote host closed the connection)
2022-07-13 21:51:23 +0200 <ski> darkling : otoh, naming a loop is often just clutter :)
2022-07-13 21:51:29 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-07-13 21:51:32 +0200fserucas__(~fserucas@1.75.114.89.rev.vodafone.pt)
2022-07-13 21:51:38 +0200fserucas_(~fserucas@1.75.114.89.rev.vodafone.pt) (Read error: Connection reset by peer)
2022-07-13 21:52:08 +0200pavonia(~user@user/siracusa)
2022-07-13 21:52:46 +0200TonyStone(~TonyStone@cpe-74-76-51-197.nycap.res.rr.com)
2022-07-13 21:52:47 +0200fserucas(~fserucas@1.75.114.89.rev.vodafone.pt)
2022-07-13 21:53:41 +0200 <darkling> Yeha, it needs care. And of course, you're an idiot 3 months from now. :)
2022-07-13 21:54:17 +0200nek0(~nek0@2a01:4f8:222:2b41::12)
2022-07-13 21:55:38 +0200segfaultfizzbuzz(~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
2022-07-13 21:56:02 +0200EvanR(~EvanR@user/evanr) (Remote host closed the connection)
2022-07-13 21:56:22 +0200EvanR(~EvanR@user/evanr)
2022-07-13 21:59:20 +0200bliminse(~bliminse@user/bliminse) (Quit: leaving)
2022-07-13 22:00:11 +0200segfaultfizzbuzz(~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 272 seconds)
2022-07-13 22:00:58 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-07-13 22:01:39 +0200dcoutts(~duncan@host109-149-38-92.range109-149.btcentralplus.com)
2022-07-13 22:01:43 +0200yax__(~yax@user/yax/x-9576643)
2022-07-13 22:02:23 +0200kenran(~kenran@200116b82b67ed00effa09132c8744c8.dip.versatel-1u1.de) (Quit: WeeChat info:version)
2022-07-13 22:03:54 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
2022-07-13 22:06:07 +0200seriously(~seriously@ool-18bd55d4.dyn.optonline.net) (Quit: Client closed)
2022-07-13 22:07:40 +0200seriously(~seriously@ool-18bd55d4.dyn.optonline.net)
2022-07-13 22:09:35 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-13 22:10:49 +0200slack1256(~slack1256@191.125.99.86)
2022-07-13 22:12:15 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e)
2022-07-13 22:13:16 +0200jgeerds(~jgeerds@55d437cf.access.ecotel.net)
2022-07-13 22:15:05 +0200 <ski> or .. you were an idiot, 3 months ago, perpetually
2022-07-13 22:16:52 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) (Ping timeout: 244 seconds)
2022-07-13 22:17:25 +0200 <EvanR> not being an idiot is always 40 years away
2022-07-13 22:17:37 +0200FurorColere
2022-07-13 22:17:48 +0200 <Rembane> When I stop being an idiot I stop learning.
2022-07-13 22:18:46 +0200Guest34(~Guest34@2605:a601:a615:f600:81b3:7572:de1c:534d)
2022-07-13 22:19:17 +0200bliminse(~bliminse@user/bliminse)
2022-07-13 22:23:58 +0200dcoutts__(~duncan@host86-151-9-33.range86-151.btcentralplus.com)
2022-07-13 22:24:50 +0200dcoutts_(~duncan@host109-149-38-92.range109-149.btcentralplus.com) (Ping timeout: 240 seconds)
2022-07-13 22:25:47 +0200dcoutts_(~duncan@host86-151-9-33.range86-151.btcentralplus.com)
2022-07-13 22:26:09 +0200dcoutts(~duncan@host109-149-38-92.range109-149.btcentralplus.com) (Ping timeout: 272 seconds)
2022-07-13 22:26:21 +0200 <Bulby[m]> and imo, not learning is BORING
2022-07-13 22:26:35 +0200segfaultfizzbuzz(~segfaultf@157-131-253-58.fiber.dynamic.sonic.net)
2022-07-13 22:27:18 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-07-13 22:40:43 +0200dfg(dfg@user/dfg) (Remote host closed the connection)
2022-07-13 22:40:54 +0200Kaiepi(~Kaiepi@156.34.47.253)
2022-07-13 22:40:58 +0200 <yax__> i was born a god
2022-07-13 22:41:03 +0200gustik(~gustik@2a01:c844:2457:2220:475d:34f:d571:996f)
2022-07-13 22:42:06 +0200dfg(~dfg@dfg.rocks)
2022-07-13 22:42:06 +0200dfg(~dfg@dfg.rocks) (Changing host)
2022-07-13 22:42:06 +0200dfg(~dfg@user/dfg)
2022-07-13 22:42:37 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds)
2022-07-13 22:43:22 +0200[exa](exa@srv3.blesmrt.net) (Changing host)
2022-07-13 22:43:22 +0200[exa](exa@user/exa/x-3587197)
2022-07-13 22:44:28 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-07-13 22:44:43 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-07-13 22:45:04 +0200seriously(~seriously@ool-18bd55d4.dyn.optonline.net) (Ping timeout: 252 seconds)
2022-07-13 22:45:58 +0200talismanick(~talismani@campus-045-135.ucdavis.edu) (Ping timeout: 240 seconds)
2022-07-13 22:46:38 +0200merijn(~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl)
2022-07-13 22:47:50 +0200 <slack1256> The `compactAdd` function is the efficient way to append data to `Compact a` in the sense it will not re-copy the data already on the compact, right?
2022-07-13 22:49:22 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e)
2022-07-13 22:49:28 +0200seriously(~seriously@ool-18bd55d4.dyn.optonline.net)
2022-07-13 22:49:38 +0200nightbreak_nightbreak[Away]
2022-07-13 22:50:01 +0200 <maerwald> hey, I also want in on the idiot club
2022-07-13 22:51:34 +0200 <slack1256> In this sense, a compact regions serves as an older manually promoted generation. I wonder if I could set up 4 generations. Not much data apart from this really long lived data structure will reach it.
2022-07-13 22:51:51 +0200machinedgod(~machinedg@d172-219-86-154.abhsia.telus.net)
2022-07-13 22:52:28 +0200cosimone`(~user@93-44-186-171.ip98.fastwebnet.it)
2022-07-13 22:54:01 +0200cosimone(~user@2001:b07:ae5:db26:57c7:21a5:6e1c:6b81) (Ping timeout: 272 seconds)
2022-07-13 22:54:18 +0200 <EvanR> behind the scenes compactAdd achieves what you said by taking on to a linked list of compacts? xD
2022-07-13 22:54:24 +0200 <monochrom> I am an egomaniac. Anyone care to join me and form the egomaniac club? >:)
2022-07-13 22:54:35 +0200aisa(~serum@2a02:8388:6bc1:1d00:6ddd:7a24:70:80)
2022-07-13 22:54:47 +0200 <monochrom> (P.S. Of course it is the, not an, egomaniac club!)
2022-07-13 22:55:14 +0200 <Rembane> monochrom: I would love to join your meetings, but not your club. :D
2022-07-13 22:55:21 +0200 <monochrom> haha
2022-07-13 22:55:31 +0200 <monochrom> I'm a collegial egomaniac haha
2022-07-13 22:56:15 +0200 <Rembane> ^^
2022-07-13 22:57:08 +0200 <darkling> Is anybody else th eonly member of hte solipsist society?
2022-07-13 22:57:38 +0200sektor[m](~sektor@2001:470:69fc:105::2:3f60)
2022-07-13 22:57:58 +0200seriously(~seriously@ool-18bd55d4.dyn.optonline.net) (Quit: Client closed)
2022-07-13 22:58:18 +0200 <slack1256> EvanR: Oh no no, the list is just for example purposes. I mean you obvious can cost on a list and preserve the most of the structure.
2022-07-13 22:58:56 +0200 <slack1256> What I am asking is this: given that I only added a cons, will compactAdd make pay the cost of waiting for the whole list instead of just the new head?
2022-07-13 23:00:13 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-07-13 23:01:30 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Ping timeout: 240 seconds)
2022-07-13 23:02:13 +0200szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2022-07-13 23:03:45 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 276 seconds)
2022-07-13 23:03:46 +0200geekosaurdecides to avoid the clubs
2022-07-13 23:04:13 +0200Rembanehands geekosaur a sword instead
2022-07-13 23:04:18 +0200 <monochrom> "I believe in talking nicely but chairing a bigger club" >:)
2022-07-13 23:04:32 +0200 <darkling> I'll stick with slings and arrows.
2022-07-13 23:04:41 +0200 <monochrom> w00t arrows
2022-07-13 23:04:50 +0200 <monochrom> We have arrows in Haskell haha.
2022-07-13 23:05:18 +0200 <Rembane> You'll have no chance against my profunctors! Ha!
2022-07-13 23:05:39 +0200 <monochrom> Monads are like clubs. You use a club to slam two layers into one. club :: M (M a) -> M a
2022-07-13 23:06:15 +0200justsomeguy(~justsomeg@user/justsomeguy)
2022-07-13 23:06:38 +0200ski. o O ( "<shapr> I'm addicted to arrows. * shapr begins his own paper \"Generalizing Arrows to Spears\" <shapr> Spears can do anything efficiently, but they have sixty thousand laws they must satisfy, and we haven't actually found one yet. <raphael> maybe \"Generalizing Arrows to Nuclear Weapons\" would simply be: unsafeInterleaveIO" )
2022-07-13 23:06:47 +0200 <monochrom> Alternatively, a 1000-page book like CLRS or HFFPP also works. >:)
2022-07-13 23:07:52 +0200 <Rembane> :D
2022-07-13 23:10:59 +0200 <EvanR> unsafeInterleaveIO seems more like a dr strange spell, whereas unsafeCoerce seems like the nuclear option. Unstoppable force followed by contamination xD
2022-07-13 23:11:29 +0200alp(~alp@user/alp) (Remote host closed the connection)
2022-07-13 23:11:48 +0200alp(~alp@user/alp)
2022-07-13 23:12:18 +0200 <ski> i've argued before that it shouldn't really be called `unsafe'
2022-07-13 23:12:27 +0200 <ski> (unlike `unsafeInterleaveST')
2022-07-13 23:12:38 +0200 <int-e> they're both capable footguns when put into capable hands
2022-07-13 23:12:43 +0200 <monochrom> What do you prefer to call it?
2022-07-13 23:12:47 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-07-13 23:13:00 +0200 <ski> how about just `interleaveIO' ?
2022-07-13 23:13:36 +0200 <ski> (also, i don't really like the whole "unsafe" terminology .. there's many different notions of unsafe)
2022-07-13 23:13:43 +0200 <monochrom> Hrm. I am sympathetic to that.
2022-07-13 23:14:36 +0200 <EvanR> such as the rust version of safety. If it's written in rust, it's safe. Otherwise it's unsafe xD
2022-07-13 23:14:40 +0200 <int-e> Hmm. unsafeInterleaveIO was named before nodup when it could produce observably impure values.
2022-07-13 23:14:49 +0200 <ski> (Mercury uses "promise" instead, together with a description of the conditions under which it's safe to use, and which the programmer has as a proof obligation)
2022-07-13 23:14:51 +0200 <[exa]> one should have a few levels of unsafe that allow to distinguish reasonably safe stuff from unsafePerformIO
2022-07-13 23:15:01 +0200 <monochrom> Well, my similar gripe is about the simpleton dichotomy of "strict" and "non-strict".
2022-07-13 23:16:06 +0200 <ski> (e.g. `promise_det'(erministic),`promise_equivalent_solutions',`promise_semipure',..)
2022-07-13 23:16:09 +0200 <int-e> Also... how does unsafeInterleaveIO work wrt. exceptions when the value is used inside STM? I think there's still the thing that aborting an STM action doesn't cause an exception breaking stuff like withMVar.
2022-07-13 23:16:54 +0200nate4(~nate@98.45.169.16)
2022-07-13 23:18:01 +0200 <EvanR> how about pure and not pure
2022-07-13 23:18:23 +0200 <EvanR> by what calculus can we know what is and isn't "really pure"
2022-07-13 23:18:31 +0200 <geekosaur> hm, isn't that a ghc / rts violation then? (unsafeInterleaveIO is supposed to swallow/ignore exceptions, but doesn't)
2022-07-13 23:18:32 +0200 <dolio> What happens in STM when you divide by 0?
2022-07-13 23:18:43 +0200[Leary](~Leary]@122-58-224-198-vdsl.sparkbb.co.nz) (Ping timeout: 272 seconds)
2022-07-13 23:18:49 +0200 <dolio> Or run out of memory?
2022-07-13 23:18:59 +0200 <ski> i've suggested `promisePureIO' for `unsafePerformIO' before (with the understanding that `promisePureIO . return = id')
2022-07-13 23:19:54 +0200 <int-e> that reminds me of the naming of irrefutable patterns
2022-07-13 23:20:11 +0200 <int-e> in that it requires logic to interpret correctly
2022-07-13 23:20:56 +0200merijn(~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds)
2022-07-13 23:21:00 +0200 <EvanR> promisePureIO makes sense. Is every place unsafePerformIO used in the standard library pure? xD
2022-07-13 23:21:16 +0200 <EvanR> otherwise that would be hypocritical!
2022-07-13 23:21:17 +0200 <int-e> ...global variables...
2022-07-13 23:21:41 +0200[exa]discovers don'tPerformIO is a valid identifier
2022-07-13 23:21:47 +0200nate4(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-07-13 23:21:50 +0200 <ski> int-e : logic, how ?
2022-07-13 23:21:52 +0200 <int-e> (decidedly impure; the trick there is to ensure perfect sharing)
2022-07-13 23:22:07 +0200 <int-e> ski: who's doing the promising here?
2022-07-13 23:22:14 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-13 23:22:24 +0200 <geekosaur> [exa], acme-dont
2022-07-13 23:22:48 +0200 <ski> promising what, re irrefutable patterns ? that they can't be refuted, always matches ?
2022-07-13 23:23:31 +0200 <ski> i guess the matching "promises" that in some sense, while later the actual subpattern may fail, when the branch has already been comitted to
2022-07-13 23:23:48 +0200 <EvanR> a global variable can be pure, imagine the meaning of the term socrates. As long as all programs referring to socrates refer to the same guy, and he can hold values for you, it's referentially transparent xD
2022-07-13 23:24:06 +0200 <monochrom> hahahaha
2022-07-13 23:24:33 +0200 <int-e> Oh that. Well, I know what "irrefutable patterns" means (they match; they fail instead of being refuted at that point), but I think "lazy patterns", while less precise, would be easier to understand.
2022-07-13 23:24:36 +0200 <[exa]> geekosaur: I knew it was somewhere!
2022-07-13 23:25:10 +0200 <ski> EvanR : makes me think of mobile code
2022-07-13 23:26:03 +0200 <ski> perhaps "delayed patterns" could be another option
2022-07-13 23:26:11 +0200 <EvanR> I was going to use king of france but that's a different connotation
2022-07-13 23:26:30 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-07-13 23:26:57 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 272 seconds)
2022-07-13 23:27:30 +0200 <monochrom> Yeah that gives me baldness anxiety haha
2022-07-13 23:28:10 +0200 <ski> if a program spawns a thread on a different node in the network, do you expect it to communicate with your node in order to access the "global variable", or to have its own instance ?
2022-07-13 23:28:29 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2022-07-13 23:28:45 +0200 <ski> (you can express such things in Alice ML, iirc)
2022-07-13 23:29:22 +0200 <EvanR> if you wanted it to not be so global, you should have passed it in as an argument xD
2022-07-13 23:29:51 +0200 <monochrom> Yes I passed it in by reference.
2022-07-13 23:29:51 +0200 <EvanR> taking global variables literally for fun and profit
2022-07-13 23:30:54 +0200 <EvanR> point was originally... if that's what it means, accessing it by means of unsafePerformIO shouldn't violate your promise
2022-07-13 23:31:11 +0200 <ski> <https://www.ps.uni-saarland.de/alice/manual/distribution.html>
2022-07-13 23:31:22 +0200 <EvanR> having different instances is where it gets complicated
2022-07-13 23:31:43 +0200kyborg2011(~kyborg201@217.147.170.194)
2022-07-13 23:32:05 +0200dextaa(~DV@user/dextaa) (Read error: Connection reset by peer)
2022-07-13 23:33:10 +0200alexhandy2(~trace@user/trace) (Read error: Connection reset by peer)
2022-07-13 23:33:28 +0200alexhandy(~trace@user/trace)
2022-07-13 23:33:56 +0200ski. o O ( "This implies that you must be careful not to use sited values in a service!" )
2022-07-13 23:34:11 +0200kyborg2011(~kyborg201@217.147.170.194) (Remote host closed the connection)
2022-07-13 23:35:12 +0200kyborg2011(~kyborg201@217.147.170.194)
2022-07-13 23:35:13 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.5)
2022-07-13 23:35:20 +0200dextaa(~DV@user/dextaa)
2022-07-13 23:35:23 +0200mmhat(~mmh@p200300f1c7090754ee086bfffe095315.dip0.t-ipconnect.de)
2022-07-13 23:35:45 +0200 <yax__> @pf (\x -> if isAlphaNum x then x else ' ')
2022-07-13 23:35:45 +0200 <lambdabot> Maybe you meant: pl bf
2022-07-13 23:35:55 +0200 <yax__> what
2022-07-13 23:35:58 +0200 <yax__> @help
2022-07-13 23:35:58 +0200 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
2022-07-13 23:36:09 +0200 <yax__> @help list
2022-07-13 23:36:09 +0200 <lambdabot> list [module|command]. Show commands for [module] or the module providing [command].
2022-07-13 23:36:13 +0200 <geekosaur> it's @pl
2022-07-13 23:36:17 +0200 <yax__> @pl (\x -> if isAlphaNum x then x else ' ')
2022-07-13 23:36:17 +0200 <lambdabot> flip (if' =<< isAlphaNum) ' '
2022-07-13 23:36:24 +0200Guest34(~Guest34@2605:a601:a615:f600:81b3:7572:de1c:534d) (Ping timeout: 252 seconds)
2022-07-13 23:36:28 +0200 <[exa]> yax__: contrary to the popular belief it's a pointless form
2022-07-13 23:36:33 +0200 <yax__> nvm im better of with it being point full
2022-07-13 23:37:28 +0200mvk(~mvk@2607:fea8:5ce3:8500::909a)
2022-07-13 23:40:15 +0200kyborg2011(~kyborg201@217.147.170.194) (Ping timeout: 272 seconds)
2022-07-13 23:41:27 +0200 <ski> i remember seeing `cond p f g x = if p x then f x else g x' defined
2022-07-13 23:41:28 +0200janus(janus@anubis.0x90.dk) ()
2022-07-13 23:42:10 +0200tomgus1(~tomgus1@97e50351.skybroadband.com) (Ping timeout: 240 seconds)
2022-07-13 23:42:10 +0200 <ski> (which'd make that `cond isAlphaNum id (const ' ')')
2022-07-13 23:44:40 +0200 <monochrom> I wrote a shell script that went: if ... ; then cat foo ; else grep "$city" foo fi | sort | ...
2022-07-13 23:44:46 +0200pagnol(~me@213-205-209-87.ftth.glasoperator.nl)
2022-07-13 23:44:58 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-07-13 23:45:05 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-07-13 23:49:09 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e) (Remote host closed the connection)
2022-07-13 23:49:13 +0200 <hpc> functional bash is entertainingly weird
2022-07-13 23:49:21 +0200 <hpc> and sometimes unentertainingly
2022-07-13 23:49:27 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:a9e5:8234:e3a4:dc0e)
2022-07-13 23:49:37 +0200 <monochrom> Hey you liked it! Let me tell you a recursive shell function I wrote, too
2022-07-13 23:49:43 +0200 <hpc> you know how you can do x="--a --b", and then "foo $x" runs foo with two arguments?
2022-07-13 23:50:01 +0200 <hpc> if you do x = "foo --a" and then "$x --b", it tries to find a binary named "foo --a" :(
2022-07-13 23:51:20 +0200 <monochrom> piper() { if [ $# -eq 0 ]; then cat; else p=$1 ; shift ; "$p" | piper "$@" ; fi ; }
2022-07-13 23:51:59 +0200 <monochrom> So "piper x y z" means "x | y | z" (or more precisely "x | y | z | cat" but cat is the identity of the | monoid)
2022-07-13 23:52:18 +0200 <hpc> another member of the useless use of cat club!
2022-07-13 23:52:26 +0200 <hpc> i always start my pipelines with cat too
2022-07-13 23:52:30 +0200 <hpc> cat file | grep foo
2022-07-13 23:52:51 +0200 <hpc> this is definitely #haskell material :D
2022-07-13 23:53:25 +0200 <hpc> although, i like calling it the pipe monoid
2022-07-13 23:55:00 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2022-07-13 23:55:34 +0200 <hpc> i like thinking of rust code as a big monad too, because of they way their blocks work
2022-07-13 23:55:42 +0200 <hpc> returning isn't a return keyword that changes control flow
2022-07-13 23:55:48 +0200 <hpc> it's just the value of the last line of the block
2022-07-13 23:55:59 +0200 <hpc> kind of like do, with implicit pure
2022-07-13 23:56:22 +0200 <monochrom> Yeah they have a ? marker for an ExceptT IO monad.
2022-07-13 23:56:31 +0200 <hpc> and the async keyword
2022-07-13 23:57:42 +0200 <hpc> no joke, the first time i ever wrote rust code, i got to where i needed to write a case statement about 5 minutes into trying stuff out
2022-07-13 23:57:52 +0200 <hpc> and thought "wow, this is basically low-level haskell"
2022-07-13 23:57:53 +0200img(~img@user/img)
2022-07-13 23:58:05 +0200jeetelongname(~jeet@cpc96970-rdng25-2-0-cust390.15-3.cable.virginm.net)
2022-07-13 23:58:38 +0200segfaultfizzbuzz(~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds)
2022-07-13 23:58:45 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-07-13 23:59:16 +0200 <hpc> its record syntax feels really natural too, and i think it's reproducible with a few language extensions
2022-07-13 23:59:28 +0200Pickchea(~private@user/pickchea)
2022-07-13 23:59:41 +0200 <hpc> maybe ghc could bring back something like the glasgow extensions, and just have a quick "rust records" flag that turns them all on at once