2021/12/03

2021-12-03 00:02:41 +0100 <sm> yes, nice answer
2021-12-03 00:03:16 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-12-03 00:03:36 +0100 <Hecate> dsal, sm haha thanks :)
2021-12-03 00:03:39 +0100juri_(~juri@178.63.35.222) (Ping timeout: 250 seconds)
2021-12-03 00:03:40 +0100 <Hecate> Franciman: thanks :3
2021-12-03 00:06:25 +0100 <jackdk> hey cool, the amazonka RC got into HWN too. Wish the call-to-action made it in also - if you're using it, please upgrade and test. I promise to respond promptly to issues etc
2021-12-03 00:07:28 +0100 <Axman6> The translation to v2.0 for one of my packages ended up being less painful than I expected
2021-12-03 00:10:06 +0100Midjak(~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Quit: This computer has gone to sleep)
2021-12-03 00:10:09 +0100jstolarek(~jstolarek@137.220.120.162) (Ping timeout: 256 seconds)
2021-12-03 00:10:33 +0100chomwitt(~chomwitt@2a02:587:dc0d:6d00:12c3:7bff:fe6d:d374) (Ping timeout: 268 seconds)
2021-12-03 00:10:42 +0100juri_(~juri@79.140.120.193)
2021-12-03 00:10:51 +0100 <Axman6> Also, getting to use generic-lens was fun, definitely cleaner than the new lenses (which I suspect have intentionally been given very long, annoying names to disuade people from using them)
2021-12-03 00:14:18 +0100deadmarshal(~deadmarsh@95.38.116.117)
2021-12-03 00:15:44 +0100 <monochrom> https://xkcd.com/1105/ applies.
2021-12-03 00:17:01 +0100jgeerds(~jgeerds@55d45b75.access.ecotel.net) (Ping timeout: 245 seconds)
2021-12-03 00:17:15 +0100cosimone(~user@93-44-186-55.ip98.fastwebnet.it) (Remote host closed the connection)
2021-12-03 00:18:29 +0100deadmarshal(~deadmarsh@95.38.116.117) (Ping timeout: 252 seconds)
2021-12-03 00:18:44 +0100 <monochrom> Also, IDEs use auto-completion to solve all long, annoying name problems.
2021-12-03 00:19:31 +0100 <EvanR> all?
2021-12-03 00:19:50 +0100 <EvanR> what about the "have to read the code" part of the problem xD
2021-12-03 00:20:08 +0100 <hpc> when has reading code ever been necessary to write code? :P
2021-12-03 00:20:09 +0100 <EvanR> "without being too annoyed"
2021-12-03 00:20:18 +0100machinedgod(~machinedg@24.105.81.50)
2021-12-03 00:21:21 +0100max22-(~maxime@2a01cb0883359800118b3200b4a756c8.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
2021-12-03 00:21:27 +0100 <monochrom> I thought syntax highlighting solved all reading problems.
2021-12-03 00:21:57 +0100 <monochrom> I mean, I thought people made that claim.
2021-12-03 00:22:54 +0100 <hpc> maybe 256 colors was enough for 80x24 characters of code
2021-12-03 00:23:07 +0100 <hpc> in today's world of portrait-oriented 4k screens, nothing less than emoji and helvetica is required
2021-12-03 00:23:08 +0100 <geekosaur> syntax gaslighting
2021-12-03 00:26:35 +0100xff0x(~xff0x@2001:1a81:5351:7200:d75b:ca2f:7cd3:f39) (Ping timeout: 268 seconds)
2021-12-03 00:27:13 +0100xff0x(~xff0x@2001:1a81:5351:7200:c8d5:d64b:ba01:92ce)
2021-12-03 00:29:24 +0100AlexNoo_(~AlexNoo@178.34.151.83)
2021-12-03 00:32:15 +0100AlexZenon(~alzenon@178.34.160.14) (Ping timeout: 256 seconds)
2021-12-03 00:32:19 +0100Alex_test(~al_test@178.34.160.14) (Ping timeout: 256 seconds)
2021-12-03 00:32:49 +0100AlexNoo(~AlexNoo@178.34.160.14) (Ping timeout: 256 seconds)
2021-12-03 00:33:05 +0100jasonmason(~bc8165b6@cerf.good1.com) (Quit: CGI:IRC (Session timeout))
2021-12-03 00:33:20 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 252 seconds)
2021-12-03 00:34:37 +0100juri_(~juri@79.140.120.193) (Ping timeout: 252 seconds)
2021-12-03 00:35:33 +0100waleee(~waleee@h-82-196-111-63.NA.cust.bahnhof.se)
2021-12-03 00:35:51 +0100namkeleser(~namkelese@101.175.102.188)
2021-12-03 00:36:35 +0100juri_(~juri@178.63.35.222)
2021-12-03 00:37:29 +0100Alex_test(~al_test@178.34.151.83)
2021-12-03 00:38:09 +0100AlexZenon(~alzenon@178.34.151.83)
2021-12-03 00:41:19 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 256 seconds)
2021-12-03 00:45:23 +0100 <shapr> I was gonna complain about this paper https://well-typed.com/blog/2019/10/nonmoving-gc-merge/ but then I found https://www.cs.unh.edu/~dietz/appendix/pldiws20ismmmain-p64-p-18fdc64--final.pdf
2021-12-03 00:45:28 +0100 <shapr> thanks bgamari for doing awesome stuff!
2021-12-03 00:46:14 +0100 <bgamari> shapr, no worries ;)
2021-12-03 00:46:20 +0100 <bgamari> shapr, let me know if you have any questions
2021-12-03 00:49:29 +0100hamflask(~hamflask@2600:1700:1bd8:b00f:8fba:5075:a126:c2f) (Quit: Ping timeout (120 seconds))
2021-12-03 00:50:32 +0100 <shapr> bgamari: only one I have at the moment is whether the non-moving GC became parallel since its merge in 8.10 ?
2021-12-03 00:50:45 +0100 <bgamari> shapr, I have a branch
2021-12-03 00:50:49 +0100 <bgamari> it currently segfaults
2021-12-03 00:50:51 +0100 <shapr> oh exciting!
2021-12-03 00:50:53 +0100 <shapr> oh no!
2021-12-03 00:50:55 +0100 <bgamari> I haven't had time to investigate why
2021-12-03 00:51:05 +0100 <bgamari> Perhaps for9.4
2021-12-03 00:51:09 +0100 <shapr> yay!
2021-12-03 00:51:21 +0100dudek(~dudek@185.150.236.103) (Quit: Leaving)
2021-12-03 00:51:29 +0100kuribas(~user@ptr-25vy0i85jcl6zvp0ziu.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-12-03 00:51:33 +0100 <shapr> five of us are reading the alligator paper for our weekly meeting, I'll ask if anyone has interesting questions
2021-12-03 00:51:45 +0100sprout_(~quassel@2a02:a467:ccd6:1:54db:f79f:90dc:3ee5) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-12-03 00:52:04 +0100sprout(~quassel@2a02:a467:ccd6:1:54db:f79f:90dc:3ee5)
2021-12-03 00:59:47 +0100namkeleser(~namkelese@101.175.102.188) (Quit: Client closed)
2021-12-03 01:01:40 +0100 <EvanR> you have a weekly meeting about haskell? jelly :(
2021-12-03 01:04:42 +0100 <shapr> several!
2021-12-03 01:04:56 +0100 <shapr> one for recurse center, two for work (SimSpace)
2021-12-03 01:05:25 +0100 <shapr> EvanR: we could have one for here
2021-12-03 01:11:15 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-12-03 01:11:34 +0100 <geekosaur> "recurse center"
2021-12-03 01:12:04 +0100 <EvanR> a weekly meeting, on IRC?
2021-12-03 01:12:45 +0100 <monochrom> Actually I'm curious too. Does it mean https://www.recurse.com/ ?
2021-12-03 01:13:24 +0100 <monochrom> "Never graduate" haha do you know how nightmarish that sounds to grad school survivors >:)
2021-12-03 01:16:33 +0100 <dsal> shapr: Ah, that's you? I've got a tab open. heh
2021-12-03 01:16:41 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3)
2021-12-03 01:19:42 +0100anyone(~filler@a4.inai.de)
2021-12-03 01:20:08 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2021-12-03 01:21:28 +0100 <shapr> dsal: have you attended recurse center?
2021-12-03 01:21:30 +0100 <shapr> it's good stuff
2021-12-03 01:21:46 +0100 <dsal> I've never heard of recurse center.
2021-12-03 01:21:48 +0100 <shapr> EvanR: sure, we could organize a weekly video chat
2021-12-03 01:22:12 +0100 <shapr> dsal: it's in my top two favorite communities
2021-12-03 01:22:28 +0100 <dsal> That looks like a thing I'd like, though.
2021-12-03 01:25:56 +0100 <shapr> I liked it enough to spend six months there.
2021-12-03 01:26:09 +0100 <shapr> wrote some blog posts: https://shapr.github.io/
2021-12-03 01:26:20 +0100 <shapr> learned about SMT solvers and all kinda things
2021-12-03 01:26:41 +0100machinedgod(~machinedg@24.105.81.50)
2021-12-03 01:27:34 +0100anyone(~filler@a4.inai.de) ()
2021-12-03 01:33:03 +0100Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
2021-12-03 01:35:14 +0100 <boxscape> is there any package that allows you to generate TH expressions for quickcheck?
2021-12-03 01:36:13 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection)
2021-12-03 01:36:46 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-12-03 01:37:40 +0100 <boxscape> in other words
2021-12-03 01:37:54 +0100 <boxscape> a package that provides an instance `Arbitrary Language.Haskell.TH.Exp`
2021-12-03 01:40:59 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 252 seconds)
2021-12-03 01:44:33 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-03 01:44:47 +0100curiousgay(~curiousga@77-120-141-90.kha.volia.net) (Ping timeout: 256 seconds)
2021-12-03 01:46:29 +0100vysn(~vysn@user/vysn) (Ping timeout: 252 seconds)
2021-12-03 01:46:46 +0100renzhi(~xp@2607:fa49:6500:b100::5cef)
2021-12-03 01:49:39 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-03 01:52:19 +0100rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
2021-12-03 01:54:29 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 256 seconds)
2021-12-03 02:09:54 +0100boxscape_73(~boxscape_@p4ff0bb6c.dip0.t-ipconnect.de)
2021-12-03 02:10:08 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 252 seconds)
2021-12-03 02:12:31 +0100boxscape_(~boxscape_@p4ff0bb6c.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-12-03 02:12:43 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-12-03 02:15:05 +0100acidjnk_new(~acidjnk@p200300d0c7271e85247d18c27da64632.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-12-03 02:16:11 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
2021-12-03 02:17:43 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
2021-12-03 02:18:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-03 02:19:16 +0100notzmv(~zmv@user/notzmv) (Read error: Connection reset by peer)
2021-12-03 02:23:45 +0100notzmv(~zmv@user/notzmv)
2021-12-03 02:30:13 +0100DNH(~DNH@2a02:8108:1100:16d8:a968:658b:9652:428a) (Quit: Textual IRC Client: www.textualapp.com)
2021-12-03 02:44:32 +0100lbseale(~ep1ctetus@user/ep1ctetus) (Quit: Leaving)
2021-12-03 02:46:28 +0100 <Axman6> that sounds horrible D:
2021-12-03 02:46:41 +0100 <Axman6> you're gonna make AI monsters man
2021-12-03 02:47:40 +0100 <boxscape> that's the plan
2021-12-03 02:48:36 +0100jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-12-03 02:57:33 +0100mmhat(~mmh@55d45251.access.ecotel.net) (Quit: WeeChat 3.3)
2021-12-03 02:59:51 +0100jakalx(~jakalx@base.jakalx.net)
2021-12-03 03:02:06 +0100epolanski(uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-03 03:02:25 +0100cheater(~Username@user/cheater) (Ping timeout: 256 seconds)
2021-12-03 03:02:26 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-03 03:06:57 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-12-03 03:07:29 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-12-03 03:08:38 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-12-03 03:08:53 +0100yauhsien(~yauhsien@2402:7500:4e5:d897:6d8a:b7a6:6ceb:da56)
2021-12-03 03:10:21 +0100neurocyte0132889(~neurocyte@user/neurocyte) (Ping timeout: 256 seconds)
2021-12-03 03:12:01 +0100sprout(~quassel@2a02:a467:ccd6:1:54db:f79f:90dc:3ee5) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-12-03 03:12:26 +0100sprout(~quassel@2a02:a467:ccd6:1:54db:f79f:90dc:3ee5)
2021-12-03 03:15:00 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 03:16:40 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 03:17:53 +0100justsomeguy(~justsomeg@user/justsomeguy)
2021-12-03 03:21:09 +0100abrantesasf(~abrantesa@187.36.170.211) (Remote host closed the connection)
2021-12-03 03:22:27 +0100ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-12-03 03:23:48 +0100neurocyte0132889(~neurocyte@IP-185189141046.dynamic.medianet-world.de)
2021-12-03 03:23:48 +0100neurocyte0132889(~neurocyte@IP-185189141046.dynamic.medianet-world.de) (Changing host)
2021-12-03 03:23:48 +0100neurocyte0132889(~neurocyte@user/neurocyte)
2021-12-03 03:27:27 +0100fef(~thedawn@user/thedawn)
2021-12-03 03:28:17 +0100 <boxscape> is there a nicer way to write (escape @Exp . escape @Type . escape @Dec . escape @Pat)?
2021-12-03 03:30:58 +0100xff0x(~xff0x@2001:1a81:5351:7200:c8d5:d64b:ba01:92ce) (Ping timeout: 268 seconds)
2021-12-03 03:31:00 +0100lavaman(~lavaman@98.38.249.169)
2021-12-03 03:32:25 +0100xff0x(~xff0x@2001:1a81:5394:4100:b17b:62d7:7f1e:4d8a)
2021-12-03 03:34:01 +0100unyu(~pyon@user/pyon) (Quit: WeeChat 3.3)
2021-12-03 03:35:03 +0100TranquilEcho(~grom@user/tranquilecho) (Quit: WeeChat 2.8)
2021-12-03 03:35:21 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2021-12-03 03:35:49 +0100 <boxscape> maybe in the glorious future of DH I'll be able to write `alaf foldMap Endo escape [Exp, Type, Dec, Pat]`
2021-12-03 03:36:29 +0100arahael(~arahael@27-32-144-20.tpgi.com.au) (Ping timeout: 252 seconds)
2021-12-03 03:38:04 +0100arahael(~arahael@27-32-144-20.tpgi.com.au)
2021-12-03 03:39:37 +0100 <Axman6> feels like a nice haskell challenge
2021-12-03 03:40:54 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection)
2021-12-03 03:41:02 +0100unyu(~pyon@user/pyon)
2021-12-03 03:41:26 +0100burnsidesLlama(~burnsides@client-8-73.eduroam.oxuni.org.uk)
2021-12-03 03:46:03 +0100burnsidesLlama(~burnsides@client-8-73.eduroam.oxuni.org.uk) (Ping timeout: 256 seconds)
2021-12-03 03:47:35 +0100Stotteren(~Stotteren@pool-108-20-79-41.bstnma.fios.verizon.net)
2021-12-03 03:47:39 +0100Gestotterd(~Stotteren@pool-108-20-79-41.bstnma.fios.verizon.net)
2021-12-03 03:48:40 +0100Gestotterd(~Stotteren@pool-108-20-79-41.bstnma.fios.verizon.net) ()
2021-12-03 03:49:09 +0100namkeleser(~namkelese@101.175.102.188)
2021-12-03 03:50:16 +0100Kiori(~Kiori@179.235.95.59)
2021-12-03 03:52:33 +0100ubert(~Thunderbi@p200300ecdf0ba2909868c7bbf0c5b488.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2021-12-03 03:52:44 +0100ub(~Thunderbi@p200300ecdf0ba299f01739553a033620.dip0.t-ipconnect.de)
2021-12-03 03:53:21 +0100yauhsien(~yauhsien@2402:7500:4e5:d897:6d8a:b7a6:6ceb:da56) (Ping timeout: 252 seconds)
2021-12-03 03:53:29 +0100 <Kiori> hey guys, what is the current state of haskell on Android(and mobile generally)? I've had a hard time finding information on compiling and general development for these arm based platforms.
2021-12-03 03:54:45 +0100cheater(~Username@user/cheater)
2021-12-03 03:55:03 +0100ububert
2021-12-03 03:56:15 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds)
2021-12-03 03:58:03 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-12-03 04:00:02 +0100sander(~sander@user/sander) (Quit: So long! :))
2021-12-03 04:01:30 +0100sander(~sander@user/sander)
2021-12-03 04:03:26 +0100 <sm> difficult
2021-12-03 04:05:07 +0100kupi(uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-03 04:05:45 +0100 <sm> some company sells a toolkit for it (keera studios ?)
2021-12-03 04:08:02 +0100Xnuk(~Xnuk@14.33.159.252)
2021-12-03 04:08:58 +0100 <Xnuk> @pl \x -> x
2021-12-03 04:08:58 +0100 <lambdabot> id
2021-12-03 04:13:25 +0100Kiori(~Kiori@179.235.95.59) (Quit: Leaving)
2021-12-03 04:13:57 +0100 <davean> heres also a nix expression out there that just does it? I forget where
2021-12-03 04:14:11 +0100 <davean> and Obsidian Systems also dealt with it I think?
2021-12-03 04:15:22 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-03 04:15:36 +0100waleee(~waleee@h-82-196-111-63.NA.cust.bahnhof.se) (Quit: WeeChat 3.3)
2021-12-03 04:18:58 +0100Xnuk(~Xnuk@14.33.159.252) (Quit: Client closed)
2021-12-03 04:24:19 +0100pfurla(~pfurla@201.17.118.230)
2021-12-03 04:28:55 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Quit: Leaving)
2021-12-03 04:29:32 +0100 <boxscape> The composition I asked about above was actually wrong, it now looks like this https://paste.tomsmeding.com/CUEbLR49
2021-12-03 04:29:36 +0100 <boxscape> still kind of verbose
2021-12-03 04:29:42 +0100 <boxscape> not sure if there's a better way
2021-12-03 04:30:53 +0100 <boxscape> hmm I might be able to split that pattern out into a function call actually
2021-12-03 04:36:29 +0100rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 256 seconds)
2021-12-03 04:37:03 +0100td_(~td@muedsl-82-207-238-002.citykom.de) (Ping timeout: 256 seconds)
2021-12-03 04:38:45 +0100td_(~td@94.134.91.231)
2021-12-03 04:38:54 +0100 <boxscape> indeed I can https://paste.tomsmeding.com/x7GghwV1
2021-12-03 04:42:47 +0100jle`(~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 256 seconds)
2021-12-03 04:44:42 +0100jle`(~jle`@cpe-23-240-75-236.socal.res.rr.com)
2021-12-03 04:44:59 +0100 <boxscape> (admittedly actually less readable than before)
2021-12-03 04:49:27 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-03 04:52:30 +0100johnw(~johnw@2607:f6f0:3004:1:c8b4:50ff:fef8:6bf0) (Quit: ZNC - http://znc.in)
2021-12-03 04:53:29 +0100namkeleser(~namkelese@101.175.102.188) (Quit: Client closed)
2021-12-03 04:54:20 +0100finn_elija(~finn_elij@user/finn-elija/x-0085643)
2021-12-03 04:54:20 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2021-12-03 04:54:20 +0100finn_elijaFinnElija
2021-12-03 04:58:32 +0100Lycurgus(~juan@98.4.112.204)
2021-12-03 04:59:31 +0100 <boxscape> (final version - https://paste.tomsmeding.com/yUd2TelK - going to bed, good night)
2021-12-03 05:00:17 +0100yauhsien(~yauhsien@2402:7500:4e5:d897:5d9d:1dde:33ff:788f)
2021-12-03 05:02:01 +0100yauhsien(~yauhsien@2402:7500:4e5:d897:5d9d:1dde:33ff:788f) (Remote host closed the connection)
2021-12-03 05:04:44 +0100 <EvanR> is there something like juicy pixels but for sound files
2021-12-03 05:04:50 +0100 <EvanR> juicy samples
2021-12-03 05:12:52 +0100 <Lycurgus> bindings to things
2021-12-03 05:14:56 +0100boxscape_73(~boxscape_@p4ff0bb6c.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-12-03 05:17:35 +0100 <Axman6> libsndfile?
2021-12-03 05:19:40 +0100 <Axman6> http://www.mega-nerd.com/libsndfile/ is writtne be Erik de Castro Lopo, who is definitelyt an active haskeller... trying to see if he has haskell bindings
2021-12-03 05:20:50 +0100 <EvanR> there's simply bindings to C libs, and there's the juicy pixels secret sauce that's like file -> thing of pixels and tells you the format too without any real configuration
2021-12-03 05:20:59 +0100 <EvanR> in one api call
2021-12-03 05:22:15 +0100 <EvanR> I see libsndfile doesn't want to touch MP3
2021-12-03 05:24:24 +0100 <Axman6> does anyone?
2021-12-03 05:27:50 +0100Sgeo(~Sgeo@user/sgeo)
2021-12-03 05:27:51 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-03 05:30:52 +0100pfurla(~pfurla@201.17.118.230) (Quit: gone to sleep. ZZZzzz…)
2021-12-03 05:32:21 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-12-03 05:38:13 +0100renzhi(~xp@2607:fa49:6500:b100::5cef) (Ping timeout: 252 seconds)
2021-12-03 05:41:39 +0100justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 256 seconds)
2021-12-03 05:42:15 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-03 05:45:21 +0100deadmarshal(~deadmarsh@95.38.116.117)
2021-12-03 05:48:04 +0100Lycurgus(~juan@98.4.112.204) (Quit: Exeunt)
2021-12-03 05:49:45 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-03 05:57:24 +0100slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-12-03 06:16:20 +0100zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2021-12-03 06:17:38 +0100Sgeo_(~Sgeo@user/sgeo)
2021-12-03 06:20:01 +0100Sgeo(~Sgeo@user/sgeo) (Ping timeout: 252 seconds)
2021-12-03 06:25:55 +0100nautical(~nautical@2601:602:900:1630::396f)
2021-12-03 06:37:26 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 252 seconds)
2021-12-03 06:39:27 +0100monochrom(trebla@216.138.220.146) (Ping timeout: 252 seconds)
2021-12-03 06:42:23 +0100 <opqdonut> roast my advent of code day 3: https://gist.github.com/opqdonut/eedde3377492334ba7074130e9e52653
2021-12-03 06:42:31 +0100monochrom(trebla@216.138.220.146)
2021-12-03 06:45:47 +0100 <int-e> :t foldl' (\a b -> 2*a + b) 0
2021-12-03 06:45:48 +0100 <lambdabot> (Foldable t, Num a) => t a -> a
2021-12-03 06:45:53 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-03 06:47:11 +0100 <int-e> opqdonut: are you running this in ghci? (no main)
2021-12-03 06:48:01 +0100deadmarshal(~deadmarsh@95.38.116.117) (Ping timeout: 256 seconds)
2021-12-03 06:49:05 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-12-03 06:52:13 +0100 <opqdonut> int-e: yeah
2021-12-03 06:53:07 +0100 <opqdonut> I just wrote out `bin` in anger when I realised the version of base I happened to be on didn't have Numeric.readBin :)
2021-12-03 06:53:24 +0100 <opqdonut> but yeah now that I look at it it's an obvious foldl'
2021-12-03 06:56:05 +0100 <int-e> bin xs | [(v, s)] <- readInt 2 (`elem` "01") digitToInt xs = v -- ouch
2021-12-03 06:57:49 +0100 <int-e> `readBin`, oh that's new in ghc-9.2... hmm. Not enough of a reason to switch :P
2021-12-03 06:58:26 +0100 <int-e> (base-4.16 but it's tied to ghc anyway)
2021-12-03 06:58:42 +0100johnw(~johnw@2607:f6f0:3004:1:c8b4:50ff:fef8:6bf0)
2021-12-03 06:59:07 +0100 <xerox> it was for me xD
2021-12-03 07:07:19 +0100mvk(~mvk@2607:fea8:5cc1:fa00::4702) (Ping timeout: 252 seconds)
2021-12-03 07:09:26 +0100lavaman(~lavaman@98.38.249.169)
2021-12-03 07:11:15 +0100n8ess163(~b@pool-72-80-171-162.nycmny.fios.verizon.net)
2021-12-03 07:13:53 +0100deadmarshal(~deadmarsh@95.38.116.117)
2021-12-03 07:13:55 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-12-03 07:14:07 +0100 <dmj`> hard keeping up with the big dogs on day 3
2021-12-03 07:17:51 +0100 <c_wraith> I spent a lot of time solving the wrong problem in part 2 because I didn't read the example. Then I read the example, threw out all my code, and spent a lot less time solving the right problem.
2021-12-03 07:20:09 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-03 07:26:56 +0100deadmarshal(~deadmarsh@95.38.116.117) (Ping timeout: 252 seconds)
2021-12-03 07:28:04 +0100chomwitt(~chomwitt@2a02:587:dc0d:6d00:12c3:7bff:fe6d:d374)
2021-12-03 07:28:06 +0100 <EvanR> I feel so dumb taking an hour on part 2
2021-12-03 07:28:10 +0100 <EvanR> stupid bugs
2021-12-03 07:28:49 +0100curiousgay(~curiousga@77-120-141-90.kha.volia.net)
2021-12-03 07:29:56 +0100 <EvanR> on part 1, i momentarily checked if there was some algebraic jibber jabber that could solve x times not x without a computer xD
2021-12-03 07:30:06 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds)
2021-12-03 07:31:43 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-12-03 07:33:24 +0100 <dmj`> c_wraith: did the same exact thing yesterday
2021-12-03 07:34:53 +0100 <dmj`> Part 2 you had to select the right column in the transpose, and then use that to filter out the rows from initial, and iterate until a single element.
2021-12-03 07:36:05 +0100deadmarshal(~deadmarsh@95.38.116.117)
2021-12-03 07:36:15 +0100 <EvanR> no point in transposing if your transpose is invalidated at each step xD
2021-12-03 07:43:59 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-03 07:47:05 +0100 <EvanR> opqdonut, after the first day, I got a 2 terminal setup where I had a source file where I could put functions, and ghci in the other that I :reload to test or just run the damn thing by typing main
2021-12-03 07:47:33 +0100 <int-e> :r works
2021-12-03 07:48:39 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-12-03 07:49:04 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-12-03 07:49:09 +0100shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
2021-12-03 07:49:27 +0100 <EvanR> good call
2021-12-03 07:49:41 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-03 07:49:44 +0100 <EvanR> was hoping for a control + something combo xD
2021-12-03 07:52:16 +0100 <dmj`> EvanR: true, guess I only transpose on part 1
2021-12-03 07:53:14 +0100 <int-e> EvanR: I guess you could play with https://github.com/judah/haskeline/wiki/KeyBindings
2021-12-03 07:53:37 +0100 <int-e> (I've never done that though, not sure how well that works.)
2021-12-03 07:53:53 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds)
2021-12-03 07:54:18 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2021-12-03 07:54:21 +0100 <int-e> https://github.com/judah/haskeline/wiki/KeyBindings is a better link
2021-12-03 07:54:51 +0100 <xerox> EvanR: if you're looking for compilation errors check out ghcid, it's beautiful
2021-12-03 07:55:05 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-12-03 07:56:21 +0100 <iqubic> HLS is also great too.
2021-12-03 08:08:00 +0100 <int-e> EvanR: hmm, this doesn't look so bad, though I do wonder why it doesn't recognize f5 out of the box for me: http://paste.debian.net/1221780/
2021-12-03 08:08:30 +0100EvanR(~evan@user/evanr) (Remote host closed the connection)
2021-12-03 08:08:47 +0100EvanR(~evan@2600:1700:ba69:10:87af:d76a:1197:e8dd)
2021-12-03 08:08:50 +0100gehmehgeh(~user@user/gehmehgeh)
2021-12-03 08:09:03 +0100 <int-e> there's also a blog post doing something similar, https://blog.rcook.org/blog/2018/ghci-custom-key-bindings/
2021-12-03 08:12:35 +0100 <dmj`> EvanR: despite it being invalidated, the transpose offers a convenient way to get a column, however inefficient.
2021-12-03 08:14:59 +0100chele(~chele@user/chele)
2021-12-03 08:15:30 +0100dschrempf(~dominik@mobiledyn-62-240-134-39.mrsn.at)
2021-12-03 08:16:12 +0100imdoor(~imdoor@balticom-142-78-50.balticom.lv)
2021-12-03 08:27:17 +0100m5zs7k(aquares@web10.mydevil.net) (Write error: Connection reset by peer)
2021-12-03 08:27:34 +0100m5zs7k(aquares@web10.mydevil.net)
2021-12-03 08:28:50 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 08:30:31 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 08:30:49 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 08:32:29 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 08:32:47 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 08:34:26 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 08:34:43 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 08:35:20 +0100michalz(~michalz@185.246.204.43)
2021-12-03 08:37:38 +0100_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-12-03 08:39:34 +0100max22-(~maxime@2a01cb088335980065dae87f91b73dea.ipv6.abo.wanadoo.fr)
2021-12-03 08:41:14 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 08:41:31 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 08:41:51 +0100deadmarshal(~deadmarsh@95.38.116.117) (Ping timeout: 256 seconds)
2021-12-03 08:42:35 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 08:42:47 +0100sprout_(~quassel@2a02:a467:ccd6:1:acfd:d7bd:8c5c:5aef)
2021-12-03 08:42:52 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 08:44:58 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 08:45:15 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 08:46:42 +0100sprout(~quassel@2a02:a467:ccd6:1:54db:f79f:90dc:3ee5) (Ping timeout: 268 seconds)
2021-12-03 08:46:59 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 08:47:05 +0100notzmv(~zmv@user/notzmv)
2021-12-03 08:47:17 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 08:49:07 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 08:51:05 +0100curiousgay(~curiousga@77-120-141-90.kha.volia.net) (Ping timeout: 252 seconds)
2021-12-03 08:51:46 +0100deadmarshal(~deadmarsh@95.38.116.117)
2021-12-03 08:52:24 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 08:54:53 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 08:55:10 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 08:56:06 +0100n8ess163(~b@pool-72-80-171-162.nycmny.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-12-03 08:58:49 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 08:59:06 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 09:02:53 +0100jakalx(~jakalx@base.jakalx.net) ()
2021-12-03 09:03:01 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:2293:2037:bf6e:4ea5)
2021-12-03 09:04:01 +0100 <siers> how can I write Endo (a, a) for (a -> a, a -> a)? I found uncurry bimap. But how do I do that for an 3-tuple or 4-tuple? Do I need something like scrap your boilerplate
2021-12-03 09:06:33 +0100 <siers> if I could turn tuples into lists with generic programming, then it's just a map (uncurry ($)) (zip funcTuple dataTuple)
2021-12-03 09:06:41 +0100 <dminuoso> Just do the pattern matching by hand?
2021-12-03 09:06:46 +0100 <siers> yes, that's an option
2021-12-03 09:06:53 +0100 <siers> just curious about how to do it generically
2021-12-03 09:07:02 +0100 <siers> I already wrote the version by hand :)
2021-12-03 09:07:07 +0100 <dminuoso> There's no elegant, expressive, idiomatic way to do it.
2021-12-03 09:07:18 +0100jakalx(~jakalx@base.jakalx.net)
2021-12-03 09:07:51 +0100 <dminuoso> You can use any of: a) typeclass-based generic uncurry, b) Generic-based generic uncurry or c) TH-based uncurry
2021-12-03 09:08:25 +0100 <dminuoso> Though, you can use `lens` or `optics` if you want.
2021-12-03 09:08:34 +0100 <dminuoso> If you have these as dependencies already.
2021-12-03 09:08:54 +0100 <dminuoso> Both come with an Each typeclass that gives you that expressivity
2021-12-03 09:09:04 +0100 <dminuoso> For up to ~10 tuples I think
2021-12-03 09:10:05 +0100 <siers> wouldn't each be like map f list instead of map uncurry (zip a b)?
2021-12-03 09:10:46 +0100 <dminuoso> Functor does not work because of the kindness of the types
2021-12-03 09:10:59 +0100 <dminuoso> Also, you'd have to line up those tuples, you cant uniformly apply `f`
2021-12-03 09:11:10 +0100 <dminuoso> i.e. you want to compose component-wise
2021-12-03 09:11:32 +0100 <siers> right, that's why I'm saying Each shouldn't work
2021-12-03 09:12:17 +0100 <dminuoso> Sorry, with Ixed you could
2021-12-03 09:12:55 +0100 <dminuoso> Let me try and cook it up
2021-12-03 09:13:38 +0100 <dminuoso> Ah no, we'd need something like IEach
2021-12-03 09:14:01 +0100 <siers> I don't know so much about lens, but enough to make me suspect I couldn't do it with lens
2021-12-03 09:14:53 +0100almight(~almight@103.142.31.135)
2021-12-03 09:15:37 +0100 <almight> Iam trying to run my haskell servant server in a docker container.
2021-12-03 09:15:38 +0100 <almight> FROM ubuntu
2021-12-03 09:15:38 +0100 <almight> WORKDIR /app
2021-12-03 09:15:39 +0100 <almight> RUN apt-get update
2021-12-03 09:15:39 +0100 <almight> RUN apt-get install libpq-dev -y
2021-12-03 09:15:40 +0100 <almight> RUN apt-get install ca-certificates -y
2021-12-03 09:15:40 +0100 <almight> #Copy the binary generated during build
2021-12-03 09:15:41 +0100 <almight> COPY --from=build /app/build_output .
2021-12-03 09:15:41 +0100 <almight> # Expose a port to run our application
2021-12-03 09:15:42 +0100 <almight> EXPOSE 8080
2021-12-03 09:15:42 +0100 <almight> # Run the executable
2021-12-03 09:15:43 +0100 <almight> CMD ./my-app-exe
2021-12-03 09:15:48 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-03 09:15:49 +0100 <almight> this here is stage 2 of my docker build
2021-12-03 09:16:04 +0100 <almight> the app works fine but none of the logs get printed
2021-12-03 09:16:09 +0100 <siers> 🀦🏼
2021-12-03 09:18:39 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 09:18:57 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 09:19:45 +0100 <dminuoso> siers: Okay I think we can do this.
2021-12-03 09:23:06 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 09:23:23 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 09:24:16 +0100almight(~almight@103.142.31.135) (Quit: Client closed)
2021-12-03 09:24:54 +0100vpan(~0@212.117.1.172)
2021-12-03 09:27:09 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 09:27:28 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 09:29:08 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 09:29:15 +0100MasseR(~MasseR@51.15.143.128) (Quit: The Lounge - https://thelounge.chat)
2021-12-03 09:29:26 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 09:30:00 +0100MasseR(~MasseR@51.15.143.128)
2021-12-03 09:31:40 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 09:31:57 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 09:32:00 +0100shriekingnoise(~shrieking@186.137.144.80) (Quit: Quit)
2021-12-03 09:32:59 +0100mud(~mud@user/kadoban) (Remote host closed the connection)
2021-12-03 09:38:08 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 09:38:26 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 09:38:34 +0100 <arahael> I'm looking for a `String -> Int -> Int` where the function converts the string as a number at a specified base to an int.
2021-12-03 09:38:56 +0100vysn(~vysn@user/vysn)
2021-12-03 09:39:02 +0100 <arahael> Eg, `toInt "12341234" 4` should result in whatever is the correct value for that number in base 4.
2021-12-03 09:39:32 +0100bollu(uid233390@id-233390.helmsley.irccloud.com)
2021-12-03 09:40:16 +0100 <iqubic> arahael: I assume this is for AoC? Is that right?
2021-12-03 09:40:24 +0100 <arahael> iqubic: Good guess. :)
2021-12-03 09:40:41 +0100 <xerox> :t readInt
2021-12-03 09:40:42 +0100 <lambdabot> Num a => a -> (Char -> Bool) -> (Char -> Int) -> ReadS a
2021-12-03 09:41:11 +0100 <dminuoso> % let x = ((+1), (+2)); y = ((+10), (+20)); (a, b) = x & indexing each %@~ (\i f -> fromJust (y ^? ix i)); in (a 0, b 0)
2021-12-03 09:41:11 +0100 <yahb> dminuoso: (10,20)
2021-12-03 09:41:12 +0100 <xerox> a build-your-own version
2021-12-03 09:41:20 +0100 <dminuoso> siers: ^- this is just a first version, notoriously unsafe with the fromJust
2021-12-03 09:41:22 +0100 <int-e> :t digitToInt
2021-12-03 09:41:23 +0100 <lambdabot> Char -> Int
2021-12-03 09:41:25 +0100 <arahael> xerox: That works nicely.
2021-12-03 09:41:30 +0100 <siers> dminuoso, is that with lens?
2021-12-03 09:41:33 +0100 <dminuoso> siers: Yes.
2021-12-03 09:41:53 +0100 <siers> ah, I think I know what it means
2021-12-03 09:41:59 +0100 <dminuoso> siers: this will work over two arbitrary Ixed even. Be sure to match arity, or you will get either a crash or mishbehave.
2021-12-03 09:42:07 +0100 <siers> right
2021-12-03 09:42:16 +0100 <dminuoso> The crash you can fix of course, the misbehaving not.
2021-12-03 09:42:46 +0100 <dminuoso> And I didnt compose, but that's just a small thing to fix.
2021-12-03 09:43:07 +0100 <dminuoso> % let x = ((+1), (+2)); y = ((+10), (+20)); (a, b) = x & indexing each %@~ (\i f -> f . fromJust (y ^? ix i)); in (a 0, b 0)
2021-12-03 09:43:08 +0100 <yahb> dminuoso: (11,22)
2021-12-03 09:43:20 +0100 <siers> kind of simple in hindsight, but that's because it's not safe :D
2021-12-03 09:43:35 +0100 <siers> cool
2021-12-03 09:43:45 +0100 <dminuoso> Well, you can cook up your own traversal that behaves safe if you want.
2021-12-03 09:43:54 +0100sprout(~quassel@2a02:a467:ccd6:1:8149:2184:782c:2882)
2021-12-03 09:44:00 +0100 <dminuoso> It's not too much extra work
2021-12-03 09:44:24 +0100 <dminuoso> siers: The cool thing here is that you can even do this across two incompatible types. Say compose a tuple of functions with a tree of functions.
2021-12-03 09:44:33 +0100 <dminuoso> As long as their arity matches, of course.
2021-12-03 09:44:49 +0100 <siers> haha, that is really whack
2021-12-03 09:45:35 +0100 <siers> what do you mean, a safe traversal? I don't understand at all what you might be hinting at
2021-12-03 09:45:49 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-03 09:46:46 +0100acowley(~acowley@c-68-83-22-43.hsd1.nj.comcast.net) (Read error: Connection reset by peer)
2021-12-03 09:46:49 +0100sprout_(~quassel@2a02:a467:ccd6:1:acfd:d7bd:8c5c:5aef) (Ping timeout: 252 seconds)
2021-12-03 09:48:04 +0100 <dminuoso> Well so consider this:
2021-12-03 09:48:07 +0100 <dminuoso> % let x = ((+1), (+2)); y = ((+10), (+20)); crazyCompose x y = x & indexing each %@~ (\i f -> f . fromJust (y ^? ix i)); in (0 &) <$> crazyCompose [(+1), (+2)] ((+10), (+20))
2021-12-03 09:48:09 +0100 <dminuoso> % let x = ((+1), (+2)); y = ((+10), (+20)); crazyCompose x y = x & indexing each %@~ (\i f -> f . fromJust (y ^? ix i)); in (0 &) <$> crazyCompose [(+1), (+2)] ((+10), (+20))
2021-12-03 09:48:09 +0100 <yahb> dminuoso: [11,22]
2021-12-03 09:48:23 +0100 <dminuoso> So this works fine, even composing a tuple of functions with a list of functions
2021-12-03 09:48:29 +0100 <dminuoso> But what if we mismatch arity?
2021-12-03 09:48:33 +0100 <dminuoso> % let x = ((+1), (+2)); y = ((+10), (+20)); crazyCompose x y = x & indexing each %@~ (\i f -> f . fromJust (y ^? ix i)); in (0 &) <$> crazyCompose [(+1), (+2), (+3)] ((+10), (+20))
2021-12-03 09:48:33 +0100 <yahb> dminuoso: [11,22,*** Exception: Maybe.fromJust: Nothing; CallStack (from HasCallStack):; error, called at libraries/base/Data/Maybe.hs:148:21 in base:Data.Maybe; fromJust, called at <interactive>:143:97 in interactive:Ghci48
2021-12-03 09:48:40 +0100 <dminuoso> % let x = ((+1), (+2)); y = ((+10), (+20)); crazyCompose x y = x & indexing each %@~ (\i f -> f . fromJust (y ^? ix i)); in (0 &) <$> crazyCompose [(+1), (+2)] ((+10), (+20), (+30))
2021-12-03 09:48:41 +0100 <yahb> dminuoso: [11,22]
2021-12-03 09:48:50 +0100Erutuon(~Erutuon@user/erutuon) (Ping timeout: 252 seconds)
2021-12-03 09:49:27 +0100 <dminuoso> So you could do something as naive as:
2021-12-03 09:49:29 +0100 <siers> ah, one that would bubble the Option to the top, you mean
2021-12-03 09:50:07 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-12-03 09:50:23 +0100 <dminuoso> well we can fix it like this for example
2021-12-03 09:50:26 +0100 <dminuoso> % crazyCompose x y = x & indexing each %@~ (\i f -> maybe f (f .) (y ^? ix i))
2021-12-03 09:50:27 +0100 <yahb> dminuoso:
2021-12-03 09:50:35 +0100 <dminuoso> %
2021-12-03 09:50:35 +0100 <yahb> dminuoso:
2021-12-03 09:50:39 +0100 <dminuoso> % (0 &) <$> crazyCompose [(+1), (+2), (+3)] ((+10), (+20)
2021-12-03 09:50:39 +0100 <yahb> dminuoso: ; <interactive>:148:56: error: parse error (possibly incorrect indentation or mismatched brackets)
2021-12-03 09:50:45 +0100 <dminuoso> % (0 &) <$> crazyCompose [(+1), (+2), (+3)] ((+10), (+20))
2021-12-03 09:50:45 +0100 <yahb> dminuoso: [11,22,3]
2021-12-03 09:50:57 +0100ehamberg_ehamberg
2021-12-03 09:51:00 +0100Erutuon(~Erutuon@user/erutuon)
2021-12-03 09:51:30 +0100 <dminuoso> Note that this type of "you have to make sure yourself" you have frequently in various lens combinators
2021-12-03 09:52:05 +0100 <dminuoso> For example:
2021-12-03 09:52:08 +0100chele(~chele@user/chele) (Ping timeout: 252 seconds)
2021-12-03 09:52:14 +0100 <dminuoso> % "Sony Playstation" & partsOf (traverse . filtered isUpper) %~ reverse
2021-12-03 09:52:14 +0100 <yahb> dminuoso: "Pony Slaystation"
2021-12-03 09:52:22 +0100 <dminuoso> This is a pretty old and cool example.
2021-12-03 09:52:46 +0100std_mutex[m](~stdmutexm@2001:470:69fc:105::1:4534)
2021-12-03 09:52:53 +0100 <dminuoso> But what if we used set and mismatched arity?
2021-12-03 09:53:16 +0100 <dminuoso> % ('a', 'b', 'c') & partsOf each .~ ['A','B','C','D']
2021-12-03 09:53:16 +0100 <yahb> dminuoso: ('A','B','C')
2021-12-03 09:53:23 +0100 <dminuoso> % ('a', 'b', 'c') & partsOf each .~ ['A','B']
2021-12-03 09:53:23 +0100 <yahb> dminuoso: ('A','B','c')
2021-12-03 09:53:46 +0100 <dminuoso> siers: Note that this behaves similarly to crazyCompose, in fact.
2021-12-03 09:54:12 +0100acowley(~acowley@c-68-83-22-43.hsd1.nj.comcast.net)
2021-12-03 09:54:18 +0100 <dminuoso> We probably could implement crazyCompose in terms of partsOf too
2021-12-03 09:54:45 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-12-03 09:54:51 +0100 <dminuoso> Heck, this could even be more expressible
2021-12-03 09:56:31 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 09:56:49 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 09:56:56 +0100Escanor(~Escanor@103.142.31.135)
2021-12-03 09:57:00 +0100machinedgod(~machinedg@24.105.81.50)
2021-12-03 09:57:17 +0100Escanor(~Escanor@103.142.31.135) (Client Quit)
2021-12-03 09:57:39 +0100 <dminuoso> Oh yes!
2021-12-03 09:57:44 +0100 <dminuoso> % crazyCompose' x y = x & partsOf each %~ zipWith (.) (toListOf each y)
2021-12-03 09:57:44 +0100 <yahb> dminuoso:
2021-12-03 09:57:47 +0100 <dminuoso> siers: ^- this is it.
2021-12-03 09:58:06 +0100 <dminuoso> % :t crazyCompose'
2021-12-03 09:58:06 +0100 <yahb> dminuoso: (Each a1 b1 (a2 -> b2) (a2 -> b2), Each s s (b2 -> b2) (b2 -> b2)) => a1 -> s -> b1
2021-12-03 09:58:15 +0100 <dminuoso> % (0 &) <$> crazyCompose [(+1), (+2), (+3)] ((+10), (+20))
2021-12-03 09:58:16 +0100 <yahb> dminuoso: [11,22,3]
2021-12-03 09:58:20 +0100 <dminuoso> Beautiful. :)
2021-12-03 09:58:24 +0100acidjnk_new(~acidjnk@p200300d0c7271e85247d18c27da64632.dip0.t-ipconnect.de)
2021-12-03 10:00:44 +0100chele(~chele@user/chele)
2021-12-03 10:02:51 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 10:03:09 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 10:04:49 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 10:05:06 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 10:07:00 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 10:07:17 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 10:08:35 +0100jstolarek(~jstolarek@137.220.120.162)
2021-12-03 10:11:21 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 10:11:39 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 10:15:19 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 10:15:36 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 10:17:11 +0100dignissimus(~dignissim@88-104-68-62.dynamic.dsl.as9105.com)
2021-12-03 10:17:22 +0100 <dignissimus> I haven't used IRC in ages!
2021-12-03 10:17:27 +0100 <siers> not any more
2021-12-03 10:17:36 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-12-03 10:17:36 +0100allbery_b(~geekosaur@xmonad/geekosaur)
2021-12-03 10:17:39 +0100allbery_bgeekosaur
2021-12-03 10:18:47 +0100 <dignissimus> I'm having trouble with today's advent of Code, the issue is monads. I'm just about to paste it somewhere, hopefully I can get some help
2021-12-03 10:19:41 +0100 <arahael> dignissimus: Have you considered doing it without monads? :)
2021-12-03 10:19:48 +0100Sgeo_(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-12-03 10:19:56 +0100 <merijn> I...may have overengineered my solution to part 1 >.>
2021-12-03 10:20:19 +0100 <arahael> merijn: So did I. I had a really really clever implementation. :(
2021-12-03 10:20:29 +0100 <siers> I foldMaped into Endo's to do yesterday's :)
2021-12-03 10:20:38 +0100 <merijn> Mine is really unclever :p
2021-12-03 10:20:46 +0100 <arahael> merijn: In retrospect, so's mine. :D
2021-12-03 10:20:48 +0100 <siers> (apostrophe wasn't necessary)
2021-12-03 10:21:12 +0100 <xerox> arahael: do you put those online somewhere?
2021-12-03 10:21:16 +0100 <siers> did you two get all stars?
2021-12-03 10:21:38 +0100 <arahael> xerox: I haven't done mine yet. Actually still doing it, but it's slow - had to cook pizza, I was starving, and I'm sooo sleepy.
2021-12-03 10:22:19 +0100 <merijn> The description of part 2 seems to apply I can't just blindly collapse all predicate into one filter, because "stop at one" probably means if you apply all predicates your set will be empty
2021-12-03 10:23:31 +0100 <arahael> merijn: Yeah, I had to read it several times.
2021-12-03 10:24:29 +0100 <dignissimus> arahael: I'm too much of a beginenr to know if I don't have to XD
2021-12-03 10:24:40 +0100 <dignissimus> https://paste.tomsmeding.com/TTGkZhpo
2021-12-03 10:24:47 +0100 <dignissimus> This doesn't compile because of typing
2021-12-03 10:25:03 +0100 <dignissimus> The `map (\x -> ())` is me being very desperate
2021-12-03 10:25:26 +0100 <merijn> dignissimus: eh...have you considered no trying to have everything on a single line with no type annotations? xD
2021-12-03 10:25:32 +0100 <dignissimus> hmmmmmm
2021-12-03 10:25:38 +0100 <dignissimus> No XD
2021-12-03 10:25:54 +0100 <merijn> No wonder your errors are unhelpful :p
2021-12-03 10:26:02 +0100 <arahael> dignissimus: And also specify types - I'm not lookign at any possible solutions yet until I've submitted mine, but another tip is always to add types.
2021-12-03 10:27:48 +0100 <dignissimus> I think I can state my question as I have something of type IO String and I'd like to print it out
2021-12-03 10:28:13 +0100 <dignissimus> Also would the better way to write all that to create many functions?
2021-12-03 10:28:35 +0100 <dignissimus> Or is there syntax sugar I should probably use
2021-12-03 10:29:37 +0100 <merijn> Eh, just write out functions? in either where or just top level?
2021-12-03 10:33:55 +0100 <arahael> Ok, done mine. Taking my contacts out, drinking port, and oh man, what a day.
2021-12-03 10:33:58 +0100arahaelclicks on dignissimus's paste.
2021-12-03 10:34:37 +0100 <arahael> Oh, yeah. Write a whole bunch of helper functions instead for that. :)
2021-12-03 10:35:29 +0100 <dminuoso> If you have to employ a horizontal scrollbar, its too much.
2021-12-03 10:36:27 +0100 <merijn> my Day2 solution is, like, 3 times that size :p
2021-12-03 10:37:04 +0100 <arahael> Mine is... 30 times merijn's size. :D
2021-12-03 10:37:17 +0100 <dminuoso> By merijn's size, do you mean in terms of characters of his name?
2021-12-03 10:37:29 +0100 <dminuoso> Or in terms of his physical height?
2021-12-03 10:37:40 +0100dminuosois unsure
2021-12-03 10:37:57 +0100 <arahael> dminuoso: That's a strike against my implementation, seeing as I did it in literate haskell. It should have been clear! :(
2021-12-03 10:38:15 +0100arahaelburns it.
2021-12-03 10:39:11 +0100 <arahael> merijn: I managed to not implement part of the specification, and I still got the correct answers. :/ I suspect I was "lucky".
2021-12-03 10:39:20 +0100 <arahael> (For day3)
2021-12-03 10:41:42 +0100 <merijn> oh, shite
2021-12-03 10:41:47 +0100 <merijn> I misread the 2nd part >.>
2021-12-03 10:44:30 +0100[exa]writes an oneliner on a 600col line
2021-12-03 10:44:35 +0100 <arahael> merijn: I ignored part of it and still got it right! So I still got my stars.
2021-12-03 10:44:53 +0100 <merijn> arahael: Naah, I just did the entirely wrong thing :p
2021-12-03 10:45:30 +0100 <arahael> merijn: Nice. :) I'm really bad at code tonight so I'm pretty chuffed I got it done. :) Only had one of my three coffees today. :(
2021-12-03 10:45:34 +0100 <arahael> Day was too busy.
2021-12-03 10:45:47 +0100 <arahael> (And if I disrupt my coffee intake, my tinnitus goes haywire)
2021-12-03 10:45:50 +0100dschrempf(~dominik@mobiledyn-62-240-134-39.mrsn.at) (Quit: WeeChat 3.3)
2021-12-03 10:50:55 +0100 <merijn> bleh...the inelegant way is easy, but I can't quite get the elegant solution to work >.>
2021-12-03 10:51:52 +0100 <arahael> merijn: I do them all the inelegant way! Less thinking involved!
2021-12-03 10:53:08 +0100 <arahael> Plus, the sooner I get AoC done, the sooner I can get into nethack again!
2021-12-03 10:57:49 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 10:58:07 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 10:58:36 +0100x_kuru(~xkuru@user/xkuru)
2021-12-03 11:01:15 +0100xkuru(~xkuru@user/xkuru) (Ping timeout: 252 seconds)
2021-12-03 11:01:21 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-12-03 11:01:26 +0100 <dignissimus> I've solved it!!
2021-12-03 11:01:39 +0100dschrempf(~dominik@mobiledyn-62-240-134-39.mrsn.at)
2021-12-03 11:01:47 +0100dschrempf(~dominik@mobiledyn-62-240-134-39.mrsn.at) (Client Quit)
2021-12-03 11:04:03 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 11:04:21 +0100 <siers> merijn, as always
2021-12-03 11:04:21 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 11:05:15 +0100zer0bitz(~zer0bitz@dsl-hkibng32-54fbfb-173.dhcp.inet.fi)
2021-12-03 11:06:45 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
2021-12-03 11:06:50 +0100Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2021-12-03 11:08:30 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 11:08:48 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 11:08:54 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:715b:47ca:3928:db8d) (Remote host closed the connection)
2021-12-03 11:09:06 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-12-03 11:09:41 +0100Lord_of_Life_Lord_of_Life
2021-12-03 11:10:45 +0100 <arahael> dignissimus: Congrats!
2021-12-03 11:11:10 +0100lavaman(~lavaman@98.38.249.169)
2021-12-03 11:15:59 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2021-12-03 11:16:46 +0100 <merijn> Well, it works. But it sucks :p
2021-12-03 11:20:10 +0100 <arahael> I'm still pleasedd that mine worked for me. :)
2021-12-03 11:20:45 +0100 <arahael> The detail I ignored is the bias bit - ie, if you have equal 1's and 0's, you're supposed to pick one or the other.
2021-12-03 11:20:54 +0100 <arahael> I just went with whatever was the default for my algorithm.
2021-12-03 11:21:13 +0100 <arahael> Pretty sure I got the correct answer by luck.
2021-12-03 11:23:53 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 11:24:10 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 11:27:57 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 11:28:05 +0100 <merijn> I'm sure mine could've been way simpler, but I'm too foggy for that :p
2021-12-03 11:28:15 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 11:28:19 +0100 <merijn> arahael: https://github.com/merijn/AdventOfCode/blob/master/Day3.hs
2021-12-03 11:28:48 +0100 <arahael> merijn: Woah. Let me show you mine.
2021-12-03 11:29:05 +0100 <arahael> https://github.com/arafangion/super-eureka/blob/main/app/Day3.md
2021-12-03 11:29:47 +0100 <arahael> merijn: As you can tell, I'm very very lazy today. On multiple counts. :)
2021-12-03 11:30:14 +0100 <arahael> Nice use of megaparsec, though. I'm tempted to start using that, but blegh. Not tonight.
2021-12-03 11:30:43 +0100gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-12-03 11:31:34 +0100 <merijn> Not sure if Vector was worth the effort in the end :p
2021-12-03 11:31:47 +0100 <merijn> I was expecting a different twist in the 2nd part :p
2021-12-03 11:33:11 +0100 <arahael> Yeah, that's the trouble - impossible to predict. :)
2021-12-03 11:33:35 +0100 <arahael> I did mine the most lazy way I could think of. As soon as I got the valid answer, I stopped.
2021-12-03 11:33:48 +0100 <arahael> Mine is particularly inefficient, I suspect.
2021-12-03 11:39:14 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 11:39:32 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 11:40:15 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
2021-12-03 11:41:26 +0100 <hololeap> did anyone else use the NonEmpty comonad for day 1?
2021-12-03 11:42:47 +0100wei2912(~wei2912@116.88.103.128)
2021-12-03 11:42:49 +0100 <xerox> hololeap: what does that look like?
2021-12-03 11:43:09 +0100 <opqdonut> sooooo GHC 8.10 and windows, segfaults, anyone else bump into this? I just find the old bug that was fixed in 8.8.4
2021-12-03 11:43:58 +0100 <hololeap> xerox: http://sprunge.us/G6o22G
2021-12-03 11:44:04 +0100mmhat(~mmh@55d45bca.access.ecotel.net)
2021-12-03 11:46:17 +0100 <xerox> :t (=>=)
2021-12-03 11:46:18 +0100 <lambdabot> error:
2021-12-03 11:46:18 +0100 <lambdabot> β€’ Variable not in scope: =>=
2021-12-03 11:46:19 +0100 <lambdabot> β€’ Perhaps you meant one of these:
2021-12-03 11:47:07 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-03 11:47:08 +0100 <hololeap> % import Control.Comonad
2021-12-03 11:47:08 +0100 <yahb> hololeap:
2021-12-03 11:47:14 +0100 <hololeap> % :t (=>=)
2021-12-03 11:47:14 +0100 <yahb> hololeap: Comonad w => (w a -> b) -> (w b -> c) -> w a -> c
2021-12-03 11:47:20 +0100 <xerox> neat
2021-12-03 11:47:43 +0100 <xerox> do they use w because it's kinda of an upside down m
2021-12-03 11:47:49 +0100 <hololeap> yeah
2021-12-03 11:47:52 +0100 <xerox> hilarious
2021-12-03 11:48:30 +0100 <hololeap> % :t \f g -> extend (f =>= g)
2021-12-03 11:48:31 +0100 <yahb> hololeap: Comonad w => (w a -> b1) -> (w b1 -> b2) -> w a -> w b2
2021-12-03 11:48:38 +0100 <xerox> is there also pure :: a -> w a ?
2021-12-03 11:48:47 +0100 <hololeap> it's called extract
2021-12-03 11:48:52 +0100 <hololeap> % :t extract
2021-12-03 11:48:52 +0100 <yahb> hololeap: Comonad w => w a -> a
2021-12-03 11:48:53 +0100 <merijn> xerox: That's the wrong way around
2021-12-03 11:49:01 +0100 <merijn> xerox: it's "w a -> a"
2021-12-03 11:49:01 +0100 <hololeap> everything is reversed
2021-12-03 11:49:06 +0100 <xerox> I was wondering how the 'b' became 'w b'
2021-12-03 11:49:11 +0100bollu(uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-03 11:49:50 +0100 <merijn> tbh, my brain still doesn't grok comonad :p
2021-12-03 11:50:05 +0100 <dignissimus> merijn: Your solution looks amazing
2021-12-03 11:50:06 +0100arahaelhands merijn some more wine.
2021-12-03 11:50:15 +0100 <hololeap> % :t duplicate
2021-12-03 11:50:16 +0100 <yahb> hololeap: Comonad w => w a -> w (w a)
2021-12-03 11:50:21 +0100 <dignissimus> arahael: I like your mostCommon implementation
2021-12-03 11:50:23 +0100 <xerox> cool
2021-12-03 11:50:40 +0100 <arahael> dignissimus: There's a bug in it.
2021-12-03 11:50:43 +0100 <hololeap> % :t \f fmap f . duplicate
2021-12-03 11:50:44 +0100 <yahb> hololeap: ; <interactive>:1:11: error: parse error on input `.'
2021-12-03 11:50:44 +0100 <xerox> so you expand the universe instead
2021-12-03 11:50:49 +0100 <hololeap> % :t \f -> fmap f . duplicate
2021-12-03 11:50:50 +0100 <yahb> hololeap: Comonad f => (f a -> b) -> f a -> f b
2021-12-03 11:51:07 +0100 <dignissimus> oh what's the bug?
2021-12-03 11:51:15 +0100 <arahael> dignissimus: have you done part 2 yet?
2021-12-03 11:51:23 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-03 11:51:30 +0100 <merijn> dignissimus: The goal is to keep them relatively simple for beginners :)
2021-12-03 11:51:42 +0100 <dignissimus> No, just part 1
2021-12-03 11:51:45 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-12-03 11:51:49 +0100 <arahael> dignissimus: There's no bug yet, then. :D
2021-12-03 11:51:50 +0100 <merijn> (But also, no "skip handling errors" shortcuts!)
2021-12-03 11:51:50 +0100 <dignissimus> I don't know if I want to do part 2 HAHAHAH
2021-12-03 11:51:52 +0100 <arahael> dignissimus: Keep going!
2021-12-03 11:52:10 +0100 <hololeap> whenever you read "sliding window", chances are comonads are a good fit
2021-12-03 11:52:15 +0100 <hololeap> at least in theory...
2021-12-03 11:52:24 +0100 <dignissimus> There's so much to read!
2021-12-03 11:52:28 +0100 <dignissimus> I might do it later
2021-12-03 11:52:51 +0100 <arahael> hololeap: What does Day2 look like using comonads, then? :)
2021-12-03 11:53:54 +0100 <merijn> hololeap: Whenever I read sliding windows I read "zip + drop" :p
2021-12-03 11:54:08 +0100fef(~thedawn@user/thedawn) (Quit: Leaving)
2021-12-03 11:54:40 +0100chomwitt(~chomwitt@2a02:587:dc0d:6d00:12c3:7bff:fe6d:d374) (Remote host closed the connection)
2021-12-03 11:54:59 +0100chomwitt(~chomwitt@2a02:587:dc0d:6d00:12c3:7bff:fe6d:d374)
2021-12-03 11:55:43 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 256 seconds)
2021-12-03 11:57:28 +0100arahaelconsiders a third glass of port.
2021-12-03 11:59:08 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 11:59:25 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 12:03:34 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 12:03:51 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 12:05:31 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 12:05:49 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 12:06:29 +0100 <siers> merijn, but you needed to do it two times, I guess?
2021-12-03 12:06:44 +0100dschrempf(~dominik@mobiledyn-62-240-134-39.mrsn.at)
2021-12-03 12:06:55 +0100dschrempf(~dominik@mobiledyn-62-240-134-39.mrsn.at) (Client Quit)
2021-12-03 12:07:47 +0100AlexNoo_AlexNoo
2021-12-03 12:09:19 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f5ec:bb0e:161e:528b)
2021-12-03 12:12:01 +0100Erutuon(~Erutuon@user/erutuon) (Ping timeout: 252 seconds)
2021-12-03 12:13:51 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f5ec:bb0e:161e:528b) (Ping timeout: 252 seconds)
2021-12-03 12:16:05 +0100kuribas(~user@ptr-25vy0i9sci02rkc3ssb.18120a2.ip6.access.telenet.be)
2021-12-03 12:18:51 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 12:18:54 +0100namkeleser(~namkelese@101.175.102.188)
2021-12-03 12:19:08 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 12:20:48 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 12:21:06 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 12:22:46 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 12:23:04 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 12:24:44 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 12:25:02 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 12:25:14 +0100cosimone(~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3)
2021-12-03 12:26:53 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-12-03 12:31:00 +0100 <kuribas> I saw this book: https://www.manning.com/books/data-oriented-programming
2021-12-03 12:31:08 +0100 <kuribas> I wonder if it is applicable to FP?
2021-12-03 12:31:27 +0100 <kuribas> Or is it just another technique to make up for the lack of flexibility in OO.
2021-12-03 12:33:35 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 12:33:53 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 12:35:33 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 12:35:51 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 12:38:41 +0100 <dminuoso> I have two versions of a datatype, one that has `[(K, V)]` in one particular field, and the other uses `Map K V`.
2021-12-03 12:39:21 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-03 12:39:58 +0100 <dminuoso> I tried parametrizing this data type over type `LookupList k v = [(k, v]`, such that I'd have `type Validated = Skeleton Map` and `type Unvalidated = Skeleton LookupList`, but GHC wont accept that, it requires the type alias to be expanded
2021-12-03 12:40:28 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-03 12:40:28 +0100 <dminuoso> What other options do I have without using DataKinds + TyFams?
2021-12-03 12:40:59 +0100deadmarshal(~deadmarsh@95.38.116.117) (Ping timeout: 256 seconds)
2021-12-03 12:41:06 +0100 <kuribas> dminuoso: newtypes?
2021-12-03 12:41:27 +0100 <dminuoso> Oh. Mmm.
2021-12-03 12:41:32 +0100 <dminuoso> Yeah I guess that works
2021-12-03 12:41:52 +0100 <kuribas> and some liberal use of "coerce".
2021-12-03 12:42:00 +0100 <kuribas> if needed.
2021-12-03 12:42:27 +0100iqubic(~user@2601:602:9502:c70:7d14:3ce3:e8b8:8f59) (Ping timeout: 252 seconds)
2021-12-03 12:44:21 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 12:44:39 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 12:44:40 +0100hrdl(~hrdl@mail.hrdl.eu) (Quit: Lost terminal)
2021-12-03 12:45:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-03 12:46:08 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-03 12:46:22 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-03 12:48:11 +0100hrdl(~hrdl@mail.hrdl.eu)
2021-12-03 12:52:51 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 12:53:09 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 12:56:14 +0100 <dminuoso> % data Foo a = Foo { foo :: a }
2021-12-03 12:56:15 +0100 <yahb> dminuoso:
2021-12-03 12:56:17 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-03 12:56:24 +0100 <dminuoso> % x = Foo { foo = 'c' }
2021-12-03 12:56:25 +0100 <yahb> dminuoso:
2021-12-03 12:56:31 +0100 <dminuoso> % y = x{ foo = "bar" }
2021-12-03 12:56:32 +0100 <yahb> dminuoso:
2021-12-03 12:56:42 +0100 <dminuoso> Im quite amazed this is possible. :)
2021-12-03 12:56:58 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-03 12:58:55 +0100acidjnk_new(~acidjnk@p200300d0c7271e85247d18c27da64632.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2021-12-03 12:59:06 +0100 <dminuoso> For some reason I did not expect this to work
2021-12-03 12:59:31 +0100dignissimus(~dignissim@88-104-68-62.dynamic.dsl.as9105.com) (Quit: Bye!)
2021-12-03 12:59:39 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 276 seconds)
2021-12-03 13:00:24 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-12-03 13:00:35 +0100 <hololeap> arahael: couldn't find a use for comonads on that one https://gist.github.com/hololeap/7bafa6592902de52fb7b4e2e9bedc1b8
2021-12-03 13:02:27 +0100DNH(~DNH@2a02:8108:1100:16d8:bd44:40bf:fb3b:742a)
2021-12-03 13:02:33 +0100 <arahael> hololeap: Oh, I must've been thinking of day1. :(
2021-12-03 13:03:12 +0100 <arahael> hololeap: Interesting implementation - very production grade.
2021-12-03 13:04:17 +0100 <kuribas> dminuoso: polymorphic record update?
2021-12-03 13:05:42 +0100retroid_(~retro@97e2ba2e.skybroadband.com) (Ping timeout: 268 seconds)
2021-12-03 13:06:04 +0100retroid_(~retro@97e2ba2e.skybroadband.com)
2021-12-03 13:07:03 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-03 13:08:12 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-03 13:08:19 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab)
2021-12-03 13:10:30 +0100 <kuribas> % data Foo a = Foo { foo :: a, bar :: a}
2021-12-03 13:10:30 +0100 <yahb> kuribas:
2021-12-03 13:10:47 +0100 <kuribas> % x = Foo { foo = 'c', bar = 'd' }
2021-12-03 13:10:48 +0100 <yahb> kuribas:
2021-12-03 13:10:59 +0100 <kuribas> % y = x { foo = "bar"}
2021-12-03 13:10:59 +0100 <yahb> kuribas: ; <interactive>:171:15: error:; * Couldn't match type `[Char]' with `Char'; Expected: Char; Actual: String; * In the `foo' field of a record; In the expression: x {foo = "bar"}; In an equation for `y': y = x {foo = "bar"}
2021-12-03 13:14:57 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 13:15:15 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 13:16:14 +0100 <kuribas> yahb: good boye
2021-12-03 13:16:41 +0100chisui(~chisui@2001:16b8:661d:7600:f248:3361:5fc2:82d9)
2021-12-03 13:18:55 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 13:18:57 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-03 13:19:13 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 13:19:27 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-03 13:20:05 +0100 <kuribas> what's so bad about BlockArguments?
2021-12-03 13:20:48 +0100 <geekosaur> many people seem to find them hard to read
2021-12-03 13:21:10 +0100 <siers> they can read haskell and it's this that trips them up? D:
2021-12-03 13:21:31 +0100 <hpc> they're just in it for the $
2021-12-03 13:22:21 +0100vysn(~vysn@user/vysn) (Ping timeout: 268 seconds)
2021-12-03 13:22:22 +0100 <hololeap> lol
2021-12-03 13:22:56 +0100 <kuribas> siers: yeah, my thought also...
2021-12-03 13:23:40 +0100 <hpc> also, i find ruby's block arguments perfectly readable
2021-12-03 13:24:11 +0100 <hpc> so there's already an example of it not being an issue, once you go into it without preconceptions
2021-12-03 13:24:15 +0100 <geekosaur> admittedly ruby's are somewhat limited
2021-12-03 13:24:25 +0100 <hpc> sure, but they're structurally the same
2021-12-03 13:24:31 +0100 <siers> ruby is somehwat limited
2021-12-03 13:24:37 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-03 13:24:50 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-03 13:24:55 +0100 <hpc> function do block <=> function do block
2021-12-03 13:25:08 +0100 <hpc> function \arg -> block <=> function do |arg| block
2021-12-03 13:25:35 +0100 <hpc> function case expr of ... <=> function do lots of if-then-else block
2021-12-03 13:25:48 +0100 <hpc> etc
2021-12-03 13:26:03 +0100jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-12-03 13:27:27 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab) (Quit: gone to sleep. ZZZzzz…)
2021-12-03 13:28:37 +0100jakalx(~jakalx@base.jakalx.net)
2021-12-03 13:28:42 +0100mikoto-chan(~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Quit: mikoto-chan)
2021-12-03 13:28:52 +0100mikoto-chan(~mikoto-ch@esm-84-240-99-143.netplaza.fi)
2021-12-03 13:28:53 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab)
2021-12-03 13:29:42 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab) (Client Quit)
2021-12-03 13:29:54 +0100deadmarshal(~deadmarsh@95.38.116.117)
2021-12-03 13:30:07 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-03 13:30:33 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-03 13:32:17 +0100aliosablack(~chomwitt@2a02:587:dc0d:6d00:12c3:7bff:fe6d:d374)
2021-12-03 13:32:48 +0100chomwitt(~chomwitt@2a02:587:dc0d:6d00:12c3:7bff:fe6d:d374) (Read error: Connection reset by peer)
2021-12-03 13:33:19 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab)
2021-12-03 13:34:31 +0100shriekingnoise(~shrieking@186.137.144.80)
2021-12-03 13:35:37 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-03 13:36:31 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-03 13:38:05 +0100alzgh(~alzgh@user/alzgh)
2021-12-03 13:38:49 +0100 <dminuoso> pure UserNonValidated{..}{_unvPerms = PermSet{ .. }}
2021-12-03 13:39:11 +0100 <dminuoso> What a cute way to defeat faulty ApplicativeDo logic
2021-12-03 13:39:38 +0100 <dminuoso> Sadly this still triggers an undefined fields warning.
2021-12-03 13:41:18 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 13:41:35 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 13:41:51 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-03 13:42:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-03 13:43:12 +0100Benzi-Junior(~BenziJuni@88-149-66-61.du.xdsl.is)
2021-12-03 13:45:33 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 13:45:51 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 13:47:31 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 13:47:48 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 13:51:52 +0100_bo(~bo@79.171.122.236)
2021-12-03 13:53:32 +0100max22-(~maxime@2a01cb088335980065dae87f91b73dea.ipv6.abo.wanadoo.fr) (Ping timeout: 240 seconds)
2021-12-03 13:56:41 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 13:56:57 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 14:00:51 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 14:01:09 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 14:02:49 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 14:03:07 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 14:04:47 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 14:05:05 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 14:06:45 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 14:07:03 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 14:07:20 +0100aliosablack(~chomwitt@2a02:587:dc0d:6d00:12c3:7bff:fe6d:d374) (Ping timeout: 252 seconds)
2021-12-03 14:08:36 +0100 <aplainzetakind> Does hls provided by ghcup have brittany?
2021-12-03 14:11:03 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 14:11:21 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 14:12:47 +0100deadmarshal(~deadmarsh@95.38.116.117) (Ping timeout: 256 seconds)
2021-12-03 14:15:01 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 14:15:09 +0100deadmarshal(~deadmarsh@95.38.116.117)
2021-12-03 14:15:19 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 14:16:59 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 14:17:17 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 14:18:57 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 14:19:15 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 14:19:31 +0100 <jneira[m]> yeah, for all ghcs but 9.0.1
2021-12-03 14:20:59 +0100 <jneira[m]> ghcup downloads hls from hls repo releases
2021-12-03 14:22:19 +0100chomwitt(~chomwitt@2a02:587:dc0d:6d00:12c3:7bff:fe6d:d374)
2021-12-03 14:27:02 +0100 <aplainzetakind> But that's just support and brittany itself needs to be installed right?
2021-12-03 14:29:45 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 14:30:03 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 14:31:07 +0100fabfianda(~fabfianda@net-109-115-246-237.cust.vodafonedsl.it)
2021-12-03 14:32:55 +0100deadmarshal_(~deadmarsh@68.235.32.241)
2021-12-03 14:33:45 +0100deadmarshal(~deadmarsh@95.38.116.117) (Ping timeout: 256 seconds)
2021-12-03 14:35:33 +0100Lycurgus(~juan@98.4.112.204)
2021-12-03 14:36:14 +0100hololeap(~hololeap@user/hololeap) (Remote host closed the connection)
2021-12-03 14:37:37 +0100hololeap(~hololeap@user/hololeap)
2021-12-03 14:40:41 +0100max22-(~maxime@2a01cb0883359800d8b0a223a3eaa461.ipv6.abo.wanadoo.fr)
2021-12-03 14:43:19 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 14:43:37 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 14:43:49 +0100deadmarshal_(~deadmarsh@68.235.32.241) (Ping timeout: 252 seconds)
2021-12-03 14:44:45 +0100deadmarshal(~deadmarsh@95.38.116.117)
2021-12-03 14:47:23 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 14:47:41 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 14:48:48 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab) (Quit: gone to sleep. ZZZzzz…)
2021-12-03 14:51:17 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 14:51:35 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 14:53:15 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 14:53:33 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 14:54:09 +0100alx741(~alx741@181.196.68.155) (Ping timeout: 256 seconds)
2021-12-03 14:58:32 +0100ph88(~ph88@ip5f5af068.dynamic.kabel-deutschland.de)
2021-12-03 15:00:12 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 15:00:30 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 15:02:26 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 15:02:44 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 15:03:58 +0100kritzefitz(~kritzefit@debian/kritzefitz) (Remote host closed the connection)
2021-12-03 15:04:35 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-03 15:05:17 +0100kritzefitz(~kritzefit@debian/kritzefitz)
2021-12-03 15:05:39 +0100aliosablack(~chomwitt@2a02:587:dc0d:6d00:12c3:7bff:fe6d:d374)
2021-12-03 15:06:07 +0100chomwitt(~chomwitt@2a02:587:dc0d:6d00:12c3:7bff:fe6d:d374) (Read error: Connection reset by peer)
2021-12-03 15:06:33 +0100alx741(~alx741@186.178.108.253)
2021-12-03 15:08:56 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 252 seconds)
2021-12-03 15:09:58 +0100son0p(~ff@181.136.122.143) (Remote host closed the connection)
2021-12-03 15:13:02 +0100lavaman(~lavaman@98.38.249.169)
2021-12-03 15:15:29 +0100ether_(~a@p200300ef970235268185de4e61219232.dip0.t-ipconnect.de)
2021-12-03 15:17:27 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2021-12-03 15:23:37 +0100Guest17(~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
2021-12-03 15:25:17 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 15:25:35 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 15:26:59 +0100imdoor(~imdoor@balticom-142-78-50.balticom.lv) (Quit: imdoor)
2021-12-03 15:27:27 +0100Lycurgus(~juan@98.4.112.204) (Quit: Exeunt)
2021-12-03 15:34:43 +0100ether_(~a@p200300ef970235268185de4e61219232.dip0.t-ipconnect.de) (Quit: WeeChat 3.0.1)
2021-12-03 15:35:01 +0100Techcable(~Techcable@168.235.93.147) (Ping timeout: 256 seconds)
2021-12-03 15:35:19 +0100Feuermagier_(~Feuermagi@2a02:2488:4211:3400:b6fd:ec18:acf6:f1a8) (Quit: Leaving)
2021-12-03 15:35:32 +0100Feuermagier(~Feuermagi@user/feuermagier)
2021-12-03 15:38:26 +0100 <zincy> Is it just me or is state machine testing with Hedgehog a pretty nasty experience
2021-12-03 15:38:49 +0100 <zincy> Using Vars is tricky
2021-12-03 15:40:35 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 15:40:52 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 15:42:32 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 15:42:50 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 15:43:51 +0100zebrag(~chris@user/zebrag)
2021-12-03 15:46:03 +0100 <[exa]> zincy: perhaps testing state machines with anything is a nasty experience in general
2021-12-03 15:46:18 +0100 <zincy> Yeah it is hard
2021-12-03 15:46:38 +0100mud(~mud@user/kadoban)
2021-12-03 15:51:50 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 15:52:08 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 15:53:18 +0100alzgh(~alzgh@user/alzgh) (Remote host closed the connection)
2021-12-03 15:55:13 +0100alzgh(~alzgh@user/alzgh)
2021-12-03 16:00:25 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 16:00:43 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 16:02:16 +0100doyougnu(~doyougnu@c-73-25-202-122.hsd1.or.comcast.net)
2021-12-03 16:03:10 +0100 <kuribas> oh, "s" will popup a searchbox!
2021-12-03 16:03:19 +0100 <kuribas> (in hackage)
2021-12-03 16:06:39 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 16:06:56 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 16:07:25 +0100zer0bitz(~zer0bitz@dsl-hkibng32-54fbfb-173.dhcp.inet.fi) (Ping timeout: 252 seconds)
2021-12-03 16:07:38 +0100zer0bitz(~zer0bitz@dsl-hkibng32-54fbfb-173.dhcp.inet.fi)
2021-12-03 16:09:26 +0100alzgh(~alzgh@user/alzgh) (Remote host closed the connection)
2021-12-03 16:10:33 +0100 <maerwald> yeah... it's a bit rough though
2021-12-03 16:11:22 +0100alzgh(~alzgh@user/alzgh)
2021-12-03 16:12:25 +0100ether_(~a@p200300ef970235b38185de4e61219232.dip0.t-ipconnect.de)
2021-12-03 16:13:38 +0100 <kuribas> Better than nothing?
2021-12-03 16:14:03 +0100chisui(~chisui@2001:16b8:661d:7600:f248:3361:5fc2:82d9) (Quit: Client closed)
2021-12-03 16:17:25 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 16:17:43 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 16:19:23 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 16:19:41 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 16:20:13 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab)
2021-12-03 16:22:43 +0100Itaru(~DaSH@ro2.flokinet.is)
2021-12-03 16:24:11 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-12-03 16:24:16 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection)
2021-12-03 16:24:22 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-12-03 16:24:46 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection)
2021-12-03 16:25:12 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-12-03 16:25:19 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection)
2021-12-03 16:25:26 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-12-03 16:25:56 +0100cheater(~Username@user/cheater) (Ping timeout: 252 seconds)
2021-12-03 16:26:17 +0100cheater(~Username@user/cheater)
2021-12-03 16:27:22 +0100vpan(~0@212.117.1.172) (Quit: Leaving.)
2021-12-03 16:29:12 +0100EvanR(~evan@2600:1700:ba69:10:87af:d76a:1197:e8dd) (Quit: Leaving)
2021-12-03 16:31:44 +0100EvanR(~evan@user/evanr)
2021-12-03 16:32:15 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2021-12-03 16:33:12 +0100jakalx(~jakalx@base.jakalx.net) ()
2021-12-03 16:35:30 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 16:35:48 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 16:38:39 +0100 <merijn> maerwald: Is there any language that has something better?
2021-12-03 16:38:51 +0100 <ether_> I want to do a in place QuickSort. Do I need STM?
2021-12-03 16:39:04 +0100 <merijn> ether_: Not necessarily
2021-12-03 16:39:05 +0100 <maerwald> merijn: rust
2021-12-03 16:39:10 +0100jakalx(~jakalx@base.jakalx.net)
2021-12-03 16:39:28 +0100 <merijn> ether_: But you do need some form of mutability (STM, IO, or ST)
2021-12-03 16:40:01 +0100 <merijn> ether_: And probably want to use Vector (assuming you weren't already)
2021-12-03 16:40:36 +0100 <ether_> merijn: Which is used normally? STM IO or ST?
2021-12-03 16:41:25 +0100 <merijn> ether_: IO (if you're already in IO anyway) or ST
2021-12-03 16:41:53 +0100 <merijn> ether_: ST is nice, because you can encapsulate it in pure code
2021-12-03 16:41:59 +0100 <ether_> Is STM used if I try to parallelize quicksort?
2021-12-03 16:42:39 +0100 <merijn> ether_: You could, but I don't think there's currently any STM vectors/arrays (or at least, I'm not aware of one)
2021-12-03 16:42:43 +0100 <merijn> Could be a neat project
2021-12-03 16:43:45 +0100 <ether_> Is parallel quicksort possible with ST (sorry, still a beginner)?
2021-12-03 16:43:55 +0100jgeerds(~jgeerds@55d45b75.access.ecotel.net)
2021-12-03 16:44:06 +0100hiruji(~hiruji@user/hiruji) (Ping timeout: 245 seconds)
2021-12-03 16:44:19 +0100 <merijn> ST is only single-threaded
2021-12-03 16:44:32 +0100 <merijn> One of the reasons you can encapsulate it in pure code :p
2021-12-03 16:44:51 +0100Sgeo(~Sgeo@user/sgeo)
2021-12-03 16:45:20 +0100fizbin_(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-03 16:45:33 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Read error: Connection reset by peer)
2021-12-03 16:45:54 +0100 <ether_> Ok, so first project could be in sort quicksort with st. And parallel quicksort is not possible right now.
2021-12-03 16:46:29 +0100 <merijn> ether_: Sort is actually a nice example of this. Consider: a function that has "list goes in" -> "sorted list goes out" is pure, even if you use mutability inside *IFF* you can guarantee no one can observe your mutability outside that function call
2021-12-03 16:47:07 +0100 <merijn> Because, how could you even tell if it used mutability internally?
2021-12-03 16:47:15 +0100 <ether_> So it's ok because the mutability is local.
2021-12-03 16:47:24 +0100shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-12-03 16:47:46 +0100 <merijn> ether_: The ST monad allows mutable references inside it, but statically prevents any of the mutability leaking out of scope
2021-12-03 16:48:32 +0100 <merijn> ether_: Which is why (unlike IO) there is a (safe!) "unST :: ST a -> a" function (type is a partial fib, because the type is slightly more complicated)
2021-12-03 16:49:08 +0100samhh(7569f027cf@2604:bf00:561:2000::e4)
2021-12-03 16:49:45 +0100 <ether_> If nobody else knows about it and nobody else can use it then mutability is ok :-)
2021-12-03 16:50:17 +0100n8ess163(~b@pool-72-80-171-162.nycmny.fios.verizon.net)
2021-12-03 16:51:17 +0100 <merijn> For more details than you ever wanted to know about ST (and pure mutability), this is a good explanation of how it works: https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.45.3718&rep=rep1&type=pdf
2021-12-03 16:52:28 +0100xsperry(~xs@user/xsperry) ()
2021-12-03 16:52:30 +0100lbseale(~ep1ctetus@user/ep1ctetus)
2021-12-03 16:52:45 +0100 <geekosaur> mutability is ok as long as nothing else can prove you did it :)
2021-12-03 16:53:58 +0100 <merijn> @hackage vector
2021-12-03 16:53:58 +0100 <lambdabot> https://hackage.haskell.org/package/vector
2021-12-03 16:54:27 +0100 <merijn> ether_: The Vector package's Mutable modules support ST based reads/writes of vectors
2021-12-03 16:54:47 +0100 <merijn> Actually...I think i used that for AoC in 2019, maybe I have an example :p
2021-12-03 16:54:55 +0100 <ether_> How does Haskell solve parallel mutable array access if ST is single threaded and there is no STM vector?
2021-12-03 16:55:18 +0100 <merijn> Ah, no, I did it using IO :)
2021-12-03 16:55:56 +0100 <merijn> ether_: I mean, vector is just a library, there's nothing that prevents you from implementing an STM vector, I just don't think anyone has, because designing a good API is hard
2021-12-03 16:55:59 +0100deadmarshal(~deadmarsh@95.38.116.117) (Ping timeout: 256 seconds)
2021-12-03 16:56:08 +0100hiruji(~hiruji@user/hiruji)
2021-12-03 16:56:13 +0100 <merijn> ether_: IO based Vector can be used in a parallel setting, though
2021-12-03 16:56:28 +0100 <merijn> ether_: There's also "sparks" which allow for pure parallelism too
2021-12-03 16:56:48 +0100 <merijn> Simon Marlow's "Parallel & Concurrent Haskell" book explain those, iirc
2021-12-03 16:57:49 +0100 <ether_> Is this the normal model with threads and locks?
2021-12-03 16:57:51 +0100 <merijn> You could even make a regular vector of individual TVar's that you can then update individually
2021-12-03 16:58:13 +0100 <merijn> ether_: The IO approach would just be the regular threads and locks kinda deal, yeah
2021-12-03 16:59:46 +0100 <merijn> ether_: sparks are entirely different, in that they're basically "deterministic parallelism". Consider the example of "map (*2) someList", it is (obviously) safe to perform the multplications in parallel, because obviously no one can tell whether you did or not. But I don't think there is a lot of stuff written about how to use sparks effectively, though
2021-12-03 17:00:08 +0100 <merijn> I think Athas was playing with them for a class a while back, but I dunno if he has any pointers
2021-12-03 17:00:08 +0100xosdy[m](~xosdyalet@2001:470:69fc:105::31f7) (Quit: You have been kicked for being idle)
2021-12-03 17:00:21 +0100xosdy[m](~xosdyalet@2001:470:69fc:105::31f7)
2021-12-03 17:00:22 +0100xosdy[m](~xosdyalet@2001:470:69fc:105::31f7) ()
2021-12-03 17:00:46 +0100 <ether_> I don't know much about mutability and parallelism in Haskell. My idea was to make a parallel in place quicksort to learn real world Haskell better. But I think this is too advanced for me. I will try the in place ST quicksort though.
2021-12-03 17:02:10 +0100 <EvanR> how about immutability and parallelism
2021-12-03 17:02:49 +0100 <EvanR> https://hackage.haskell.org/package/parallel-3.2.2.0/docs/Control-Parallel.html
2021-12-03 17:02:58 +0100 <merijn> ether_: Parallel & Concurrent Haskell is a very nice book for getting familiar with the basic parallelism/concurrency primitives in GHC
2021-12-03 17:03:26 +0100 <merijn> ether_: But a single-threaded ST and/or IO based first implementation is probably an easier starting point
2021-12-03 17:03:46 +0100 <merijn> Also, allow me my usual hot take: Why quick sort, the worst of all sorts? :p
2021-12-03 17:04:27 +0100 <merijn> A pox upon whoever thought of that name, misleading generations of programmers into thinking it's a good sort >.>
2021-12-03 17:08:27 +0100alzgh(~alzgh@user/alzgh) (Ping timeout: 256 seconds)
2021-12-03 17:08:40 +0100 <ether_> I like merge sort better too. It's just an excuse for using parallel mutable arrays in haskell. an then i have an answer to the people who say haskell's quicksort is not a real quicksort. and it's only toy language
2021-12-03 17:08:55 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 17:09:12 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 17:09:19 +0100nabaiste^(~nabaiste@68.101.58.90) (Remote host closed the connection)
2021-12-03 17:09:42 +0100 <merijn> You can do parallel merge sort too ;)
2021-12-03 17:09:42 +0100notzmv(~zmv@user/notzmv)
2021-12-03 17:09:56 +0100n8ess163(~b@pool-72-80-171-162.nycmny.fios.verizon.net) (Ping timeout: 252 seconds)
2021-12-03 17:10:25 +0100 <merijn> Even in-place! (Well, with constant extra memory...)
2021-12-03 17:10:46 +0100 <merijn> Although that implementation is a bit harder
2021-12-03 17:11:35 +0100xff0x(~xff0x@2001:1a81:5394:4100:b17b:62d7:7f1e:4d8a) (Ping timeout: 252 seconds)
2021-12-03 17:12:02 +0100 <merijn> ether_: tbh, a proper mutable quicksort should be easy enough. In IO you can probably do it right now, just looking at the Mutable vector API: https://hackage.haskell.org/package/vector-0.12.3.1/docs/Data-Vector-Mutable.html#g:10
2021-12-03 17:12:20 +0100slowButPresent(~slowButPr@user/slowbutpresent)
2021-12-03 17:12:31 +0100 <merijn> (Just pretend 'PrimState m' says either 'IO' or 'ST')
2021-12-03 17:12:41 +0100xff0x(~xff0x@2001:1a81:5394:4100:724:71c4:c7ef:b5ba)
2021-12-03 17:13:33 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
2021-12-03 17:15:31 +0100 <ether_> merijn: thank you
2021-12-03 17:19:39 +0100Guest17(~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: Client closed)
2021-12-03 17:19:58 +0100deadmarshal(~deadmarsh@95.38.116.117)
2021-12-03 17:22:22 +0100alzgh(alzgh@user/alzgh)
2021-12-03 17:22:31 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:2293:2037:bf6e:4ea5) (Quit: WeeChat 2.8)
2021-12-03 17:23:31 +0100Itaru(~DaSH@ro2.flokinet.is) (Quit: Leaving)
2021-12-03 17:23:54 +0100Itaru(~DaSH@ro2.flokinet.is)
2021-12-03 17:27:50 +0100son0p(~ff@181.136.122.143)
2021-12-03 17:31:01 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-03 17:32:19 +0100lavaman(~lavaman@98.38.249.169)
2021-12-03 17:32:27 +0100erts(~erts@user/erts)
2021-12-03 17:32:58 +0100ubert(~Thunderbi@p200300ecdf0ba299f01739553a033620.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-12-03 17:32:59 +0100cosimone(~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) (Remote host closed the connection)
2021-12-03 17:33:15 +0100Techcable(~Techcable@168.235.93.147)
2021-12-03 17:33:26 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
2021-12-03 17:33:35 +0100fef(~thedawn@user/thedawn)
2021-12-03 17:34:56 +0100ubert(~Thunderbi@p200300ecdf0ba299e6b318fffe838f33.dip0.t-ipconnect.de)
2021-12-03 17:35:39 +0100chele(~chele@user/chele) (Ping timeout: 256 seconds)
2021-12-03 17:36:53 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-12-03 17:39:15 +0100erts(~erts@user/erts) (.)
2021-12-03 17:40:11 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
2021-12-03 17:40:23 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 17:42:03 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 17:42:21 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 17:42:59 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
2021-12-03 17:43:53 +0100namkeleser(~namkelese@101.175.102.188) (Quit: Client closed)
2021-12-03 17:47:19 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f5ec:bb0e:161e:528b)
2021-12-03 17:47:33 +0100doyougnu(~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-12-03 17:49:15 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
2021-12-03 17:50:33 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-12-03 17:52:15 +0100Itaru(~DaSH@ro2.flokinet.is) (Quit: Leaving)
2021-12-03 17:52:26 +0100wei2912(~wei2912@116.88.103.128) (Quit: Lost terminal)
2021-12-03 17:52:43 +0100Itaru(~DaSH@ro2.flokinet.is)
2021-12-03 17:53:09 +0100_bo(~bo@79.171.122.236) (Read error: Connection reset by peer)
2021-12-03 17:55:39 +0100ubert(~Thunderbi@p200300ecdf0ba299e6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-12-03 18:00:25 +0100hgolden(~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (Quit: Konversation terminated!)
2021-12-03 18:02:54 +0100hgolden(~hgolden2@cpe-172-114-81-123.socal.res.rr.com)
2021-12-03 18:03:39 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 18:04:22 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2021-12-03 18:05:07 +0100jgeerds(~jgeerds@55d45b75.access.ecotel.net) (Ping timeout: 256 seconds)
2021-12-03 18:05:21 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-03 18:07:21 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 18:08:43 +0100Unhammer(~Unhammer@user/unhammer) (Ping timeout: 250 seconds)
2021-12-03 18:10:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-03 18:12:19 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab) (Quit: gone to sleep. ZZZzzz…)
2021-12-03 18:13:55 +0100ether_(~a@p200300ef970235b38185de4e61219232.dip0.t-ipconnect.de) (Quit: WeeChat 3.0.1)
2021-12-03 18:20:06 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 18:21:00 +0100econo(uid147250@user/econo)
2021-12-03 18:22:16 +0100Unhammer(~Unhammer@user/unhammer)
2021-12-03 18:23:56 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 18:29:46 +0100zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2021-12-03 18:30:53 +0100zaquest(~notzaques@5.130.79.72)
2021-12-03 18:32:37 +0100deadmarshal(~deadmarsh@95.38.116.117) (Ping timeout: 252 seconds)
2021-12-03 18:35:41 +0100 <EvanR> I rewrote my day3 part2 solution so it only goes through the original list once
2021-12-03 18:35:57 +0100 <EvanR> and other lists once
2021-12-03 18:36:27 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 18:37:45 +0100fabfianda(~fabfianda@net-109-115-246-237.cust.vodafonedsl.it) (Ping timeout: 252 seconds)
2021-12-03 18:38:56 +0100fabfianda(~fabfianda@mob-5-90-243-109.net.vodafone.it)
2021-12-03 18:41:48 +0100fabfianda(~fabfianda@mob-5-90-243-109.net.vodafone.it) (Read error: Connection reset by peer)
2021-12-03 18:41:50 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2021-12-03 18:41:57 +0100fabfianda(~fabfianda@net-109-115-246-237.cust.vodafonedsl.it)
2021-12-03 18:43:05 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
2021-12-03 18:48:18 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 18:51:17 +0100 <EvanR> does my use of seq seem cromulent here https://paste.tomsmeding.com/TA5yfS2w
2021-12-03 18:51:46 +0100 <dsal> EvanR: Maybe BangPatterns would be clearer?
2021-12-03 18:51:53 +0100 <EvanR> would it?
2021-12-03 18:52:34 +0100 <dsal> I find `seq` weird. Though you're keeping the part you're not working with a bit lazier. I can't tell if that's intentional or not.
2021-12-03 18:53:06 +0100 <EvanR> if I don't add 1, there's nothing to seq...
2021-12-03 18:53:41 +0100 <EvanR> basically I am thinking it gets evaluated the next time a + comes up
2021-12-03 18:53:51 +0100 <dsal> If you did bang patterns, you'd declare both it for both z and o.
2021-12-03 18:54:02 +0100 <EvanR> yes that's what I originally had
2021-12-03 18:54:21 +0100 <EvanR> maybe that's better for the compiler
2021-12-03 18:54:36 +0100 <dsal> I'd think you'd want them all evaluated by the end, so having thunks along the way probably isn't helping you.
2021-12-03 18:55:32 +0100 <dsal> I don't know how this stuff optimizes, though. Conceptually, it doubles the `seq`s. For those kinds of things, I just let the a profiler or benchmark guide me.
2021-12-03 18:56:10 +0100 <dsal> But the use of seq here looks like what I'd think seq would make sense for. I just almost never use it.
2021-12-03 18:57:14 +0100 <EvanR> I guess it's less noisy https://paste.tomsmeding.com/NdDixLWt
2021-12-03 18:57:51 +0100 <EvanR> so now the function is more strict? :thonk:
2021-12-03 18:58:25 +0100 <EvanR> before the tuple can be scrutized, the sums are done
2021-12-03 18:58:51 +0100 <EvanR> so infinite lists are out right xD
2021-12-03 18:59:51 +0100 <dsal> I don't think this has any effect on infinite lists, does it? (other than the part where you don't terminate until you get to the end)
2021-12-03 18:59:57 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 19:00:14 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 19:00:48 +0100 <EvanR> if you try to use part on an infinite list, now you can't possibly get the first item from either partition (or anything in the tuple at all, the tuple can't exist)
2021-12-03 19:01:20 +0100 <boxscape> EvanR: personally I'd use LambdaCase here, as in https://paste.tomsmeding.com/XKupxSUx - just to avoid having to write all those arguments/bang patterns twice
2021-12-03 19:01:58 +0100 <EvanR> that's real slick
2021-12-03 19:04:01 +0100deadmarshal(~deadmarsh@95.38.116.117)
2021-12-03 19:04:35 +0100 <EvanR> sorry, the tuple can't exist anyway since there is no end
2021-12-03 19:04:37 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
2021-12-03 19:05:53 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-12-03 19:08:41 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-12-03 19:12:31 +0100rkrishnan(~user@122.171.92.146)
2021-12-03 19:12:57 +0100hiruji(~hiruji@user/hiruji) (Ping timeout: 252 seconds)
2021-12-03 19:12:59 +0100rkrishnan(~user@122.171.92.146) (Remote host closed the connection)
2021-12-03 19:16:39 +0100Midjak(~Midjak@may53-1-78-226-116-92.fbx.proxad.net)
2021-12-03 19:17:11 +0100deadmarshal(~deadmarsh@95.38.116.117) (Read error: Connection reset by peer)
2021-12-03 19:18:24 +0100hiruji(~hiruji@user/hiruji)
2021-12-03 19:20:07 +0100deadmarshal(~deadmarsh@68.235.38.176)
2021-12-03 19:22:51 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f5ec:bb0e:161e:528b) (Remote host closed the connection)
2021-12-03 19:23:03 +0100shiraeeshi[m](~shiraeesh@2001:470:69fc:105::1:77)
2021-12-03 19:24:03 +0100kuribas(~user@ptr-25vy0i9sci02rkc3ssb.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
2021-12-03 19:30:46 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 19:31:33 +0100DNH(~DNH@2a02:8108:1100:16d8:bd44:40bf:fb3b:742a) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-12-03 19:31:59 +0100zincy_(~zincy@2a00:23c8:970c:4801:f9b9:ddeb:6361:fc1a)
2021-12-03 19:32:10 +0100lavaman(~lavaman@98.38.249.169)
2021-12-03 19:32:58 +0100res0nat0r8(~Fletch@dia.whatbox.ca) (Ping timeout: 268 seconds)
2021-12-03 19:34:17 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-03 19:34:58 +0100DNH(~DNH@2a02:8108:1100:16d8:bd44:40bf:fb3b:742a)
2021-12-03 19:35:13 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
2021-12-03 19:39:27 +0100hgolden(~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (Quit: Konversation terminated!)
2021-12-03 19:43:19 +0100deadmarshal(~deadmarsh@68.235.38.176) (Read error: Connection reset by peer)
2021-12-03 19:45:22 +0100lavaman(~lavaman@98.38.249.169)
2021-12-03 19:53:23 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-03 19:55:49 +0100hgolden(~hgolden2@cpe-172-114-81-123.socal.res.rr.com)
2021-12-03 19:56:44 +0100zincy_(~zincy@2a00:23c8:970c:4801:f9b9:ddeb:6361:fc1a) (Remote host closed the connection)
2021-12-03 19:57:57 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-12-03 20:00:17 +0100hgolden(~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (Remote host closed the connection)
2021-12-03 20:03:13 +0100hololeap(~hololeap@user/hololeap) (Read error: Connection reset by peer)
2021-12-03 20:04:02 +0100max22-(~maxime@2a01cb0883359800d8b0a223a3eaa461.ipv6.abo.wanadoo.fr) (Ping timeout: 240 seconds)
2021-12-03 20:04:32 +0100hololeap(~hololeap@user/hololeap)
2021-12-03 20:05:49 +0100 <boxscape> https://wiki.haskell.org/Idiom_brackets has some ugly typeclass hackery to approximate idiom brackets, but here's what I'm wondering: It introduces a mechanism to insert joins anywhere in an applicative sequence, e.g. `join (f <$> x <*> y) <*> z`. Is this commonly useful? I've never felt the need to use join in such a context
2021-12-03 20:06:26 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 20:06:44 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-03 20:08:25 +0100 <EvanR> while applicativing you could possibly feel the urge to monad
2021-12-03 20:09:09 +0100nautical(~nautical@2601:602:900:1630::396f) (Quit: WeeChat 3.3)
2021-12-03 20:09:14 +0100zincy_(~zincy@2a00:23c8:970c:4801:f9b9:ddeb:6361:fc1a)
2021-12-03 20:10:46 +0100 <awpr> that particular approach looks a bit inscrutable to me based on a short look, but as for the urge to introduce joins: if you have a monadic API where it's reasonable to think about expression trees of monadic actions rather than "imperative" sequences of actions, then joins show up at every level of nesting
2021-12-03 20:11:55 +0100 <boxscape> hm, I see
2021-12-03 20:13:03 +0100 <awpr> e.g. if you have a DSL where each operation is constructed by a monadic action: `add, mul :: p Int -> p Int -> DSL p (p Int)` and `lit :: Int -> DSL p (p Int)`, then imperative-style looks a bit unwieldy: `do { x <- lit 2; y <- lit 4; z <- lit 6; xy <- add x y; xyz <- mul xy z }`
2021-12-03 20:14:51 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 20:15:09 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 20:15:17 +0100 <awpr> and expression style with only the stuff in `base` is unwieldy, too: `join (mul <$> (join (add <$> lit 2 <*> lit 4)) <*> lit 6)` (so unwieldy that I probably got it wrong, but it gets the idea across)
2021-12-03 20:15:40 +0100 <boxscape> okay, yeah, that makes sense, thanks
2021-12-03 20:17:15 +0100 <awpr> my preferred way to deal with that is an operator `=*< :: Monad m => m (a -> m b) -> m a -> m b` that does both the `<*>` and the `join` together, so: `mul <$> (add <$> lit 2 =*< lit 4) =*< lit 6`
2021-12-03 20:18:00 +0100sprout_(~quassel@2a02:a467:ccd6:1:654a:7e1b:4ab5:b4bb)
2021-12-03 20:18:27 +0100tfeb(~tfb@88.98.95.237)
2021-12-03 20:18:30 +0100 <boxscape> ah, neat
2021-12-03 20:19:25 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
2021-12-03 20:19:32 +0100deadmarshal(~deadmarsh@95.38.116.117)
2021-12-03 20:19:38 +0100fef(~thedawn@user/thedawn) (Remote host closed the connection)
2021-12-03 20:19:41 +0100 <awpr> there was some discussion of this operator a while ago, and I think ski preferred a different name for the same operator. I don't remember what that name was, though, something with multiple stars or extra angle brackets like `<***>` or `<<*>>` or something
2021-12-03 20:20:40 +0100 <boxscape> okay
2021-12-03 20:21:20 +0100sprout(~quassel@2a02:a467:ccd6:1:8149:2184:782c:2882) (Ping timeout: 252 seconds)
2021-12-03 20:21:46 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f5ec:bb0e:161e:528b)
2021-12-03 20:22:57 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-03 20:22:59 +0100fabfianda(~fabfianda@net-109-115-246-237.cust.vodafonedsl.it) (Ping timeout: 252 seconds)
2021-12-03 20:23:43 +0100fabfianda(~fabfianda@net-109-115-246-237.cust.vodafonedsl.it)
2021-12-03 20:24:01 +0100deadmarshal(~deadmarsh@95.38.116.117) (Ping timeout: 256 seconds)
2021-12-03 20:26:15 +0100 <boxscape> I suppose in Idris you could write `mul !(add !(lit 2) !(lit 4)) !(lit 6)` (haven't done Idris in years though)
2021-12-03 20:27:57 +0100 <awpr> hmm, I do remember Idris having that kind of notation, but I'm unsure whether it implicitly joins the subexpressions or whether it's only for applicative-style expressions
2021-12-03 20:28:22 +0100tfeb(~tfb@88.98.95.237) (Quit: died)
2021-12-03 20:28:56 +0100 <boxscape> the documentation is https://idris2.readthedocs.io/en/latest/tutorial/interfaces.html#notation
2021-12-03 20:31:53 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 20:32:21 +0100 <awpr> so the exclamation point syntax was replaced with bracket notation in idris2? as far as I can tell that doesn't appear to handle the joins for you, only the applicative part
2021-12-03 20:33:27 +0100 <boxscape> awpr: erm, not sure but I don't it was replaced? Since the link points to !-notation of idris 2
2021-12-03 20:33:32 +0100max22-(~maxime@2a01cb0883359800e7fc8fc683bf0760.ipv6.abo.wanadoo.fr)
2021-12-03 20:33:32 +0100hgolden(~hgolden2@cpe-172-114-81-123.socal.res.rr.com)
2021-12-03 20:33:48 +0100 <boxscape> (they've had idiom brackets in parallel)
2021-12-03 20:34:06 +0100 <awpr> oh, I missed that. I was on the same docs page already and just assumed the link was to the section I was reading
2021-12-03 20:34:10 +0100 <boxscape> s/don't/don't think
2021-12-03 20:34:31 +0100 <boxscape> fair
2021-12-03 20:34:38 +0100puke(~puke@user/puke)
2021-12-03 20:35:27 +0100 <awpr> ok yeah, that looks like it probably does behave how you'd want for this sort of nested joins
2021-12-03 20:35:38 +0100Erutuon(~Erutuon@user/erutuon)
2021-12-03 20:35:38 +0100 <boxscape> right, okay
2021-12-03 20:38:05 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 20:38:23 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 20:39:37 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f5ec:bb0e:161e:528b) (Remote host closed the connection)
2021-12-03 20:39:49 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-03 20:42:03 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 20:42:21 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 20:44:01 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 20:44:19 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 20:45:20 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 20:45:38 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 20:45:58 +0100abrantesasf(~abrantesa@187.36.170.211)
2021-12-03 20:46:59 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
2021-12-03 20:49:25 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 20:49:43 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 20:51:30 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 20:53:03 +0100nvmd(~nvmd@user/nvmd)
2021-12-03 20:58:32 +0100xsperry(~xs@user/xsperry)
2021-12-03 21:02:14 +0100 <zincy_> Anyone know how to fix this type error? https://gist.github.com/therewillbecode/b181a9951f2b6309a64cc88c65fc0acc
2021-12-03 21:05:03 +0100 <monochrom> Ugh, is this analogous to the beginner mistake of "x :: forall a. a; x = False"?
2021-12-03 21:05:09 +0100juhp(~juhp@128.106.188.82) (Ping timeout: 252 seconds)
2021-12-03 21:05:14 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com)
2021-12-03 21:06:52 +0100curiousgay(~curiousga@77-120-141-90.kha.volia.net)
2021-12-03 21:07:07 +0100 <zincy_> monochrom: Why is that a mistake?
2021-12-03 21:07:28 +0100 <zincy_> oh because a isn't instantiated
2021-12-03 21:07:39 +0100 <dmj`> ^ that and you're also saying v on GPlayers is the same as v on GToAct. One is a Maybe, the other a Vector.
2021-12-03 21:07:44 +0100 <monochrom> "x :: forall a. a" means that user of x --- that's me --- chooses whichever type I want for "a".
2021-12-03 21:08:03 +0100simendsjo(~user@84.211.91.241)
2021-12-03 21:08:04 +0100juhp(~juhp@128.106.188.82)
2021-12-03 21:08:05 +0100 <monochrom> So, what if I choose to use x in "x + 4"?
2021-12-03 21:08:37 +0100DNH(~DNH@2a02:8108:1100:16d8:bd44:40bf:fb3b:742a) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-12-03 21:08:44 +0100 <zincy_> dmj`: Hmm I thought v had to be the same here
2021-12-03 21:09:10 +0100 <zincy_> Since v is just carrying info about whether we are at "runtime" or "execution" time
2021-12-03 21:10:05 +0100 <zincy_> monochrom: then x :: Int
2021-12-03 21:10:14 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-12-03 21:10:23 +0100 <monochrom> Yes.
2021-12-03 21:10:23 +0100 <dmj`> zincy_: you're right, I read it as Vector v, and not Vector (Var a v)
2021-12-03 21:10:36 +0100 <monochrom> I can have (x::Int) + length (x::String).
2021-12-03 21:10:48 +0100lavaman(~lavaman@98.38.249.169)
2021-12-03 21:11:00 +0100 <monochrom> So whoever wrote "x = False" was not understanding "forall".
2021-12-03 21:11:41 +0100 <zincy_> Is rankNTypes about "delaying" the choosing?
2021-12-03 21:11:49 +0100 <monochrom> No.
2021-12-03 21:12:21 +0100 <monochrom> RankNTypes is about allowing "forall" in more places, most notably more nesting.
2021-12-03 21:12:49 +0100 <monochrom> For example "(forall a. a) -> Int" which is intuitively "exists a. a -> Int"
2021-12-03 21:14:02 +0100 <monochrom> "foo :: exists a. a -> Int" means that the provider of foo chooses "a". Therefore the user doesn't choose.
2021-12-03 21:14:12 +0100 <monochrom> The opposite of "forall a. a -> Int"
2021-12-03 21:14:32 +0100 <monochrom> The same can be said of "foo2 :: (forall a. a) -> Int"
2021-12-03 21:14:43 +0100 <zincy_> So the choice of parameter instantiation is inverted
2021-12-03 21:14:44 +0100doyougnu(~doyougnu@c-73-25-202-122.hsd1.or.comcast.net)
2021-12-03 21:15:01 +0100 <zincy_> Well who chooses producer/consumer
2021-12-03 21:15:14 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-12-03 21:16:11 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3)
2021-12-03 21:16:29 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 21:17:14 +0100 <boxscape> much like in `f :: (String -> Int) -> Int`, f gets to choose which String to use, but in `f :: String -> (Int -> Int)`, the caller of f gets to choose which String to use
2021-12-03 21:17:20 +0100 <monochrom> Programming is the dialectic class struggle between the producer and the consumer.
2021-12-03 21:18:40 +0100 <zincy_> haha
2021-12-03 21:19:43 +0100 <zincy_> monochrom: Do you find CT fruitful for programming?
2021-12-03 21:19:59 +0100 <monochrom> No.
2021-12-03 21:20:09 +0100 <monochrom> Why CT?
2021-12-03 21:20:28 +0100 <monochrom> I lied. Sometimes yes.
2021-12-03 21:20:30 +0100__monty__(~toonn@user/toonn)
2021-12-03 21:20:31 +0100zer0bitz(~zer0bitz@dsl-hkibng32-54fbfb-173.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-12-03 21:20:59 +0100 <monochrom> https://link.springer.com/chapter/10.1007%2F978-3-662-54434-1_21 is an example I recently found.
2021-12-03 21:21:11 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
2021-12-03 21:21:31 +0100DNH(~DNH@2a02:8108:1100:16d8:bd44:40bf:fb3b:742a)
2021-12-03 21:21:38 +0100 <boxscape> I just recently watched Conal Elliott's talk about compiling to categories, which I think is another good example
2021-12-03 21:21:42 +0100 <monochrom> A little bit of representable functor to explain why APL makes so much sense, and it doesn't have to be just arrays.
2021-12-03 21:21:58 +0100 <zincy_> I hear type theory is more useful
2021-12-03 21:22:58 +0100 <zincy_> boxscape: How is there a choice about which String to use are you talking about which value of type String?
2021-12-03 21:23:10 +0100 <monochrom> Yes.
2021-12-03 21:23:11 +0100 <boxscape> yes, which value of type String
2021-12-03 21:23:21 +0100 <zincy_> Ah ok
2021-12-03 21:27:26 +0100iqubic(~user@2601:602:9502:c70:f6f0:c69f:f066:4465)
2021-12-03 21:30:10 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection)
2021-12-03 21:30:36 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
2021-12-03 21:30:38 +0100pavonia(~user@user/siracusa)
2021-12-03 21:32:07 +0100kennyd(~bc8165b6@cerf.good1.com)
2021-12-03 21:34:42 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 21:36:02 +0100deadmarshal(~deadmarsh@95.38.116.117)
2021-12-03 21:37:06 +0100 <EvanR> afaict type theory is logic, and logic is good sometimes
2021-12-03 21:37:36 +0100doyougnu(~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Read error: Connection reset by peer)
2021-12-03 21:39:37 +0100doyougnu(~doyougnu@c-73-25-202-122.hsd1.or.comcast.net)
2021-12-03 21:40:18 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f5ec:bb0e:161e:528b)
2021-12-03 21:43:37 +0100deadmarshal(~deadmarsh@95.38.116.117) (Read error: Connection reset by peer)
2021-12-03 21:43:39 +0100 <zincy_> EvanR: yeah
2021-12-03 21:43:51 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
2021-12-03 21:44:29 +0100 <zincy_> Algebra is next on my list
2021-12-03 21:44:45 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f5ec:bb0e:161e:528b) (Ping timeout: 252 seconds)
2021-12-03 21:46:33 +0100deadmarshal(~deadmarsh@95.38.116.117)
2021-12-03 21:54:17 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f5ec:bb0e:161e:528b)
2021-12-03 21:55:07 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-03 21:55:08 +0100zincy_(~zincy@2a00:23c8:970c:4801:f9b9:ddeb:6361:fc1a) (Remote host closed the connection)
2021-12-03 21:55:20 +0100zincy_(~zincy@2a00:23c8:970c:4801:f9b9:ddeb:6361:fc1a)
2021-12-03 21:56:41 +0100 <shiraeeshi[m]> hello fellas
2021-12-03 21:56:45 +0100 <boxscape> hey there
2021-12-03 21:58:12 +0100 <shiraeeshi[m]> apparently I last read this chat in 30th of september, and today I opened my client and it showed me old messages
2021-12-03 21:59:06 +0100 <shiraeeshi[m]> a funny performance by adjoint_cats, I had a good laugh
2021-12-03 21:59:36 +0100 <shiraeeshi[m]> Functors! Huh! (Good God!) What are they good for? (Not much!)
2021-12-03 21:59:39 +0100 <shiraeeshi[m]> DANCES
2021-12-03 21:59:43 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-12-03 21:59:48 +0100 <shiraeeshi[m]> Functors is something I despise! For it means destruction of innocent types. And thousands of lines in Monad's cries. Our sons write functional pearls and give their lives!
2021-12-03 21:59:49 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection)
2021-12-03 21:59:56 +0100 <shiraeeshi[m]> Functors! Huh! (Good God!) What are they good for? (Not much!)
2021-12-03 22:00:13 +0100 <shiraeeshi[m]> and then he got kicked out
2021-12-03 22:00:20 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-12-03 22:02:04 +0100 <boxscape> nice rhymes
2021-12-03 22:02:43 +0100deadmarshal_(~deadmarsh@68.235.38.176)
2021-12-03 22:02:45 +0100 <shiraeeshi[m]> as to the actual question:
2021-12-03 22:02:47 +0100 <janus> looks like it is to the melody of the vietnam song "War ( what is it good for?)" by Edwin Starr
2021-12-03 22:03:06 +0100 <shiraeeshi[m]> hey, didn't know that
2021-12-03 22:03:38 +0100deadmarshal(~deadmarsh@95.38.116.117) (Ping timeout: 252 seconds)
2021-12-03 22:03:40 +0100 <shiraeeshi[m]> there was a post and a discussion on reddit
2021-12-03 22:03:49 +0100 <shiraeeshi[m]> A survey for Haskell users in the industry: how do you handle effects?
2021-12-03 22:03:53 +0100 <oats> so this is weird, the docs suggest there's a function in Numeric called readBin, but ghc says "Module 'Numeric' does not export 'readBin'"
2021-12-03 22:03:59 +0100 <shiraeeshi[m]> https://www.reddit.com/r/haskell/comments/r4wxi6/a_survey_for_haskell_users_in_the_industry_how_do/
2021-12-03 22:04:12 +0100 <int-e> oats: it's new in base-4.16
2021-12-03 22:04:17 +0100 <oats> ohhh
2021-12-03 22:04:19 +0100 <shiraeeshi[m]> did you people discuss it in this chat?
2021-12-03 22:04:25 +0100 <boxscape> AoC eh
2021-12-03 22:04:26 +0100 <oats> any way I can get stack to fetch that for me?
2021-12-03 22:04:27 +0100 <int-e> oats: (which comes with ghc-9.2)
2021-12-03 22:04:31 +0100 <oats> ah
2021-12-03 22:04:35 +0100 <oats> rip stackage
2021-12-03 22:04:35 +0100 <boxscape> I stumbled over readBin today, too
2021-12-03 22:04:38 +0100 <oats> lol
2021-12-03 22:04:41 +0100_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-12-03 22:04:44 +0100 <oats> ugh I don't wanna implement this
2021-12-03 22:04:52 +0100 <int-e> (as I learned earlier today)
2021-12-03 22:04:53 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
2021-12-03 22:04:58 +0100 <boxscape> oats look for readInt
2021-12-03 22:04:59 +0100 <boxscape> in base
2021-12-03 22:05:23 +0100 <int-e> :t readInt (`elem` "01") digitToInt
2021-12-03 22:05:24 +0100 <lambdabot> error:
2021-12-03 22:05:24 +0100 <lambdabot> β€’ Couldn't match type β€˜Int’ with β€˜Bool’
2021-12-03 22:05:24 +0100 <lambdabot> Expected type: Char -> Bool
2021-12-03 22:05:29 +0100 <int-e> :t readInt 2 (`elem` "01") digitToInt
2021-12-03 22:05:31 +0100 <lambdabot> Num a => ReadS a
2021-12-03 22:06:16 +0100 <boxscape> > readInt 2 (`elem` "01") digitToInt
2021-12-03 22:06:18 +0100 <lambdabot> <[Char] -> [(Integer,[Char])]>
2021-12-03 22:06:31 +0100 <oats> oh good
2021-12-03 22:06:50 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-12-03 22:06:55 +0100 <boxscape> oats: if you happen to be using lens, there's also `binary`
2021-12-03 22:07:03 +0100 <oats> hmm, I do have microlens
2021-12-03 22:07:09 +0100 <janus> > readInt 2 (`elem` "01") digitToInt ""
2021-12-03 22:07:10 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-12-03 22:07:10 +0100 <lambdabot> []
2021-12-03 22:07:28 +0100 <boxscape> microlens doesn't have it :(
2021-12-03 22:07:49 +0100 <oats> probably for the better, I chose microlens for a reason :P
2021-12-03 22:08:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-03 22:08:21 +0100 <boxscape> I suppose it must earn the "micro" in its name somehow
2021-12-03 22:08:53 +0100vicfred(~vicfred@user/vicfred)
2021-12-03 22:09:03 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 22:09:08 +0100 <janus> shiraeeshi[m]: what is there left to discuss, the thread is already containing many points
2021-12-03 22:09:36 +0100 <oats> > readInt 2 (`elem` "01") digitToInt "110"
2021-12-03 22:09:38 +0100 <lambdabot> [(6,"")]
2021-12-03 22:10:00 +0100Itaru(~DaSH@ro2.flokinet.is) (See Ya Later!)
2021-12-03 22:10:32 +0100 <shiraeeshi[m]> janus: there was a comment that I wanted to ask your opinions about
2021-12-03 22:10:59 +0100 <shiraeeshi[m]> so people were discussing various effect systems, and then one guy posts this answer:
2021-12-03 22:11:19 +0100 <shiraeeshi[m]> > enobayram Β· 3d
2021-12-03 22:11:19 +0100 <shiraeeshi[m]> > We use mtl when we need that sort of thing, but we don't tend to approach problems thinking about how to use effects to solve them. I.e. we try to keep most of the logic in ADTs and abstractions with deliberate purposes before we inject it all into the monadic goop and that goop is often just IO
2021-12-03 22:11:21 +0100 <lambdabot> <hint>:1:35: error: parse error on input β€˜of’
2021-12-03 22:11:21 +0100 <lambdabot> error: Variable not in scope: enobayramerror:
2021-12-03 22:11:21 +0100 <lambdabot> Variable not in scope: (Β·) :: t0 -> t1 -> t
2021-12-03 22:11:28 +0100 <janus> > readInt 2 (`elem` "01") digitToInt "" (concat $ replicate 65 [1])
2021-12-03 22:11:30 +0100 <lambdabot> error:
2021-12-03 22:11:30 +0100 <lambdabot> β€’ Couldn't match expected type β€˜[a1] -> t’
2021-12-03 22:11:30 +0100 <lambdabot> with actual type β€˜[(a0, String)]’
2021-12-03 22:11:38 +0100 <janus> > readInt 2 (`elem` "01") digitToInt (concat $ replicate 65 [1])
2021-12-03 22:11:39 +0100 <lambdabot> error:
2021-12-03 22:11:39 +0100 <lambdabot> β€’ Could not deduce (Num Char) arising from the literal β€˜1’
2021-12-03 22:11:40 +0100 <lambdabot> from the context: Num a
2021-12-03 22:11:41 +0100 <janus> ah
2021-12-03 22:12:02 +0100 <janus> so tempting to try something in here without doing it in ghci first :O
2021-12-03 22:12:07 +0100 <janus> lazy friday
2021-12-03 22:12:51 +0100 <boxscape> janus: in case you don't know you can also private message lambdabot and yahb if you want to experiment in private without opening up ghci
2021-12-03 22:13:07 +0100 <janus> yeah...
2021-12-03 22:13:11 +0100 <oats> #haskell's only purpose is to provide ghci-as-a-service
2021-12-03 22:13:19 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-03 22:14:04 +0100 <shiraeeshi[m]> so what do you guys think about his comment? especially the "we don't tend to approach problems thinking about how to use effects to solve them" part.
2021-12-03 22:14:24 +0100 <janus> shiraeeshi[m]: it's a valid strategy no? thinking about the abstraction before the problem is solved could be premature
2021-12-03 22:14:53 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection)
2021-12-03 22:15:21 +0100 <shiraeeshi[m]> can we say that the architecture comes first, and the effect system comes second, or the opposite, or they come together and influence each other?
2021-12-03 22:15:26 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-12-03 22:15:52 +0100briandaed(~briandaed@185.234.208.208.r.toneticgroup.pl)
2021-12-03 22:15:56 +0100 <shiraeeshi[m]> can you create an architecture that is independent of the effect system used?
2021-12-03 22:18:50 +0100 <janus> > readInt 2 (`elem` "01") digitToInt (concat $ replicate 64 "1") :: [(Int,String)]
2021-12-03 22:18:51 +0100 <lambdabot> [(-1,"")]
2021-12-03 22:18:56 +0100 <janus> where does the -1 come from?
2021-12-03 22:19:17 +0100 <int-e> > 2^64 :: Int
2021-12-03 22:19:18 +0100 <lambdabot> 0
2021-12-03 22:19:21 +0100 <int-e> integer overflow
2021-12-03 22:19:35 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 252 seconds)
2021-12-03 22:19:49 +0100 <janus> but if signed, it should be a massive negative number then
2021-12-03 22:20:00 +0100 <int-e> No, you have 2^64 - 1
2021-12-03 22:20:07 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
2021-12-03 22:20:32 +0100 <tomsmeding> > sum . zipWith (*) (iterate (*2) 1) . map (fromEnum . (== '1')) $ replicate 64 '1'
2021-12-03 22:20:33 +0100 <lambdabot> -1
2021-12-03 22:20:35 +0100 <int-e> > 2^63 :: Int -- that's your massive negative number
2021-12-03 22:20:37 +0100 <lambdabot> -9223372036854775808
2021-12-03 22:21:52 +0100 <shiraeeshi[m]> can someone explain this part: "we try to keep most of the logic in ADTs and abstractions with deliberate purposes before we inject it all into the monadic goop and that goop is often just IO"
2021-12-03 22:21:55 +0100 <shiraeeshi[m]> what does it mean?
2021-12-03 22:22:06 +0100 <janus> aaah right because of how all bits set would be the number just below zero
2021-12-03 22:22:12 +0100 <shiraeeshi[m]> you create ADTs and functions in IO?
2021-12-03 22:22:20 +0100 <boxscape> shiraeeshi: I imagine the best person to answer that would be the person who wrote the comment
2021-12-03 22:22:47 +0100 <tomsmeding> janus: yes, in 2s complement, 'complement x' is the same as '-x - 1'
2021-12-03 22:23:09 +0100 <shiraeeshi[m]> I'm more interested in what other people have to say about this, not necessarily that person
2021-12-03 22:23:56 +0100 <tomsmeding> shiraeeshi[m]: sounds like a weird way to state the very general design principle in Haskell that most people, by and large, adhere to: functional (pure) core, imperative shell
2021-12-03 22:24:07 +0100 <tomsmeding> s/imperative/imperative (IO)/
2021-12-03 22:24:28 +0100 <int-e> "goop" is not standard slang
2021-12-03 22:24:31 +0100 <tomsmeding> there are lots of ways to diverge from that pattern, with effect systems, or mtl-like monad abstractions
2021-12-03 22:24:42 +0100 <tomsmeding> int-e: hence "weird way to state" :p
2021-12-03 22:24:50 +0100 <janus> it's funny how it actually works 'correctly' even though the readInt docs say it works only for unsigned
2021-12-03 22:24:55 +0100 <janus> i guess i shouldn't rely on this..
2021-12-03 22:25:14 +0100 <int-e> janus: well, readInt won't parts "-1"
2021-12-03 22:25:17 +0100 <int-e> ouch, parse.
2021-12-03 22:25:30 +0100 <int-e> that doesn't even sound the same
2021-12-03 22:25:36 +0100 <boxscape> that sentence was hard to parts until you corrected yourself
2021-12-03 22:26:06 +0100 <int-e> where do you file warranty claims for brains?
2021-12-03 22:26:07 +0100 <janus> why do the docs even say integral if the constraint is Num?
2021-12-03 22:26:21 +0100simendsjo(~user@84.211.91.241) (Ping timeout: 256 seconds)
2021-12-03 22:26:31 +0100 <int-e> janus: it won't parse "11.01" either
2021-12-03 22:27:02 +0100 <int-e> the docs describe the input... what readInt parses... not the output.
2021-12-03 22:27:07 +0100 <tomsmeding> and to parse simple unsigned integer-like values, you don't need anything else than (+) and (*), which Num is sufficient for
2021-12-03 22:27:29 +0100 <boxscape> also the docs say `integral`, not `Integral`, which is an important difference
2021-12-03 22:27:33 +0100 <shiraeeshi[m]> tomsmeding: if that was what he meant (functional core, imperative shell), then I think his answer is overly simplictic, like "hey, just code functions"
2021-12-03 22:27:49 +0100 <janus> boxscape: it says capital Integral: https://hackage.haskell.org/package/base-4.16.0.0/docs/Numeric.html#v:readInt
2021-12-03 22:28:01 +0100 <tomsmeding> shiraeeshi[m]: kind of given away by the use of the word 'goop' :p
2021-12-03 22:28:13 +0100 <boxscape> janus: whoops I need to check my glasses
2021-12-03 22:28:25 +0100 <shiraeeshi[m]> I thought that there is some deep meaning in there that I'm missing
2021-12-03 22:28:34 +0100 <shiraeeshi[m]> or something like that
2021-12-03 22:28:37 +0100 <boxscape> imo that's a (minor) documentation bug
2021-12-03 22:28:47 +0100 <tomsmeding> boxscape: it would've made much more sense with your reading :p
2021-12-03 22:29:24 +0100 <boxscape> (tbf I only read it in Hoogle where it's not a monospaced link)
2021-12-03 22:33:10 +0100Lycurgus(~juan@98.4.112.204)
2021-12-03 22:34:44 +0100briandaed(~briandaed@185.234.208.208.r.toneticgroup.pl) (Quit: Lost terminal)
2021-12-03 22:34:46 +0100 <janus> boxscape: https://gitlab.haskell.org/ghc/ghc/-/issues/20776
2021-12-03 22:35:00 +0100 <tomsmeding> πŸŽ‰
2021-12-03 22:35:02 +0100 <boxscape> nice
2021-12-03 22:35:03 +0100 <janus> my first ghc bug, let's see if it was a mistake :P
2021-12-03 22:36:03 +0100 <tomsmeding> my suggested fix would be boxscape's misreading, i.e. s/'Integral'/integral/
2021-12-03 22:36:25 +0100zer0bitz(~zer0bitz@dsl-hkibng32-54fbfb-173.dhcp.inet.fi)
2021-12-03 22:37:00 +0100 <int-e> "Reads an integral value without sign in an arbitrary base."
2021-12-03 22:37:11 +0100acidjnk_new(~acidjnk@p200300d0c7271e92d1e9828b51aa3006.dip0.t-ipconnect.de)
2021-12-03 22:37:29 +0100 <tomsmeding> better
2021-12-03 22:38:08 +0100 <int-e> ... See also `readSigned` and `readFloat`.
2021-12-03 22:38:13 +0100 <boxscape> I don't know if there are English language rules for this, but the show function is called showIntAtBase - so `at an arbitrary base`?
2021-12-03 22:38:34 +0100 <int-e> (we don't have an arbitrary base function for floats though)
2021-12-03 22:38:39 +0100jstolarek(~jstolarek@137.220.120.162) (Ping timeout: 252 seconds)
2021-12-03 22:39:05 +0100 <janus> int-e: why not? readInt works for floats, no?
2021-12-03 22:39:20 +0100 <janus> aah well ok, floats that don't have a decimal separator
2021-12-03 22:39:39 +0100 <int-e> janus: I'm still talking about inputs.
2021-12-03 22:39:54 +0100 <tomsmeding> boxscape: related, some common notation for existential packing/unpacking in PL theory: 'pack tau with βˆƒt. sigma' and 'open e1 as t with x in e2': quiz, what component of those expressions means what
2021-12-03 22:39:56 +0100 <janus> right, i see
2021-12-03 22:40:01 +0100 <tomsmeding> the prepositions are completely random
2021-12-03 22:40:17 +0100 <tomsmeding> correction, 'pack tau with e as βˆƒt. sigma'
2021-12-03 22:40:33 +0100 <int-e> There's no function or combination of functions in Numeric that allows you to parse "-1.23e10" as a base 5 number.
2021-12-03 22:40:34 +0100 <boxscape> heh, okay
2021-12-03 22:40:49 +0100 <int-e> /maybe/ that's sane, especially with the 'e' part.
2021-12-03 22:40:57 +0100 <tomsmeding> like, if you stare long enough there is some logic to be found, true
2021-12-03 22:41:12 +0100 <int-e> which btw would be confusing for hexadecimal notation (which is probably why that uses p instead)
2021-12-03 22:41:34 +0100 <boxscape> not just confusing but impossible to parse uniquely
2021-12-03 22:41:57 +0100 <boxscape> e.g. 1.2eee4
2021-12-03 22:41:59 +0100 <int-e> boxscape: yes, the confusion arises from ambiguity
2021-12-03 22:42:49 +0100 <int-e> (I guess it can be confusing in other ways too)
2021-12-03 22:43:47 +0100zer0bitz(~zer0bitz@dsl-hkibng32-54fbfb-173.dhcp.inet.fi) (Ping timeout: 252 seconds)
2021-12-03 22:44:06 +0100 <boxscape> I think having a readFloat function that works on non-scientific notation would be fine though
2021-12-03 22:44:22 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-03 22:46:06 +0100gdd(~gdd@129.199.146.230) (Read error: Connection reset by peer)
2021-12-03 22:47:03 +0100michalz(~michalz@185.246.204.43) (Remote host closed the connection)
2021-12-03 22:48:30 +0100 <janus> @package scientific can do it with its Read instance
2021-12-03 22:48:30 +0100 <lambdabot> https://hackage.haskell.org/package/scientific can do it with its Read instance
2021-12-03 22:49:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-03 22:49:51 +0100 <boxscape> right, but only for base 10
2021-12-03 22:50:41 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-12-03 22:51:12 +0100 <maerwald> is there a usable parser in base?
2021-12-03 22:51:56 +0100 <awpr> > let c = chr (ord 'e' - ord '9' + ord 'f') in "0x12fe" ++ c ++ "1e"
2021-12-03 22:51:57 +0100 <lambdabot> error:
2021-12-03 22:51:57 +0100 <lambdabot> β€’ Couldn't match expected type β€˜[Char]’ with actual type β€˜Char’
2021-12-03 22:51:57 +0100 <lambdabot> β€’ In the first argument of β€˜(++)’, namely β€˜c’
2021-12-03 22:52:07 +0100 <awpr> > let c = chr (ord 'e' - ord '9' + ord 'f') in "0x12fe" ++ [c] ++ "1e"
2021-12-03 22:52:08 +0100 <lambdabot> "0x12fe\146\&1e"
2021-12-03 22:53:10 +0100 <awpr> well that generalization doesn't give very nice syntax
2021-12-03 22:53:38 +0100Lycurgus(~juan@98.4.112.204) (Quit: Exeunt)
2021-12-03 22:54:23 +0100 <janus> maerwald: is it rhetorical or a genuine question ? :P
2021-12-03 22:55:03 +0100 <maerwald> lol
2021-12-03 22:55:15 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
2021-12-03 22:55:23 +0100deadmarshal_(~deadmarsh@68.235.38.176) (Read error: Connection reset by peer)
2021-12-03 22:55:42 +0100ec_(~ec@gateway/tor-sasl/ec)
2021-12-03 22:55:51 +0100 <maerwald> my code is too small to roll my own
2021-12-03 22:55:56 +0100 <maerwald> but it's annoying without one
2021-12-03 22:59:44 +0100vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2021-12-03 23:01:32 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-12-03 23:01:35 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 23:01:47 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 23:02:04 +0100alzgh(alzgh@user/alzgh) (Remote host closed the connection)
2021-12-03 23:02:04 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 23:02:23 +0100alzgh(alzgh@user/alzgh)
2021-12-03 23:02:35 +0100 <monochrom> I think of Text.ParserCombinators.ReadP/ReadPrec as usable parser in base.
2021-12-03 23:02:58 +0100 <maerwald> I SAID USABLE
2021-12-03 23:03:12 +0100maerwaldleaves in anger
2021-12-03 23:03:27 +0100 <monochrom> I have used it and I have found it usable for my purpose.
2021-12-03 23:04:29 +0100vysn(~vysn@user/vysn)
2021-12-03 23:06:09 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 23:06:27 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 23:07:23 +0100gdd(~gdd@129.199.146.230)
2021-12-03 23:07:45 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-12-03 23:10:02 +0100 <boxscape> maerwald: I know it's not base but parsec is shipped with ghc, if that matters to you
2021-12-03 23:11:47 +0100fizbin_(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-12-03 23:11:58 +0100 <boxscape> (which means you should be able to import Text.Parsec if you run ghci outside of cabal/stack)
2021-12-03 23:12:24 +0100geekosaur(~geekosaur@xmonad/geekosaur)
2021-12-03 23:13:05 +0100 <maerwald> I think I can only depend on base, not sure
2021-12-03 23:13:05 +0100bbear72(~bbear@2a01:e34:ec2b:d430:e0dd:e718:df68:1877)
2021-12-03 23:13:07 +0100bbear72(~bbear@2a01:e34:ec2b:d430:e0dd:e718:df68:1877) ()
2021-12-03 23:13:48 +0100bbear72(~bbear@2a01:e34:ec2b:d430:e0dd:e718:df68:1877)
2021-12-03 23:14:29 +0100 <bbear72> Hello!
2021-12-03 23:14:35 +0100 <boxscape> hey
2021-12-03 23:14:54 +0100 <bbear72> Who is doing advent of code out there :)
2021-12-03 23:15:31 +0100 <monochrom> I think many. I am not following it, but the /topic has the leaderboard.
2021-12-03 23:15:36 +0100lavaman(~lavaman@98.38.249.169)
2021-12-03 23:15:45 +0100 <bbear72> I wanted to share one of my solution and see if any of you would have suggestions for improvements.
2021-12-03 23:15:50 +0100 <bbear72> Right now finishing day3
2021-12-03 23:15:58 +0100 <boxscape> you might also be interested in #adventofcode-spoilers:libera.chat . Not haskell specific, but still lots of talk about haskell solutions.
2021-12-03 23:16:08 +0100 <monochrom> But note that many are afk at this time of the day, or this day of the week, something.
2021-12-03 23:17:02 +0100 <boxscape> bbear72: the channel I linked might be a good place for that
2021-12-03 23:17:41 +0100 <bbear72> Right, I will try this, thankyou
2021-12-03 23:18:49 +0100zincy_(~zincy@2a00:23c8:970c:4801:f9b9:ddeb:6361:fc1a) (Remote host closed the connection)
2021-12-03 23:18:54 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab)
2021-12-03 23:20:15 +0100 <EvanR> earlier I thought I improved the laziness of my day 3 part 2
2021-12-03 23:20:25 +0100 <EvanR> I increased the size of my file and wow... wrong
2021-12-03 23:20:30 +0100ec_(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2021-12-03 23:20:38 +0100 <EvanR> space goes down the hole
2021-12-03 23:22:18 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 23:22:35 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 23:23:59 +0100 <hpc> einstein predicted that :P
2021-12-03 23:24:11 +0100 <monochrom> hahaha
2021-12-03 23:25:14 +0100 <EvanR> a 20M file took 450M of memory according to heap profile
2021-12-03 23:25:15 +0100 <monochrom> Strictly speaking I think Einstein didn't foresee it, but Schwarzchild worked it out.
2021-12-03 23:25:29 +0100gehmehgeh(~user@user/gehmehgeh)
2021-12-03 23:25:46 +0100 <EvanR> I loaded all the data into an IntSet and it took 100k
2021-12-03 23:26:09 +0100 <EvanR> good job libraries crew!
2021-12-03 23:26:52 +0100namkeleser(~namkelese@101.175.102.188)
2021-12-03 23:28:50 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 23:29:07 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 23:29:12 +0100boxscape_(~boxscape_@p4ff0bb6c.dip0.t-ipconnect.de)
2021-12-03 23:29:48 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 23:30:05 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 23:31:56 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 23:32:03 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-12-03 23:32:13 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 23:32:38 +0100connrs(~connrs@user/connrs)
2021-12-03 23:34:23 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f5ec:bb0e:161e:528b) (Remote host closed the connection)
2021-12-03 23:34:38 +0100deadmarshal(~deadmarsh@95.38.116.22)
2021-12-03 23:34:42 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 268 seconds)
2021-12-03 23:36:22 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 23:36:28 +0100waleee(~waleee@h-82-196-111-63.NA.cust.bahnhof.se)
2021-12-03 23:36:40 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 23:37:44 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection)
2021-12-03 23:37:50 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-12-03 23:38:41 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:dcf1:6c47:4df:1ed1)
2021-12-03 23:39:09 +0100deadmarshal(~deadmarsh@95.38.116.22) (Ping timeout: 252 seconds)
2021-12-03 23:42:10 +0100jstolarek(~jstolarek@137.220.120.162)
2021-12-03 23:42:31 +0100 <sm> dsal: how's your haskell setup going ? May I ask if you have macos Monterrey, and which ghc version(s) you have working ?
2021-12-03 23:43:20 +0100 <dsal> I'm doing rosetta at the moment on my new machine.
2021-12-03 23:43:37 +0100 <dsal> My old one was just plain nix with stack(+nix) and LTS and everything worked fine.
2021-12-03 23:43:50 +0100 <dsal> Now the only thing that works is x86_64 nix.
2021-12-03 23:44:22 +0100 <dsal> ghcup with 9.2 has some problems with clang and the older one I was using from nix crashes with some kind of obscure OS X error.
2021-12-03 23:45:04 +0100 <maerwald> problems with clang?
2021-12-03 23:45:13 +0100 <dsal> I think it doesn't work with clang 13.
2021-12-03 23:45:21 +0100 <dsal> It's a part of the toolchain I don't know much about.
2021-12-03 23:45:25 +0100 <maerwald> you mean ghc
2021-12-03 23:45:39 +0100 <maerwald> you can install llvm12 via brew
2021-12-03 23:45:56 +0100 <dsal> Oh, yeah, I mean the ghc I got from ghcup.
2021-12-03 23:47:58 +0100x_kuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2021-12-03 23:48:21 +0100Codaraxis(~Codaraxis@user/codaraxis)
2021-12-03 23:49:10 +0100Midjak(~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Quit: This computer has gone to sleep)
2021-12-03 23:51:53 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 23:52:03 +0100 <dsal> I'd kind of like to get llvm 12 without brew. They don't have it in their download pages.
2021-12-03 23:52:11 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 23:54:09 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 23:54:27 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-03 23:55:32 +0100 <sm> dsal, thanks
2021-12-03 23:55:36 +0100 <xerox> I use Homebrew clang version 13.0.0
2021-12-03 23:55:39 +0100 <sm> do you have monterrey ?
2021-12-03 23:55:45 +0100 <xerox> big sur
2021-12-03 23:56:15 +0100gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-12-03 23:56:44 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-03 23:56:53 +0100 <dsal> I just got a new MacBook with all the newest things.
2021-12-03 23:58:49 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-03 23:59:07 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)