2024/03/10

2024-03-10 00:04:19 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
2024-03-10 00:04:47 +0100rainbyte(~rainbyte@186.22.19.215)
2024-03-10 00:07:41 +0100kimiamania(~7da15a40@user/kimiamania) (Quit: PegeLinux)
2024-03-10 00:08:11 +0100destituion(~destituio@2001:4644:c37:0:6086:64f4:a213:b80d) (Ping timeout: 256 seconds)
2024-03-10 00:09:02 +0100kimiamania(~7da15a40@user/kimiamania)
2024-03-10 00:22:30 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
2024-03-10 00:23:19 +0100emmanuelux(~emmanuelu@user/emmanuelux)
2024-03-10 00:25:19 +0100destituion(~destituio@2a02:2121:650:17b6:7013:905e:d9bb:b716)
2024-03-10 00:34:49 +0100acidjnk_new3(~acidjnk@p200300d6e737e7747555095b6f843b59.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2024-03-10 00:35:50 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
2024-03-10 00:37:45 +0100ski(~ski@ext-1-033.eduroam.chalmers.se) (Remote host closed the connection)
2024-03-10 00:37:52 +0100ski(~ski@ext-1-033.eduroam.chalmers.se)
2024-03-10 00:38:09 +0100agrosant(~agrosant@77.49.41.227.dsl.dyn.forthnet.gr)
2024-03-10 00:38:15 +0100emmanuelux(~emmanuelu@user/emmanuelux)
2024-03-10 00:46:44 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
2024-03-10 00:47:30 +0100emmanuelux(~emmanuelu@user/emmanuelux)
2024-03-10 00:48:02 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
2024-03-10 00:48:49 +0100emmanuelux(~emmanuelu@user/emmanuelux)
2024-03-10 00:50:03 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
2024-03-10 00:50:36 +0100emmanuelux(~emmanuelu@user/emmanuelux)
2024-03-10 00:57:09 +0100glguy(g@libera/staff/glguy)
2024-03-10 00:57:20 +0100target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2024-03-10 01:09:56 +0100ski(~ski@ext-1-033.eduroam.chalmers.se) (Ping timeout: 252 seconds)
2024-03-10 01:10:11 +0100ski(~ski@ext-1-033.eduroam.chalmers.se)
2024-03-10 01:15:18 +0100a51(a51@gateway/vpn/protonvpn/a51) (Quit: WeeChat 4.2.1)
2024-03-10 01:17:05 +0100rvalue(~rvalue@user/rvalue) (Ping timeout: 252 seconds)
2024-03-10 01:23:15 +0100rvalue(~rvalue@user/rvalue)
2024-03-10 01:25:35 +0100Square(~Square@user/square)
2024-03-10 01:25:43 +0100puke(~puke@user/puke)
2024-03-10 01:26:04 +0100puke(~puke@user/puke) (Max SendQ exceeded)
2024-03-10 01:27:11 +0100noumenon(~noumenon@113.51-175-156.customer.lyse.net)
2024-03-10 01:27:23 +0100puke(~puke@user/puke)
2024-03-10 01:46:23 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2024-03-10 01:50:36 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2024-03-10 01:51:37 +0100ania123(~ania123@94-43-231-47.dsl.utg.ge) (Quit: Client closed)
2024-03-10 01:53:16 +0100driib(~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat)
2024-03-10 01:54:27 +0100mulk(~mulk@p5b2dc01b.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2024-03-10 01:55:00 +0100mulk(~mulk@p5b1126ae.dip0.t-ipconnect.de)
2024-03-10 01:55:04 +0100driib(~driib@vmi931078.contaboserver.net)
2024-03-10 01:55:47 +0100oo_miguel(~Thunderbi@78-11-181-16.static.ip.netia.com.pl) (Ping timeout: 272 seconds)
2024-03-10 01:57:21 +0100TonyStone(~TonyStone@074-076-057-186.res.spectrum.com) (Remote host closed the connection)
2024-03-10 02:36:46 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds)
2024-03-10 02:44:03 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Quit: leaving)
2024-03-10 02:44:22 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-03-10 02:44:44 +0100TonyStone(~TonyStone@074-076-057-186.res.spectrum.com)
2024-03-10 03:01:11 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds)
2024-03-10 03:03:09 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2024-03-10 03:22:01 +0100ph88(~ph88@2a02:8109:9e26:c800:61b8:7e22:3ff5:acf1) (Remote host closed the connection)
2024-03-10 03:33:21 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-10 03:43:27 +0100otto_s(~user@p4ff27bc5.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2024-03-10 03:44:52 +0100otto_s(~user@p5b044d07.dip0.t-ipconnect.de)
2024-03-10 03:51:42 +0100bilegeek(~bilegeek@2600:1008:b015:7e93:e903:6f7f:5892:51df)
2024-03-10 03:55:29 +0100hughjfch1(~hughjfche@vmi556545.contaboserver.net) (Quit: WeeChat 3.7.1)
2024-03-10 03:56:46 +0100hughjfchen(~hughjfche@vmi556545.contaboserver.net)
2024-03-10 04:05:02 +0100op_4(~tslil@user/op-4/x-9116473) (Remote host closed the connection)
2024-03-10 04:05:35 +0100op_4(~tslil@user/op-4/x-9116473)
2024-03-10 04:12:04 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-03-10 04:12:25 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-10 04:21:40 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-03-10 04:29:50 +0100Inst(~Inst@120.244.192.27) (Remote host closed the connection)
2024-03-10 04:58:44 +0100td_(~td@i5387090F.versanet.de) (Ping timeout: 252 seconds)
2024-03-10 05:00:27 +0100td_(~td@i53870927.versanet.de)
2024-03-10 05:19:22 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 260 seconds)
2024-03-10 05:22:52 +0100aforemny(~aforemny@i59F516FE.versanet.de)
2024-03-10 05:22:59 +0100aforemny_(~aforemny@2001:9e8:6cc9:7200:b326:eda8:743b:1401) (Ping timeout: 261 seconds)
2024-03-10 05:24:02 +0100ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 260 seconds)
2024-03-10 05:30:35 +0100werneta(~werneta@024-205-076-158.res.spectrum.com)
2024-03-10 05:31:23 +0100werneta(~werneta@024-205-076-158.res.spectrum.com) (Client Quit)
2024-03-10 05:32:23 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 264 seconds)
2024-03-10 05:38:26 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2024-03-10 05:39:39 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2024-03-10 05:44:25 +0100dsrt^(~cd@c-98-242-74-66.hsd1.ga.comcast.net)
2024-03-10 05:52:04 +0100RedNifre(~RedNifre@dslb-002-206-121-021.002.206.pools.vodafone-ip.de) (Ping timeout: 255 seconds)
2024-03-10 06:04:40 +0100RedNifre(~RedNifre@dslb-002-205-008-195.002.205.pools.vodafone-ip.de)
2024-03-10 06:05:17 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2024-03-10 06:11:13 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 264 seconds)
2024-03-10 06:17:06 +0100werneta(~werneta@024-205-076-158.res.spectrum.com)
2024-03-10 06:30:03 +0100__monty__(~toonn@user/toonn)
2024-03-10 06:39:57 +0100ania123(~ania123@94-43-231-47.dsl.utg.ge)
2024-03-10 06:42:30 +0100hgolden(~hgolden@2603-8000-9d00-3ed1-2678-8497-aa5c-7fa9.res6.spectrum.com) (Remote host closed the connection)
2024-03-10 06:53:09 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-10 06:56:35 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit)
2024-03-10 07:01:30 +0100igemnace(~ian@user/igemnace)
2024-03-10 07:01:55 +0100bilegeek(~bilegeek@2600:1008:b015:7e93:e903:6f7f:5892:51df) (Quit: Leaving)
2024-03-10 07:04:54 +0100jargon(~jargon@174.sub-174-205-227.myvzw.com)
2024-03-10 07:12:06 +0100euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-03-10 07:18:28 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2024-03-10 07:19:01 +0100bontaq(~user@ool-45779c03.dyn.optonline.net) (Ping timeout: 264 seconds)
2024-03-10 07:22:37 +0100euphores(~SASL_euph@user/euphores)
2024-03-10 07:23:42 +0100jau(~user@2a04:4540:7215:f000:d03e:3f46:b2b2:f465)
2024-03-10 07:41:57 +0100hgolden(~hgolden@2603-8000-9d00-3ed1-2678-8497-aa5c-7fa9.res6.spectrum.com)
2024-03-10 07:43:35 +0100ski(~ski@ext-1-033.eduroam.chalmers.se) (Remote host closed the connection)
2024-03-10 07:47:28 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-03-10 07:48:35 +0100ski(~ski@ext-1-033.eduroam.chalmers.se)
2024-03-10 07:54:12 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-03-10 07:55:42 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 260 seconds)
2024-03-10 07:56:38 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-03-10 08:00:07 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com) (Quit: The Lounge - https://thelounge.chat)
2024-03-10 08:01:15 +0100sam113102(~sam@modemcable043.190-201-24.mc.videotron.ca)
2024-03-10 08:02:13 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com)
2024-03-10 08:03:15 +0100Inst(~Inst@120.244.192.27)
2024-03-10 08:03:22 +0100 <Inst> I just discovered that Java is the most amazing language ever created
2024-03-10 08:03:27 +0100sam113101(~sam@modemcable146.137-200-24.mc.videotron.ca) (Ping timeout: 255 seconds)
2024-03-10 08:03:29 +0100sam113102sam113101
2024-03-10 08:03:54 +0100 <Inst> especially when it comes to PLT
2024-03-10 08:06:15 +0100 <probie> What ground-breaking features of Java have allowed you to come that conclusion?
2024-03-10 08:08:16 +0100 <Inst> absurd verbosity, deliberately user-hostile type system, the absence of all basic amenities necessary for modern programming
2024-03-10 08:08:20 +0100 <Inst> I didn't say it was good, just amazing
2024-03-10 08:08:26 +0100 <Inst> It makes every other language look good by comparison
2024-03-10 08:09:11 +0100 <Inst> It's like a committee got together to design the most ugly and inelegant language possible and, god forbid, actually succeeded
2024-03-10 08:09:14 +0100 <Inst> It's a masterpiece
2024-03-10 08:09:59 +0100 <Inst> https://cdn.discordapp.com/attachments/244230771232079873/1216281049718460426/image.png?ex=65ffd0f…
2024-03-10 08:10:19 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-10 08:10:26 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-03-10 08:11:02 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-10 08:14:11 +0100 <probie> If you want an ugly language that was actually designed by committee, look at Ada
2024-03-10 08:14:40 +0100versatile_(~versatile@176.254.244.83) (Ping timeout: 246 seconds)
2024-03-10 08:14:59 +0100m1dnight(~christoph@82.146.125.185) (Ping timeout: 264 seconds)
2024-03-10 08:15:47 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 272 seconds)
2024-03-10 08:17:37 +0100 <Inst> Shouldn't you consider Ada to have redeeming factors?
2024-03-10 08:19:56 +0100 <probie> I love Ada. I wish that more languages (including Haskell) would have its numeric types. But it is ugly and verbose
2024-03-10 08:20:35 +0100 <Inst> Maybe I should get more into Java, but Java feels, at this point, to be the language that everyone should learn in and be forced to program in if only to learn how to stop complaining about other programming languages.
2024-03-10 08:20:38 +0100 <Inst> Nothing can be this bad.
2024-03-10 08:20:47 +0100misterfish(~misterfis@84.53.85.146)
2024-03-10 08:21:16 +0100 <mauke> a mediocre language for mediocre programmers to consistently churn out mediocre code
2024-03-10 08:21:25 +0100 <probie> There are worse languages than Java, it's just that none of them survive very long (apart from PHP)
2024-03-10 08:21:42 +0100 <probie> mauke: But there's a superior mediocre language for that; it's called golang
2024-03-10 08:22:50 +0100 <Inst> I can't hate Java programmers
2024-03-10 08:22:53 +0100 <Inst> they have to program in Java every day
2024-03-10 08:23:02 +0100 <Inst> that takes strength of spirit that requires respect
2024-03-10 08:23:29 +0100 <Inst> i'm looking at Ada code samples, and while it's not pretty, it's still better than Java
2024-03-10 08:25:28 +0100 <haskellbridge> <s​m> Java has been productive. A lot of very effective software is written in it
2024-03-10 08:26:15 +0100 <haskellbridge> <s​m> I think it has in common with Haskell that it's one of those languages where you can keep building bigger apps and it still works
2024-03-10 08:26:52 +0100 <mauke> https://blog.plover.com/prog/Java.html
2024-03-10 08:26:55 +0100 <probie> A lot of very effective software is written in COBOL
2024-03-10 08:26:56 +0100 <haskellbridge> <s​m> scales pretty well, ie
2024-03-10 08:27:00 +0100 <Inst> but for the first time, I finally understand why people complain about Haskell idiomatically containing type signatures
2024-03-10 08:28:46 +0100 <Inst> I mean you can say it's a form of commenting, a favor from a developer to a developer, you can say it's a key element of program design, but it's faintly reminiscent of Java's boilerplate and now their disdain is understandable
2024-03-10 08:29:35 +0100airscape(~airscape@176.254.244.83)
2024-03-10 08:31:35 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-10 08:32:50 +0100bliminse(~bliminse@user/bliminse) (Quit: leaving)
2024-03-10 08:33:07 +0100bilegeek(~bilegeek@2600:1008:b087:8918:6578:b80:42d0:8b0e)
2024-03-10 08:42:37 +0100bliminse(~bliminse@user/bliminse)
2024-03-10 08:43:11 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 260 seconds)
2024-03-10 08:43:28 +0100 <Inst> Java is neither a good nor a bad language. It is a mediocre language, and there is no struggle. In Haskell or even in Perl you are always worrying about whether you are doing something in the cleanest and the best way. In Java, you can forget about doing it in the cleanest or the best way, because that is impossible. Whatever you do, however hard you try, the code will come out mediocre, verbose, redundant, and bloated, and the only thing you can do is relax
2024-03-10 08:43:29 +0100 <Inst> and keep turning the crank until the necessary amount of code has come out of the spout. If it takes ten times as much code as it would to program in Haskell, that is all right, because the IDE will generate half of it for you, and you are still being paid to write the other half.
2024-03-10 08:43:54 +0100 <Inst> thanks mauke
2024-03-10 08:51:30 +0100werneta(~werneta@024-205-076-158.res.spectrum.com) (Quit: leaving)
2024-03-10 08:54:00 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-10 08:56:31 +0100 <probie> Also, you can turn writing Java into a game like "how many new classes can I create" and your coworkers can't tell, because it's Java and maybe that was actually the right solution
2024-03-10 08:58:05 +0100 <probie> Or another fun game, "no ifs allowed, except in a factory"
2024-03-10 09:04:46 +0100pwntips(~pwntips@user/pwntips)
2024-03-10 09:06:40 +0100pwntips(~pwntips@user/pwntips) (Remote host closed the connection)
2024-03-10 09:07:05 +0100pwntips(~pwntips@user/pwntips)
2024-03-10 09:11:02 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2024-03-10 09:11:29 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-10 09:16:35 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 272 seconds)
2024-03-10 09:19:17 +0100econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2024-03-10 09:30:25 +0100 <haskellbridge> <J​ade> Inst: I think it's possible to write good java code, but the language actively works against you while doing so
2024-03-10 09:32:02 +0100 <haskellbridge> <J​ade> probie: A rather simple feature I'm working on at the moment already has ~10 new classes. If I had written this in haskell it would be 1-2 modules with maybe 1/10th the code
2024-03-10 09:35:39 +0100acidjnk_new3(~acidjnk@p200300d6e737e7747555095b6f843b59.dip0.t-ipconnect.de)
2024-03-10 09:36:20 +0100target_i(~target_i@user/target-i/x-6023099)
2024-03-10 09:36:41 +0100oo_miguel(~Thunderbi@78-11-181-16.static.ip.netia.com.pl)
2024-03-10 09:39:08 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2024-03-10 09:41:02 +0100ania123(~ania123@94-43-231-47.dsl.utg.ge) (Quit: Client closed)
2024-03-10 09:41:13 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-03-10 09:42:55 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
2024-03-10 09:44:31 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-10 09:44:38 +0100micro(~micro@user/micro) (Remote host closed the connection)
2024-03-10 09:47:07 +0100micro(~micro@user/micro)
2024-03-10 09:48:04 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-10 09:48:59 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 260 seconds)
2024-03-10 09:51:25 +0100ski(~ski@ext-1-033.eduroam.chalmers.se) (Ping timeout: 264 seconds)
2024-03-10 09:54:21 +0100gmg(~user@user/gehmehgeh)
2024-03-10 09:54:55 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2024-03-10 09:57:51 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 268 seconds)
2024-03-10 09:57:52 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-10 09:58:33 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-03-10 10:04:02 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-10 10:09:29 +0100ft(~ft@p508db2e6.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2024-03-10 10:11:26 +0100ft(~ft@p3e9bce6e.dip0.t-ipconnect.de)
2024-03-10 10:20:40 +0100bilegeek(~bilegeek@2600:1008:b087:8918:6578:b80:42d0:8b0e) (Quit: Leaving)
2024-03-10 10:35:42 +0100tzh(~tzh@c-73-164-206-160.hsd1.or.comcast.net) (Quit: zzz)
2024-03-10 10:36:20 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2024-03-10 10:37:38 +0100gmg(~user@user/gehmehgeh) (Ping timeout: 260 seconds)
2024-03-10 10:38:23 +0100gmg(~user@user/gehmehgeh)
2024-03-10 10:42:17 +0100gehmehgeh(~user@user/gehmehgeh)
2024-03-10 10:44:04 +0100Guest28(~Guest28@103.165.84.206)
2024-03-10 10:45:06 +0100gmg(~user@user/gehmehgeh) (Ping timeout: 260 seconds)
2024-03-10 10:47:24 +0100Guest28(~Guest28@103.165.84.206) (Client Quit)
2024-03-10 10:56:40 +0100Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2024-03-10 10:58:01 +0100qqq(~qqq@92.43.167.61)
2024-03-10 10:58:17 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer)
2024-03-10 10:58:57 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2024-03-10 10:59:13 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 264 seconds)
2024-03-10 11:01:11 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 252 seconds)
2024-03-10 11:02:20 +0100johnw_(~johnw@69.62.242.138)
2024-03-10 11:02:24 +0100fmd(~fmd@2a02:8429:4b52:f901:795a:84d0:5b8d:4db9)
2024-03-10 11:02:53 +0100anpad(~pandeyan@user/anpad) (Ping timeout: 240 seconds)
2024-03-10 11:03:46 +0100anpad(~pandeyan@user/anpad)
2024-03-10 11:04:48 +0100johnw(~johnw@69.62.242.138) (Ping timeout: 255 seconds)
2024-03-10 11:08:48 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2024-03-10 11:17:56 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
2024-03-10 11:18:39 +0100sefidel(~sefidel@user/sefidel) (Remote host closed the connection)
2024-03-10 11:19:31 +0100sefidel(~sefidel@user/sefidel)
2024-03-10 11:20:18 +0100JimL(~quassel@89.162.16.26)
2024-03-10 11:23:35 +0100pavonia_(~user@user/siracusa)
2024-03-10 11:25:30 +0100pavonia(~user@user/siracusa) (Ping timeout: 255 seconds)
2024-03-10 11:27:32 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-10 11:28:14 +0100pavonia_(~user@user/siracusa) (Ping timeout: 256 seconds)
2024-03-10 11:30:30 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
2024-03-10 11:31:41 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 240 seconds)
2024-03-10 11:32:18 +0100fmd(~fmd@2a02:8429:4b52:f901:795a:84d0:5b8d:4db9) (Quit: WeeChat 4.1.1)
2024-03-10 11:36:06 +0100pavonia(~user@user/siracusa)
2024-03-10 11:43:19 +0100michalz(~michalz@185.246.207.200)
2024-03-10 11:43:21 +0100gehmehgehgmg
2024-03-10 11:46:55 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-03-10 12:00:57 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-10 12:01:26 +0100mrmr155334(~mrmr@user/mrmr) (Quit: Bye, See ya later!)
2024-03-10 12:02:46 +0100igemnace(~ian@user/igemnace) (Read error: Connection reset by peer)
2024-03-10 12:05:48 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 268 seconds)
2024-03-10 12:06:36 +0100mrmr155334(~mrmr@user/mrmr)
2024-03-10 12:14:42 +0100gmg(~user@user/gehmehgeh) (Ping timeout: 260 seconds)
2024-03-10 12:15:53 +0100gmg(~user@user/gehmehgeh)
2024-03-10 12:21:03 +0100igemnace(~ian@user/igemnace)
2024-03-10 12:35:43 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-10 12:40:10 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 264 seconds)
2024-03-10 12:53:57 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-10 12:54:35 +0100agrosant(~agrosant@77.49.41.227.dsl.dyn.forthnet.gr) (Ping timeout: 264 seconds)
2024-03-10 12:55:10 +0100michalz(~michalz@185.246.207.200) (Quit: ZNC 1.8.2 - https://znc.in)
2024-03-10 12:59:28 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 256 seconds)
2024-03-10 13:05:30 +0100Domitar(~Domitar@193.198.16.218)
2024-03-10 13:08:07 +0100Domitar(~Domitar@193.198.16.218) (Remote host closed the connection)
2024-03-10 13:11:01 +0100__monty__(~toonn@user/toonn)
2024-03-10 13:11:45 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-03-10 13:15:28 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
2024-03-10 13:20:45 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-10 13:28:21 +0100misterfish(~misterfis@84.53.85.146) (Ping timeout: 255 seconds)
2024-03-10 13:32:17 +0100Sciencentistguy9(~sciencent@hacksoc/ordinary-member)
2024-03-10 13:34:13 +0100Sciencentistguy(~sciencent@hacksoc/ordinary-member) (Ping timeout: 255 seconds)
2024-03-10 13:35:06 +0100Sciencentistguy(~sciencent@hacksoc/ordinary-member)
2024-03-10 13:36:19 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-03-10 13:36:55 +0100ski(~ski@ext-1-033.eduroam.chalmers.se)
2024-03-10 13:37:22 +0100Sciencentistguy9(~sciencent@hacksoc/ordinary-member) (Ping timeout: 255 seconds)
2024-03-10 13:39:01 +0100agrosant(~agrosant@77.49.35.76.dsl.dyn.forthnet.gr)
2024-03-10 13:39:35 +0100 <cheater> if i'm writing a piece of code, is there a hack to let it know at runtime what file it was written in?
2024-03-10 13:39:55 +0100 <cheater> like "this code was in Foo.hs"
2024-03-10 13:41:06 +0100 <mauke> could be done with template haskell
2024-03-10 13:41:22 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2024-03-10 13:42:35 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 272 seconds)
2024-03-10 13:47:20 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-03-10 13:48:45 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2024-03-10 13:50:08 +0100 <tomsmeding> cheater: https://hackage.haskell.org/package/template-haskell-2.18.0.0/docs/Language-Haskell-TH.html#v:loca…
2024-03-10 13:52:06 +0100 <tomsmeding> % :set -XTemplateHaskell
2024-03-10 13:52:06 +0100 <yahb2> <no output>
2024-03-10 13:52:16 +0100 <tomsmeding> % import Language.Haskell.TH.Syntax
2024-03-10 13:52:16 +0100 <yahb2> <no output>
2024-03-10 13:52:21 +0100 <tomsmeding> % deriving instance Lift Loc
2024-03-10 13:52:21 +0100 <yahb2> <no output>
2024-03-10 13:52:29 +0100 <tomsmeding> % $(lift =<< location)
2024-03-10 13:52:29 +0100 <yahb2> Loc {loc_filename = "<interactive>", loc_package = "interactive", loc_module = "Ghci26", loc_start = (289,2), loc_end = (289,21)}
2024-03-10 13:52:51 +0100 <tomsmeding> or without the orphan Lift instance:
2024-03-10 13:53:04 +0100 <tomsmeding> % $(LitE . StringL . loc_filename <$> location)
2024-03-10 13:53:04 +0100 <yahb2> "<interactive>"
2024-03-10 13:53:34 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 255 seconds)
2024-03-10 13:55:08 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2024-03-10 13:57:00 +0100ski(~ski@ext-1-033.eduroam.chalmers.se) (Ping timeout: 260 seconds)
2024-03-10 14:00:25 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-10 14:05:46 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 256 seconds)
2024-03-10 14:07:13 +0100ski(~ski@ext-1-033.eduroam.chalmers.se)
2024-03-10 14:07:35 +0100Joao[3](~Joao003@190.108.99.67)
2024-03-10 14:14:59 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 264 seconds)
2024-03-10 14:20:10 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-10 14:22:06 +0100YoungFrog(~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in)
2024-03-10 14:22:44 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2024-03-10 14:23:15 +0100 <cheater> ty :)
2024-03-10 14:25:00 +0100a51(a51@gateway/vpn/protonvpn/a51)
2024-03-10 14:25:01 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 272 seconds)
2024-03-10 14:25:31 +0100YoungFrog(~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be)
2024-03-10 14:38:42 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-10 14:47:07 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-03-10 14:47:20 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-10 14:48:49 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-03-10 14:50:59 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-10 14:55:42 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 268 seconds)
2024-03-10 14:56:34 +0100misterfish(~misterfis@84.53.85.146)
2024-03-10 14:59:13 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
2024-03-10 15:00:06 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-10 15:10:38 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-10 15:15:00 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 255 seconds)
2024-03-10 15:16:23 +0100misterfish(~misterfis@84.53.85.146) (Ping timeout: 252 seconds)
2024-03-10 15:22:20 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-10 15:23:38 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-03-10 15:26:51 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 260 seconds)
2024-03-10 15:33:24 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2024-03-10 15:33:39 +0100CiaoSen(~Jura@2a05:5800:29c:9e00:e6b9:7aff:fe80:3d03)
2024-03-10 15:40:25 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2024-03-10 15:45:47 +0100Arsen(arsen@gentoo/developer/managarm.dev.Arsen) (Quit: Quit.)
2024-03-10 15:46:09 +0100Arsen(arsen@gentoo/developer/managarm.dev.Arsen)
2024-03-10 15:46:19 +0100Arsen(arsen@gentoo/developer/managarm.dev.Arsen) (Client Quit)
2024-03-10 15:46:55 +0100Silver_X(~Silver_X@182.178.157.2)
2024-03-10 15:47:01 +0100Arsen(arsen@gentoo/developer/managarm.dev.Arsen)
2024-03-10 15:54:53 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-10 15:55:10 +0100Silver_X(~Silver_X@182.178.157.2) (Quit: Leaving)
2024-03-10 15:57:42 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2024-03-10 15:59:50 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 268 seconds)
2024-03-10 16:02:41 +0100noumenon(~noumenon@113.51-175-156.customer.lyse.net) (Quit: Leaving)
2024-03-10 16:02:55 +0100son0p(~ff@152.203.102.157) (Remote host closed the connection)
2024-03-10 16:08:43 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-10 16:10:38 +0100a51(a51@gateway/vpn/protonvpn/a51) (Quit: WeeChat 4.2.1)
2024-03-10 16:12:53 +0100igemnace(~ian@user/igemnace) (Quit: WeeChat 4.2.1)
2024-03-10 16:12:57 +0100rscastilho2024(~rscastilh@179.221.142.47)
2024-03-10 16:14:28 +0100a51(a51@gateway/vpn/protonvpn/a51)
2024-03-10 16:15:08 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 260 seconds)
2024-03-10 16:28:18 +0100Juani7(~Juani7@static.203.52.itcsa.net)
2024-03-10 16:28:39 +0100Juani7(~Juani7@static.203.52.itcsa.net) ()
2024-03-10 16:33:53 +0100 <haskellbridge> <i​rregularsphere> probie: "how many classes can I create" reminds me of "AbstractFactoryProxyDecoratorSingletonBuilder"
2024-03-10 16:34:53 +0100son0p(~ff@152.203.102.157)
2024-03-10 16:46:47 +0100Square(~Square@user/square) (Ping timeout: 264 seconds)
2024-03-10 16:47:45 +0100 <haskellbridge> <e​ldritchcookie> hello, for the people that use effectfull how important do you think being able to not need IOE is ?
2024-03-10 16:48:12 +0100 <haskellbridge> <e​ldritchcookie> basically i have a katip-effectful package which i forgot to upload to hackage
2024-03-10 16:48:46 +0100 <haskellbridge> <e​ldritchcookie> and i am considering rewriting it such that you do not need IOE to call logging functions
2024-03-10 16:54:14 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 260 seconds)
2024-03-10 16:54:42 +0100stiell_(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 260 seconds)
2024-03-10 16:57:48 +0100tabemann(~tabemann@2600:1700:7990:24e0:bade:358a:4ab3:923a) (Remote host closed the connection)
2024-03-10 16:58:03 +0100tabemann(~tabemann@2600:1700:7990:24e0:3862:7657:cc38:1f12)
2024-03-10 17:02:05 +0100stiell_(~stiell@gateway/tor-sasl/stiell)
2024-03-10 17:02:23 +0100 <glguy> What's IOE?
2024-03-10 17:07:47 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 272 seconds)
2024-03-10 17:19:46 +0100 <glguy> cheater: depending on what you're doing they'd also the HasCallstack type class
2024-03-10 17:20:12 +0100 <cheater> cool
2024-03-10 17:20:15 +0100 <cheater> ty
2024-03-10 17:20:40 +0100CiaoSen(~Jura@2a05:5800:29c:9e00:e6b9:7aff:fe80:3d03) (Ping timeout: 246 seconds)
2024-03-10 17:21:26 +0100rscastilho2024(~rscastilh@179.221.142.47) (Remote host closed the connection)
2024-03-10 17:24:12 +0100CiaoSen(~Jura@5.83.182.171)
2024-03-10 17:28:10 +0100rscastilho2024(~rscastilh@179.221.142.47)
2024-03-10 17:33:44 +0100CiaoSen(~Jura@5.83.182.171) (Ping timeout: 256 seconds)
2024-03-10 17:34:11 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2024-03-10 17:35:27 +0100CiaoSen(~Jura@2a05:5800:2c2:1700:e6b9:7aff:fe80:3d03)
2024-03-10 17:36:31 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2024-03-10 17:42:49 +0100Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Ping timeout: 268 seconds)
2024-03-10 17:44:11 +0100YoungFrog(~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in)
2024-03-10 17:44:11 +0100byte(~byte@user/byte)
2024-03-10 17:57:24 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2024-03-10 17:57:42 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2024-03-10 17:58:06 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
2024-03-10 18:00:11 +0100emmanuelux(~emmanuelu@user/emmanuelux)
2024-03-10 18:11:50 +0100rscastilho2024(~rscastilh@179.221.142.47) (Ping timeout: 252 seconds)
2024-03-10 18:16:41 +0100rscastilho2024(~rscastilh@179.221.142.47)
2024-03-10 18:20:56 +0100tzh(~tzh@c-73-164-206-160.hsd1.or.comcast.net)
2024-03-10 18:25:47 +0100rvalue(~rvalue@user/rvalue) (Ping timeout: 264 seconds)
2024-03-10 18:27:39 +0100Lycurgus(~georg@user/Lycurgus)
2024-03-10 18:31:01 +0100zetef(~quassel@5.2.182.98)
2024-03-10 18:34:35 +0100rvalue(~rvalue@user/rvalue)
2024-03-10 18:39:15 +0100Silver_X(~Silver_X@182.178.157.2)
2024-03-10 18:39:23 +0100Silver_X(~Silver_X@182.178.157.2) (Client Quit)
2024-03-10 18:40:55 +0100 <haskellbridge> <e​ldritchcookie> glguy: IOE is the Effect type used in Effectful to provide a MonadIO instance
2024-03-10 18:41:23 +0100zetef(~quassel@5.2.182.98) (Remote host closed the connection)
2024-03-10 18:41:32 +0100rscastilho2024(~rscastilh@179.221.142.47) (Ping timeout: 252 seconds)
2024-03-10 18:42:42 +0100 <glguy> Oh. If you're going to go through the hassle of using an effect library it seems like it'd be nice to have the effects tracking at the higher level of "I'm logging" than "I'm doing arbitrary IO"
2024-03-10 18:44:09 +0100noumenon(~noumenon@113.51-175-156.customer.lyse.net)
2024-03-10 18:48:07 +0100 <haskellbridge> <e​ldritchcookie> i had the same idea
2024-03-10 18:48:21 +0100 <c_wraith> in fact, the documentation says so too
2024-03-10 18:48:30 +0100 <c_wraith> Note: it is not recommended to use this effect in application code as it is too liberal. Ideally, this is only used in handlers of more fine-grained effects.
2024-03-10 18:49:08 +0100 <haskellbridge> <e​ldritchcookie> good to know i haven't wasted the last hour
2024-03-10 18:50:38 +0100rscastilho2024(~rscastilh@179.221.142.47)
2024-03-10 18:51:19 +0100 <haskellbridge> <e​ldritchcookie> anyways i met a problem, if i have IOE in the list of effects then i can use liftIO, but GHC is not accepting (MyEffect ': es) as containing IOE even though in the constraints i have es contains IOE
2024-03-10 18:52:58 +0100 <glguy> Might make a small reproduction and toss it on the paste bin
2024-03-10 18:53:02 +0100 <EvanR> liberals are ruining our effect libraries now too
2024-03-10 18:53:24 +0100 <c_wraith> Just in general, GHC doesn't know that one constraint implies another.
2024-03-10 18:54:44 +0100gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2024-03-10 18:54:51 +0100 <geekosaur> don't most effects libraries offer plugins for things like this?
2024-03-10 18:55:38 +0100 <c_wraith> there is an effectful-plugin package
2024-03-10 18:56:38 +0100 <c_wraith> It isn't documented as handling that case, though its documentation is pretty minimal.
2024-03-10 19:00:16 +0100gentauro(~gentauro@user/gentauro)
2024-03-10 19:00:26 +0100ski(~ski@ext-1-033.eduroam.chalmers.se) (Ping timeout: 256 seconds)
2024-03-10 19:02:02 +0100ski(~ski@ext-1-033.eduroam.chalmers.se)
2024-03-10 19:03:06 +0100econo_(uid147250@id-147250.tinside.irccloud.com)
2024-03-10 19:04:19 +0100CiaoSen(~Jura@2a05:5800:2c2:1700:e6b9:7aff:fe80:3d03) (Ping timeout: 272 seconds)
2024-03-10 19:05:46 +0100CiaoSen(~Jura@2a05:5800:28f:8800:e6b9:7aff:fe80:3d03)
2024-03-10 19:08:52 +0100 <haskellbridge> <e​ldritchcookie> hmm this just seems like it would be solvable with a quantified constraint
2024-03-10 19:14:02 +0100rscastilho2024(~rscastilh@179.221.142.47) (Ping timeout: 256 seconds)
2024-03-10 19:17:25 +0100rscastilho2024(~rscastilh@179.221.142.47)
2024-03-10 19:21:27 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2024-03-10 19:25:22 +0100Vajb(~Vajb@n70t65z9ztei3blo55b-1.v6.elisa-mobile.fi) (Read error: Connection reset by peer)
2024-03-10 19:26:14 +0100Vajb(~Vajb@mobile-access-567351-201.dhcp.inet.fi)
2024-03-10 19:33:41 +0100rscastilho2024(~rscastilh@179.221.142.47) (Ping timeout: 240 seconds)
2024-03-10 19:34:30 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-03-10 19:39:53 +0100rscastilho2024(~rscastilh@179.221.142.47)
2024-03-10 19:48:58 +0100bontaq(~user@ool-45779c03.dyn.optonline.net)
2024-03-10 19:52:47 +0100euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-03-10 19:55:21 +0100Vajb(~Vajb@mobile-access-567351-201.dhcp.inet.fi) (Ping timeout: 255 seconds)
2024-03-10 19:55:44 +0100Vajb(~Vajb@2001:999:680:5044:15b1:c43e:d1c0:210f)
2024-03-10 19:59:30 +0100srz(~srz@181.228.49.93)
2024-03-10 20:01:09 +0100euphores(~SASL_euph@user/euphores)
2024-03-10 20:09:16 +0100rscastilho2024(~rscastilh@179.221.142.47) (Ping timeout: 268 seconds)
2024-03-10 20:12:55 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2024-03-10 20:13:39 +0100rscastilho2024(rscastilho@179.221.142.47)
2024-03-10 20:21:10 +0100Sciencentistguy6(~sciencent@hacksoc/ordinary-member)
2024-03-10 20:21:37 +0100ania123(~ania123@146.255.226.194)
2024-03-10 20:23:16 +0100Sciencentistguy(~sciencent@hacksoc/ordinary-member) (Ping timeout: 255 seconds)
2024-03-10 20:23:16 +0100Sciencentistguy6Sciencentistguy
2024-03-10 20:25:07 +0100gabriel_sevecek(~gabriel@188-167-229-200.dynamic.chello.sk) (Quit: WeeChat 4.2.1)
2024-03-10 20:26:33 +0100gabriel_sevecek(~gabriel@188-167-229-200.dynamic.chello.sk)
2024-03-10 20:28:53 +0100Sgeo(~Sgeo@user/sgeo)
2024-03-10 20:32:02 +0100srz(~srz@181.228.49.93) (Remote host closed the connection)
2024-03-10 20:32:15 +0100Eoco(~ian@128.101.131.218) (Ping timeout: 255 seconds)
2024-03-10 20:33:22 +0100srz(~srz@181.228.49.93)
2024-03-10 20:38:05 +0100CiaoSen(~Jura@2a05:5800:28f:8800:e6b9:7aff:fe80:3d03) (Ping timeout: 240 seconds)
2024-03-10 20:39:33 +0100qqq(~qqq@92.43.167.61) (Read error: Connection reset by peer)
2024-03-10 20:41:14 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-10 20:43:46 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2024-03-10 20:44:34 +0100qqq(~qqq@92.43.167.61)
2024-03-10 20:48:10 +0100srz_(~srz@181.228.49.93)
2024-03-10 20:49:28 +0100srz(~srz@181.228.49.93) (Remote host closed the connection)
2024-03-10 20:50:51 +0100 <haskellbridge> <e​ldritchcookie> https://play.haskell.org/saved/6ySkyMjH why does it error on Katip and not Effectful?
2024-03-10 20:52:42 +0100 <geekosaur> dunno what packages tomsmeding exposed to the playground
2024-03-10 20:53:09 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-03-10 20:55:33 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-10 20:56:45 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-03-10 21:06:38 +0100Eoco(~ian@128.101.131.218)
2024-03-10 21:06:56 +0100qqq(~qqq@92.43.167.61) (Read error: Connection reset by peer)
2024-03-10 21:07:46 +0100 <nullie> https://github.com/haskell/play-haskell/blob/a30f6149ed523b0b26cbd89cae96afc304829e7f/play-haskell…
2024-03-10 21:11:50 +0100qqq(~qqq@92.43.167.61)
2024-03-10 21:16:30 +0100michalz(~michalz@185.246.207.205)
2024-03-10 21:16:48 +0100Eoco(~ian@128.101.131.218) (Ping timeout: 255 seconds)
2024-03-10 21:20:07 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
2024-03-10 21:20:20 +0100rscastilho2024(rscastilho@179.221.142.47) (Remote host closed the connection)
2024-03-10 21:27:15 +0100dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Remote host closed the connection)
2024-03-10 21:27:37 +0100dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2024-03-10 21:29:43 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-03-10 21:48:09 +0100m1dnight(~christoph@82.146.125.185)
2024-03-10 21:52:15 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds)
2024-03-10 21:55:15 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-10 21:57:28 +0100 <endojelly> So here's another lens question. I have a traversal over a two level Map. In my case that traversal is "ix name.traversed._2.expiring". You can see from that: First level is a map (indexed by name) whose children are maps (traversed), whose children are tuples. The traversal chooses the second part of the tuple (_2) and applies my own prism, "expiring".
2024-03-10 21:58:18 +0100 <endojelly> Now traverseOf will return a list where all of this matches, i.e. the leaf element is "expiring".
2024-03-10 21:59:26 +0100 <endojelly> But what I would like to have is a list of all elements on the second level, whether expiring or not, and when they are not expiring, it should be nothing.
2024-03-10 22:00:02 +0100 <endojelly> Furthermore, I would like to be able to set an element to Nothing in the traversal to remove it.
2024-03-10 22:01:07 +0100 <endojelly> It feels like I need something like "at", but instead of "at" applying to an index, I'd like "at" applying to... another prism?
2024-03-10 22:01:20 +0100 <ncf> i'm gonna need an example
2024-03-10 22:01:27 +0100 <endojelly> yeah, let me prepare a simpler one
2024-03-10 22:02:39 +0100Etabeta1(~Etabeta1@176.207.241.56)
2024-03-10 22:03:19 +0100 <ncf> superficially it sounds like this could have something to do with non'
2024-03-10 22:04:26 +0100 <c_wraith> or maybe this is like the first non-curiosity use case for my package :)
2024-03-10 22:08:30 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
2024-03-10 22:08:49 +0100 <endojelly> Okay, so, let's look at this:
2024-03-10 22:08:54 +0100 <endojelly> > let m = M.fromList [('a', 1), ('b', 2), ('c', 3), ('d', 4)] in traverseOf (traversed.filtered even) (return . (*2)) m
2024-03-10 22:08:56 +0100 <lambdabot> error:
2024-03-10 22:08:56 +0100 <lambdabot> • Ambiguous type variable ‘f0’ arising from a use of ‘show_M532113178426...
2024-03-10 22:08:56 +0100 <lambdabot> prevents the constraint ‘(Show
2024-03-10 22:09:10 +0100 <endojelly> > let m = M.fromList [('a', 1::Int), ('b', 2), ('c', 3), ('d', 4)] in traverseOf (traversed.filtered even) (return . (*2)) m
2024-03-10 22:09:11 +0100 <lambdabot> error:
2024-03-10 22:09:11 +0100 <lambdabot> • Ambiguous type variable ‘f0’ arising from a use of ‘show_M193502952598...
2024-03-10 22:09:11 +0100 <lambdabot> prevents the constraint ‘(Show
2024-03-10 22:09:21 +0100 <endojelly> hm, what's the issue? Works locally.
2024-03-10 22:10:03 +0100 <endojelly> > let m = M.fromList [('a', 1), ('b', 2), ('c', 3), ('d', 4)] in traverseOf (traversed.filtered even) (return . (*2) :: Int -> IO Int) m
2024-03-10 22:10:05 +0100 <lambdabot> <IO (Map Char Int)>
2024-03-10 22:10:19 +0100 <endojelly> > let m = M.fromList [('a', 1), ('b', 2), ('c', 3), ('d', 4)] in traverseOf (traversed.filtered even) (return . (*2) :: Int -> Identity Int) m
2024-03-10 22:10:20 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-03-10 22:10:20 +0100 <lambdabot> Identity (fromList [('a',1),('b',4),('c',3),('d',8)])
2024-03-10 22:10:25 +0100 <endojelly> makes sense. Sorry about that.
2024-03-10 22:10:44 +0100 <endojelly> Anyway, what you see, is that I've selected all map elements where the value is even, and applied *2 to them.
2024-03-10 22:11:13 +0100 <endojelly> Notably, the monadic action only got applied to elements which matched "filtered even"
2024-03-10 22:13:02 +0100 <endojelly> (hang on, preparing something else)
2024-03-10 22:18:20 +0100 <ncf> the suspense is unbearable
2024-03-10 22:20:39 +0100 <Joao[3]> > let m = M.fromList [('a',1),('b',2),('c',3),('d',4)] in traverseOf (traversed.filtered even) (print . (*2)) m
2024-03-10 22:20:41 +0100 <lambdabot> error:
2024-03-10 22:20:41 +0100 <lambdabot> • No instance for (Integral ()) arising from a use of ‘even’
2024-03-10 22:20:41 +0100 <lambdabot> • In the first argument of ‘filtered’, namely ‘even’
2024-03-10 22:21:02 +0100 <Joao[3]> > let m = M.fromList [('a',1),('b',2),('c',3),('d',4)] in traverseOf (traversed.filtered even) (Identity . (*2)) m
2024-03-10 22:21:04 +0100 <lambdabot> Identity (fromList [('a',1),('b',4),('c',3),('d',8)])
2024-03-10 22:21:05 +0100 <endojelly> okay, now if we look at this instead:
2024-03-10 22:21:19 +0100 <endojelly> > let m = M.fromList [('a', 1), ('b', 2), ('c', 3), ('d', 4)] in traverseOf (at 'a') (\x -> return (Just 5) :: Identity (Maybe Int)) m
2024-03-10 22:21:20 +0100 <lambdabot> Identity (fromList [('a',5),('b',2),('c',3),('d',4)])
2024-03-10 22:21:21 +0100 <endojelly> and this:
2024-03-10 22:21:30 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-10 22:21:31 +0100 <endojelly> > let m = M.fromList [('a', 1), ('b', 2), ('c', 3), ('d', 4)] in traverseOf (at 'a') (\x -> return Nothing :: Identity (Maybe Int)) m
2024-03-10 22:21:33 +0100 <lambdabot> Identity (fromList [('b',2),('c',3),('d',4)])
2024-03-10 22:22:06 +0100 <endojelly> as you can see, when using at, I can return Nothing to delete the element.
2024-03-10 22:22:53 +0100 <endojelly> further more, these two examples don't show that, but my function operates on Maybes, not directly the integer.
2024-03-10 22:25:58 +0100 <endojelly> Actually, the only thing I would like, is to be able to return Nothing in the function applied to the traversal, to delete an element.
2024-03-10 22:26:31 +0100 <c_wraith> So... like... Do you want my lens-witherable package?
2024-03-10 22:26:38 +0100 <endojelly> Maybe?
2024-03-10 22:26:44 +0100 <endojelly> (pun unintended)
2024-03-10 22:27:07 +0100 <c_wraith> It seems like a use case for mapMaybeOf
2024-03-10 22:27:25 +0100 <ncf> so to summarise you want something like a Traversal' (Map k a) (Maybe a) that behaves like at but with multiple targets?
2024-03-10 22:27:38 +0100 <endojelly> oh, that looks promising, c_wraith
2024-03-10 22:27:48 +0100 <endojelly> ncf, yeah, pretty much
2024-03-10 22:27:48 +0100 <ncf> if so, that's not literally possible because this isn't a lawful traversal, but other solutions might exist
2024-03-10 22:28:08 +0100 <c_wraith> note that my package is intentionally not lenses. They're just things that happen to be compatible with them :)
2024-03-10 22:28:32 +0100 <endojelly> I was envisioning something like being able to say "edit . filtered even" instead of "traversed . filtered even", and then the function passed to traverseOf (or something else) would turn from "Int -> m Int" to "Int -> m (Maybe Int)"
2024-03-10 22:29:00 +0100 <ncf> > A Wither is like a Traversal, but you can also remove targets.
2024-03-10 22:29:01 +0100 <lambdabot> <hint>:1:29: error: parse error on input ‘,’
2024-03-10 22:29:11 +0100 <endojelly> and to be able to do more complex things like "edit . _2 . filtered even"
2024-03-10 22:29:14 +0100 <ncf> right so the solution is basically "stop caring about traversal laws" :)
2024-03-10 22:29:44 +0100 <endojelly> qute possibly so! Looks like Withered is what I'm looking for...
2024-03-10 22:32:00 +0100 <c_wraith> and I've noticed some garbled sentences in my docs. Woo. Time to upload a change that only fixes docs!
2024-03-10 22:33:37 +0100 <endojelly> oh my, this works wonderfully.
2024-03-10 22:33:50 +0100 <c_wraith> The thing I did for fun has turned out to be useful!
2024-03-10 22:34:01 +0100 <tomsmeding> \o/
2024-03-10 22:34:33 +0100 <c_wraith> endojelly: I'm making a doc fix release. If there's anything you see that could use a touchup besides the docs for guarded, let me know
2024-03-10 22:35:34 +0100 <endojelly> c_wraith, I straight ran into how it would be great if there's a mapMaybeOfM. I'm trying to build that myself with withering now.
2024-03-10 22:36:08 +0100 <c_wraith> That's fair. I can add that. and I suppose I should do the same for the other two, while I'm at it.
2024-03-10 22:36:21 +0100 <endojelly> but overall, it's great!
2024-03-10 22:36:33 +0100 <endojelly> Not sure yet, but does seem to solve my problem
2024-03-10 22:37:21 +0100 <c_wraith> specifically, you want (a -> m (Maybe b)) as one of those types?
2024-03-10 22:37:28 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-03-10 22:37:37 +0100 <c_wraith> err, as the modification function type
2024-03-10 22:38:17 +0100 <endojelly> yep
2024-03-10 22:38:24 +0100 <endojelly> To state what I actually was trying to do:
2024-03-10 22:39:05 +0100 <endojelly> I want to perform IO actions on some data deep in my nested data structure. Depending on the result of the IO action, I want to choose to remove the entire element at a higher level in the data structure.
2024-03-10 22:39:11 +0100 <c_wraith> Yep, makes sense.
2024-03-10 22:39:13 +0100 <ncf> any reason witherOf won't do?
2024-03-10 22:39:32 +0100 <c_wraith> oh, right. Yes, that's what it does.
2024-03-10 22:39:35 +0100 <endojelly> (A more general solution will likely also allow modifying elements, and it looks like yours do, but in this specific case I just don't need that.)
2024-03-10 22:39:43 +0100 <c_wraith> Ok, I'll add some docs to point out that connection
2024-03-10 22:40:13 +0100 <endojelly> Ah, I did not see witherOf, because I *did not actually click through to the module* and only read the readme. Don't know why...
2024-03-10 22:40:29 +0100 <endojelly> yep, that is exactly what it does, thanks!
2024-03-10 22:40:30 +0100 <c_wraith> Totally fair. That's a way I can improve the docs.
2024-03-10 22:40:50 +0100 <ncf> you won't believe how it's implemented
2024-03-10 22:41:23 +0100 <c_wraith> I'm really sad I needed my own type in there.
2024-03-10 22:41:33 +0100 <c_wraith> But... MaybeT was too restrictive.
2024-03-10 22:42:32 +0100Eoco(~ian@128.101.131.218)
2024-03-10 22:42:41 +0100 <ncf> what type?
2024-03-10 22:43:23 +0100 <c_wraith> Withering is my own type alias that's nearly identical to MaybeT, except for the Applicative instance
2024-03-10 22:43:39 +0100 <c_wraith> err. newtype, rather than alias. but sure.
2024-03-10 22:44:04 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-10 22:44:06 +0100 <ncf> where's Withering?
2024-03-10 22:44:19 +0100 <c_wraith> https://hackage.haskell.org/package/lens-witherable-0.1.0.2/docs/Witherable-Lens-Withering.html
2024-03-10 22:44:41 +0100 <endojelly> Look at this, beautiful:
2024-03-10 22:44:42 +0100 <endojelly> > let m = M.fromList [('a', ("foo", 1)), ('b', ("bar", 2)), ('c', ("baz", 3)), ('d', ("xyzzy", 4))] in witherOf (withered._2.filtered even) (\x -> tell [x] >> return (if x == 2 then Nothing else Just 5)) m :: Writer [Int] (M.Map Char (String, Int))
2024-03-10 22:44:44 +0100 <lambdabot> error:
2024-03-10 22:44:44 +0100 <lambdabot> Variable not in scope:
2024-03-10 22:44:44 +0100 <lambdabot> witherOf
2024-03-10 22:44:55 +0100 <endojelly> well, okay, let me paste the result.
2024-03-10 22:45:01 +0100 <endojelly> WriterT (Identity (fromList [('a',("foo",1)),('c',("baz",3)),('d',("xyzzy",5))],[2,4]))
2024-03-10 22:46:04 +0100 <ncf> i think that's Compose f Maybe
2024-03-10 22:46:15 +0100Joao[3](~Joao003@190.108.99.67) (Quit: Bye!)
2024-03-10 22:46:22 +0100 <c_wraith> It is, but that's awful for documentation
2024-03-10 22:46:59 +0100 <c_wraith> eh, maybe I should take inspiration from lens and document everything in terms of aliases anyway
2024-03-10 22:47:09 +0100 <ncf> right so i was looking at the old Data.Witherable module for some reason
2024-03-10 22:47:18 +0100 <endojelly> So... how much do I need to care that this doesn't follow lens laws?
2024-03-10 22:47:49 +0100 <endojelly> Also, which laws exactly does it not follow? I'm still early in my journey of understanding the lens types.
2024-03-10 22:47:58 +0100 <c_wraith> the lens laws are about being able to refactor stuff blindly. Not following the laws means that you have to actually think about what's going on if you decide to refactor it.
2024-03-10 22:48:39 +0100 <c_wraith> I wouldn't be concerned that it's not following the laws. I mean, `filtered` doesn't follow the laws.
2024-03-10 22:49:12 +0100 <ncf> traversals aren't allowed to change the (number of) targets
2024-03-10 22:49:20 +0100 <endojelly> Hmm, but at follows the laws? Or not?
2024-03-10 22:49:27 +0100ania123(~ania123@146.255.226.194) (Quit: Client closed)
2024-03-10 22:49:41 +0100 <ncf> so a Wither isn't a Traversal, but that's fine. it just obeys its own laws
2024-03-10 22:49:50 +0100 <ncf> at is a lawful Lens
2024-03-10 22:49:53 +0100 <c_wraith> Yeah, it's not even the right type to be a lens
2024-03-10 22:49:59 +0100 <endojelly> "Note that this introduces a change in types down the lens composition chain, which means that it is not a a valid optic at all."
2024-03-10 22:50:04 +0100 <endojelly> Does 'at' not do that as well?
2024-03-10 22:50:18 +0100 <c_wraith> No, at sticks with lens types
2024-03-10 22:51:03 +0100 <ncf> i'm not sure Wither isn't a valid optic. it's not a LensLike, but that's another issue
2024-03-10 22:51:03 +0100 <c_wraith> the lens-witherable stuff uses types that just aren't allowed in lens. Then it provides compatibility shims like unWithered to be type compatible if needed.
2024-03-10 22:51:21 +0100 <ncf> i guess it depends what one means by "valid optic"
2024-03-10 22:51:42 +0100 <c_wraith> Well, ok. I was strictly assuming things fitting the Lenslike alias
2024-03-10 22:51:44 +0100hgolden_(~hgolden@172-251-233-141.res.spectrum.com)
2024-03-10 22:51:57 +0100 <ncf> can you compose Withers? i guess that would be my main criterion
2024-03-10 22:52:12 +0100 <endojelly> Well, I guess I will understand that when I digged into the lens types more.
2024-03-10 22:52:48 +0100 <ncf> i guess you can't, because you can't indicate which level you mean to delete by returning Nothing
2024-03-10 22:52:58 +0100 <ncf> you'd need to return Maybe (Maybe a) in the composite
2024-03-10 22:53:55 +0100hgolden(~hgolden@2603-8000-9d00-3ed1-2678-8497-aa5c-7fa9.res6.spectrum.com) (Ping timeout: 260 seconds)
2024-03-10 22:54:11 +0100 <ncf> i'm guessing too much
2024-03-10 22:54:44 +0100 <c_wraith> You're right. They don't compose well. Which is why I have rewithered in my library
2024-03-10 22:55:32 +0100otto_s_(~otto_s@p54993456.dip0.t-ipconnect.de)
2024-03-10 22:56:26 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-03-10 22:58:23 +0100 <endojelly> Hmm, so how about a version of decayed that turns it back into a lenslike? Removing the elements, but still passing them through (so that a monad can work on them)
2024-03-10 22:58:40 +0100Joao[3](~Joao003@190.108.99.67)
2024-03-10 22:59:06 +0100 <c_wraith> I'm not sure quite how that would work
2024-03-10 22:59:41 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2024-03-10 23:00:02 +0100 <endojelly> Yeah, not sure. Intuitively I'm looking for something like "traverseOf (withered._2.filtered even.decayed) (print) m"
2024-03-10 23:00:13 +0100byte(~byte@user/byte) (Remote host closed the connection)
2024-03-10 23:00:20 +0100 <endojelly> err, something else than decayed, of course
2024-03-10 23:00:55 +0100 <c_wraith> So... you're wanting to print the things that get removed?
2024-03-10 23:01:03 +0100 <c_wraith> (for example)
2024-03-10 23:01:14 +0100 <endojelly> as the example, yeah.
2024-03-10 23:01:57 +0100 <endojelly> this works with "witherOf" and "(>> return Nothing) . print" already of course.
2024-03-10 23:02:40 +0100oo_miguel(~Thunderbi@78-11-181-16.static.ip.netia.com.pl) (Quit: oo_miguel)
2024-03-10 23:03:04 +0100a51(a51@gateway/vpn/protonvpn/a51) (Quit: WeeChat 4.2.1)
2024-03-10 23:03:11 +0100 <endojelly> I mean you could of course also just: let witherAllOf w f = witherOf w ((>> return Nothing) . f)
2024-03-10 23:03:25 +0100 <endojelly> but maybe there's advantage in turning it back into a lenslike?
2024-03-10 23:03:28 +0100 <c_wraith> I'm not sure that's generally useful enough as a combinator across all f
2024-03-10 23:03:36 +0100 <endojelly> yeah, good point
2024-03-10 23:04:03 +0100 <c_wraith> Especially since the functionality is currently available, even if a bit verbose at the moment.
2024-03-10 23:04:18 +0100 <endojelly> yep
2024-03-10 23:05:59 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2024-03-10 23:06:13 +0100 <endojelly> anyway, great package.
2024-03-10 23:08:15 +0100 <Joao[3]> Hello. I installed the lens package, but ghci refuses to execute `import Control.Lens`
2024-03-10 23:09:25 +0100 <c_wraith> endojelly: thanks. I'll let you know when I get the update out, even though you probably won't actually benefit from having it in any way. :)
2024-03-10 23:10:08 +0100 <endojelly> heheh, probably true, but I won't mind having a look anyway!
2024-03-10 23:10:41 +0100 <endojelly> right now I'm perfectly happy with what it does already (and you said it's likely going to be documentation changes anyway)
2024-03-10 23:10:53 +0100srz_(~srz@181.228.49.93) (Ping timeout: 268 seconds)
2024-03-10 23:11:07 +0100 <c_wraith> I've decided to add an effectful filterOf, but the rest is doc changes
2024-03-10 23:12:25 +0100byte(~byte@149.28.222.189)
2024-03-10 23:15:37 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-10 23:16:35 +0100 <c_wraith> Joao[3]: there could be a lot of things going on. How did you install it? How are you running ghci?
2024-03-10 23:16:53 +0100 <Joao[3]> I installed with `cabal install lens`
2024-03-10 23:20:02 +0100michalz(~michalz@185.246.207.205) (Quit: ZNC 1.8.2 - https://znc.in)
2024-03-10 23:20:16 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-03-10 23:20:23 +0100target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2024-03-10 23:20:36 +0100 <c_wraith> Joao[3]: So... it was found that keeping a mutable package store that's always available to ghc leads to version conflicts that can be really difficult to deal with. As such, ghc and ghci don't automatically see packages that have been installed.
2024-03-10 23:21:14 +0100 <Joao[3]> So... how do I make them see those packages?
2024-03-10 23:22:21 +0100 <c_wraith> there are several major ways. They break down into a couple categories. You can run ghc/ghci via cabal, letting it set the environment, or you can tell cabal to modify a global environment description when it installs a package.
2024-03-10 23:23:20 +0100 <c_wraith> The former is more reliable (it will always pick a set of versions that are compatible without caring what is installed elsewhere), but it adds more overhead to starting stuff up, as it has to check on all of that.
2024-03-10 23:24:36 +0100 <c_wraith> so you could run `cabl repl -b lens` instead of ghci to get an interactive session with lens available. Or you could run `cabal install --lib lens` to tell cabal to modify the global environment when it installs it. The latter is easier for ad-hoc stuff, but gets fragile if you update the global environment in the future.
2024-03-10 23:25:28 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-03-10 23:26:35 +0100gmg(~user@user/gehmehgeh) (Quit: Leaving)
2024-03-10 23:29:48 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-10 23:32:34 +0100a51(a51@gateway/vpn/protonvpn/a51)
2024-03-10 23:38:38 +0100gorignak(~gorignak@user/gorignak) (Quit: quit)
2024-03-10 23:43:53 +0100Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
2024-03-10 23:46:32 +0100 <tomsmeding> I would recommend against 'cabal install --lib'
2024-03-10 23:46:55 +0100 <c_wraith> I also do, in general. It will always end up breaking.
2024-03-10 23:46:59 +0100 <tomsmeding> it does something that a new user probably doesn't expect
2024-03-10 23:47:29 +0100 <tomsmeding> it's fine if you know exactly what it does and have decided that that's the behaviour you want p
2024-03-10 23:47:31 +0100 <tomsmeding> * :p
2024-03-10 23:48:46 +0100 <EvanR> imagine if there was a command that didn't act like that
2024-03-10 23:49:11 +0100 <monochrom> NO. Imagine if GHC came with lens. >:D
2024-03-10 23:49:32 +0100 <tomsmeding> Joao[3]: my recommendation: outside a project, ad hoc: `cabal repl -b lens`. If you're working on a piece of code: make it a project (i.e. make a directory with a yourthing.cabal file) and add `lens` to your build-depends
2024-03-10 23:49:33 +0100 <monochrom> Go kitchen-sink-included or go home.
2024-03-10 23:49:48 +0100 <tomsmeding> @hackage acme-everything
2024-03-10 23:49:48 +0100 <lambdabot> https://hackage.haskell.org/package/acme-everything
2024-03-10 23:50:04 +0100 <monochrom> Oh haha cabal repl -b acme-everything
2024-03-10 23:50:13 +0100 <Joao[3]> I'd like to include lens in all of my GHCi sessions
2024-03-10 23:50:22 +0100 <monochrom> NO. cabal install --lib acme-everything >:D
2024-03-10 23:50:24 +0100 <tomsmeding> then always do `cabal repl -b lens`
2024-03-10 23:50:34 +0100 <tomsmeding> you can `cabal repl -b lens -b something-else -b another-thing`
2024-03-10 23:50:50 +0100 <monochrom> OK my serious advice is cabal repl -b lens too.
2024-03-10 23:51:19 +0100 <tomsmeding> the problem of installing something globally & implicitly is that 1. it's implicit, 2. it's hard to uninstall later, 3. it doesn't automatically upgrade, 4. it's for a single ghc version only
2024-03-10 23:51:22 +0100 <monochrom> When you are an advanced GHC user, you can start considering "install --lib".
2024-03-10 23:51:30 +0100 <tomsmeding> yes
2024-03-10 23:51:54 +0100 <c_wraith> endojelly: I've published 0.1.1.0 though docs take a while to build on hackage. It has one new function, and a couple doc changes.
2024-03-10 23:52:09 +0100 <monochrom> It requires manual trouble-shooting if something goes wrong.
2024-03-10 23:52:12 +0100 <tomsmeding> 5. it messes up other haskell tooling, 6. it has weird interactions if you install multiple things globally, somethimes
2024-03-10 23:52:24 +0100 <tomsmeding> (case for 5: stack breaks)
2024-03-10 23:52:55 +0100 <c_wraith> stack breaks? that strikes me as unexpected. I thought stack worked really hard to live in its own isolated world.
2024-03-10 23:53:12 +0100 <monochrom> But if you pay me cdn$10^100 per hour and give me unlimited escalated remote desktop access, I can do the manual trouble-shooting for you.
2024-03-10 23:53:16 +0100CiaoSen(~Jura@2a05:5800:28f:8800:e6b9:7aff:fe80:3d03)
2024-03-10 23:54:12 +0100 <tomsmeding> c_wraith: https://ircbrowse.tomsmeding.com/day/lchaskell/2024/02/08?id=1209716#trid1209716
2024-03-10 23:54:18 +0100 <tomsmeding> the paste is gone, it seems, unfortunately
2024-03-10 23:55:10 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-03-10 23:56:03 +0100 <c_wraith> when does hackage build docs these days? is it still every 6 hours?
2024-03-10 23:57:46 +0100otto_s_(~otto_s@p54993456.dip0.t-ipconnect.de) (Quit: leaving)
2024-03-10 23:58:02 +0100 <sclv> its constantly, with a small delay
2024-03-10 23:58:21 +0100 <sclv> but it builds it one at a time and can get stuck
2024-03-10 23:58:36 +0100 <sclv> and then resets "from the top" like every half hour or so
2024-03-10 23:58:56 +0100 <c_wraith> ah, thanks
2024-03-10 23:59:14 +0100 <sclv> so if it gets stuck at a package at time t, then after the reset it will kill that stuckness and hit everything later than t before working chron back to get stuck at t again