Home liberachat/#haskell: Logs Calendar

Logs on 2024-03-16 (liberachat/#haskell)

00:00:48 <c_wraith> I mean, you can always write that, if you don't mind writing all the instances by hand
00:05:13 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
00:05:34 <Ptival> I'm eventually trying to have it be TH-generated. But currently, I'm simply hitting the wall that different data constructors have different types, so it's not clear how to even declare the type family to begin with.
00:05:54 <c_wraith> Make the type family polykinded
00:06:27 <Ptival> ah, just putting a type variable for the kind?
00:06:35 <c_wraith> yeah
00:06:37 <Ptival> indeed, thanks :)
00:10:08 × noumenon quits (~noumenon@113.51-175-156.customer.lyse.net) (Quit: Leaving)
00:18:04 × zer0bitz quits (~zer0bitz@user/zer0bitz) (Ping timeout: 260 seconds)
00:20:21 × zetef quits (~quassel@5.2.182.98) (Remote host closed the connection)
00:34:34 × zenstoic quits (uid461840@id-461840.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
00:41:47 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Ping timeout: 272 seconds)
00:50:13 × d34df00d quits (~d34df00d@2600:1702:4f1b:7c10::43) (Remote host closed the connection)
00:50:50 d34df00d joins (~d34df00d@2600:1702:4f1b:7c10::43)
01:04:13 rosco joins (~rosco@111.221.54.95)
01:04:35 × mulk quits (~mulk@p5b112d0c.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
01:08:14 joel_ joins (~joel@185.107.56.65)
01:09:04 mulk joins (~mulk@p5b112381.dip0.t-ipconnect.de)
01:11:26 joel_ parts (~joel@185.107.56.65) (Good Bye)
01:23:50 × tcard_ quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Remote host closed the connection)
01:24:08 tcard_ joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
01:29:40 Joao[3] joins (~Joao003@190.108.99.67)
01:34:14 × Joao[3] quits (~Joao003@190.108.99.67) (Read error: Connection reset by peer)
01:45:58 benkard joins (~mulk@p5b11225e.dip0.t-ipconnect.de)
01:46:37 × mulk quits (~mulk@p5b112381.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
01:46:37 benkard is now known as mulk
01:55:27 × xff0x quits (~xff0x@2405:6580:b080:900:480d:c341:fe03:d988) (Ping timeout: 256 seconds)
01:55:51 xff0x joins (~xff0x@ai082039.d.east.v6connect.net)
02:04:09 × Ptival quits (~Ptival@2601:1c0:4580:7650:cdf6:fe66:cfea:400d) (Ping timeout: 250 seconds)
02:06:13 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds)
02:06:28 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
02:07:48 Lord_of_Life_ is now known as Lord_of_Life
02:12:30 × renpose quits (~renpose@user/renpose) (Quit: Client closed)
02:24:02 × tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
02:24:35 tri joins (~tri@ool-18bc2e74.dyn.optonline.net)
02:35:38 × otto_s quits (~user@p5b0443a3.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
02:36:55 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
02:37:20 otto_s joins (~user@p4ff27f66.dip0.t-ipconnect.de)
02:39:54 × euleritian quits (~euleritia@dynamic-176-006-197-068.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
02:40:11 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
02:50:18 × tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
02:50:31 tri joins (~tri@ool-18bc2e74.dyn.optonline.net)
02:51:44 peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com)
03:05:32 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 268 seconds)
03:19:37 × shapr` quits (~user@c-24-218-186-89.hsd1.ma.comcast.net) (Ping timeout: 264 seconds)
03:52:05 × td_ quits (~td@i53870934.versanet.de) (Ping timeout: 252 seconds)
03:53:51 td_ joins (~td@i53870919.versanet.de)
03:58:03 × Lycurgus quits (~georg@user/Lycurgus) (Quit: leaving)
04:00:51 × tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
04:01:23 tri joins (~tri@ool-18bc2e74.dyn.optonline.net)
04:16:57 × aforemny_ quits (~aforemny@i59F516D9.versanet.de) (Ping timeout: 255 seconds)
04:17:01 stanrifkin_ joins (~stanrifki@p200300dbcf072400c0217626a9f38655.dip0.t-ipconnect.de)
04:17:03 aforemny joins (~aforemny@i59F516EC.versanet.de)
04:20:13 × stanrifkin quits (~stanrifki@p200300dbcf3c3000008223fe5b49b811.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
04:21:13 × mud quits (~mud@user/kadoban) (Quit: quit)
04:23:19 × xff0x quits (~xff0x@ai082039.d.east.v6connect.net) (Ping timeout: 260 seconds)
04:24:23 × tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
04:24:36 tri joins (~tri@ool-18bc2e74.dyn.optonline.net)
04:25:36 xff0x joins (~xff0x@2405:6580:b080:900:480d:c341:fe03:d988)
04:46:37 derpyxdhs joins (~Thunderbi@user/derpyxdhs)
04:52:53 × raym quits (~ray@user/raym) (Ping timeout: 240 seconds)
04:55:03 raym joins (~ray@user/raym)
05:01:51 sam113102 joins (~sam@24.157.253.231)
05:02:13 × sam113101 quits (~sam@modemcable043.190-201-24.mc.videotron.ca) (Ping timeout: 264 seconds)
05:02:17 sam113102 is now known as sam113101
05:10:39 tcard__ joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
05:11:02 × tcard_ quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Remote host closed the connection)
05:11:03 oneeyedalien joins (~oneeyedal@user/oneeyedalien)
05:11:46 × derpyxdhs quits (~Thunderbi@user/derpyxdhs) (Quit: derpyxdhs)
05:12:23 × mulk quits (~mulk@p5b11225e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
05:16:18 × rosco quits (~rosco@111.221.54.95) (Quit: Lost terminal)
05:16:27 mulk joins (~mulk@p5b2dce9f.dip0.t-ipconnect.de)
05:55:09 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
05:55:24 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
06:02:50 × mulk quits (~mulk@p5b2dce9f.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
06:05:01 mulk joins (~mulk@p5b2dccc5.dip0.t-ipconnect.de)
06:11:35 × TimeLapse quits (~TimeLapse@176.254.244.83) (Ping timeout: 260 seconds)
06:12:00 × oneeyedalien quits (~oneeyedal@user/oneeyedalien) (Quit: Leaving)
06:16:18 <cheater> hello
06:17:20 × tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
06:28:23 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:29:30 derpyxdhs joins (~Thunderbi@user/derpyxdhs)
06:37:25 oo_miguel joins (~Thunderbi@78-11-181-16.static.ip.netia.com.pl)
06:44:46 × oo_miguel quits (~Thunderbi@78-11-181-16.static.ip.netia.com.pl) (Ping timeout: 268 seconds)
06:49:23 Daxson joins (~Daxson@176.254.244.83)
06:57:18 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:03:25 × tcard__ quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Remote host closed the connection)
07:03:37 tcard__ joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
07:06:44 <edwardk> it is time for me to up my hiring bar. i just fed chatgpt the first part of my usual suite of interview questions about rank-select dictionaries and how to derive coselect and the corollary about the existence of right adjoint to the cumulative density function in statistics rather than the usual "inverse" cdf used for quantiles... and er.. it basically got it right.
07:08:07 <edwardk> i haven't finished the usual interview with all the machinery to rederive wavelet trees, mainly because that gets awkward to type out.
07:12:21 × derpyxdhs quits (~Thunderbi@user/derpyxdhs) (Quit: derpyxdhs)
07:14:15 × peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds)
07:23:00 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
07:23:35 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
07:24:18 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
07:26:27 × econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
07:32:27 wootehfoot joins (~wootehfoo@user/wootehfoot)
07:38:30 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:41:54 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
07:42:37 euleritian joins (~euleritia@77.22.252.56)
07:52:17 × euleritian quits (~euleritia@77.22.252.56) (Read error: Connection reset by peer)
07:53:07 euleritian joins (~euleritia@77.22.252.56)
07:55:11 × euleritian quits (~euleritia@77.22.252.56) (Read error: Connection reset by peer)
07:55:26 euleritian joins (~euleritia@77.22.252.56)
08:00:23 × euleritian quits (~euleritia@77.22.252.56) (Read error: Connection reset by peer)
08:00:37 danza__ joins (~francesco@151.19.247.93)
08:01:05 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
08:01:41 petrichor joins (~znc-user@user/petrichor)
08:04:30 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
08:06:01 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
08:08:35 × tzh quits (~tzh@c-73-164-206-160.hsd1.or.comcast.net) (Quit: zzz)
08:14:47 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
08:16:00 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
08:29:28 × dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 260 seconds)
08:36:38 L29Ah joins (~L29Ah@wikipedia/L29Ah)
08:46:46 elnegro joins (elnegro@r167-57-85-191.dialup.adsl.anteldata.net.uy)
08:48:20 × elnegro quits (elnegro@r167-57-85-191.dialup.adsl.anteldata.net.uy) (Client Quit)
08:54:28 CiaoSen joins (~Jura@5.83.182.225)
08:56:42 × amjoseph quits (~amjoseph@static-198-44-128-146.cust.tzulo.com) (Remote host closed the connection)
08:57:20 amjoseph joins (~amjoseph@static-198-44-128-146.cust.tzulo.com)
09:09:08 danza_ joins (~francesco@151.43.237.40)
09:11:43 × danza__ quits (~francesco@151.19.247.93) (Ping timeout: 260 seconds)
09:16:41 ski joins (~ski@ext-1-033.eduroam.chalmers.se)
09:18:09 × krei-se quits (~krei-se@p57af28c6.dip0.t-ipconnect.de) (Quit: ZNC 1.8.2 - https://znc.in)
09:29:55 × CiaoSen quits (~Jura@5.83.182.225) (Ping timeout: 260 seconds)
09:30:29 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 240 seconds)
09:31:41 CiaoSen joins (~Jura@2a05:5800:29d:1100:e6b9:7aff:fe80:3d03)
09:36:01 arthurvl is now known as earthy
09:43:22 × tired quits (~tired@user/tired) (Quit: /)
09:45:40 tired joins (~tired@user/tired)
09:47:16 agrosant joins (~agrosant@62.1.112.240.dsl.dyn.forthnet.gr)
09:50:24 × gabriel_sevecek quits (~gabriel@188-167-229-200.dynamic.chello.sk) (Ping timeout: 255 seconds)
09:52:32 gabriel_sevecek joins (~gabriel@188-167-229-200.dynamic.chello.sk)
09:56:59 × agrosant quits (~agrosant@62.1.112.240.dsl.dyn.forthnet.gr) (Ping timeout: 264 seconds)
09:57:02 × CiaoSen quits (~Jura@2a05:5800:29d:1100:e6b9:7aff:fe80:3d03) (Ping timeout: 256 seconds)
10:05:48 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
10:15:53 CiaoSen joins (~Jura@2a05:5800:2d3:4900:e6b9:7aff:fe80:3d03)
10:22:08 zer0bitz joins (~zer0bitz@user/zer0bitz)
10:24:53 × CiaoSen quits (~Jura@2a05:5800:2d3:4900:e6b9:7aff:fe80:3d03) (Ping timeout: 240 seconds)
10:27:06 CiaoSen joins (~Jura@2a05:5800:2d3:8f00:e6b9:7aff:fe80:3d03)
10:29:21 × adanwan_ quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
10:29:53 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
10:30:28 kuribas joins (~user@ptr-17d51entmeoj3fjxzy1.18120a2.ip6.access.telenet.be)
10:36:15 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
10:36:37 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
10:43:27 × CiaoSen quits (~Jura@2a05:5800:2d3:8f00:e6b9:7aff:fe80:3d03) (Ping timeout: 256 seconds)
10:48:55 Square joins (~Square@user/square)
10:59:27 × mulk quits (~mulk@p5b2dccc5.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
11:01:46 oo_miguel joins (~Thunderbi@78-11-181-16.static.ip.netia.com.pl)
11:02:32 steew joins (~steew@user/steew)
11:04:07 pagnol joins (~user@2a02:a210:a41:dc00:1b3:5588:73e9:6aa6)
11:04:46 <pagnol> is it correct that optics are kind of a new thing that supplants lenses but at the same time lenses are also called "optics"?
11:04:55 <pagnol> I'm confused
11:04:56 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
11:06:47 <mauke> I understand optics to be the general concept that includes lenses, prisms, etc
11:10:11 <danza_> makes sense
11:11:16 <Rembane> To make things more confusing there's a library called lens and a library called optics. Both do lenses etc, but in different ways.
11:22:01 <probie> Most things in the lens library aren't lenses
11:24:00 mulk joins (~mulk@p5b2dc99c.dip0.t-ipconnect.de)
11:29:58 × danza_ quits (~francesco@151.43.237.40) (Ping timeout: 268 seconds)
11:30:22 <Franciman> hi, does haskell have intersection types?
11:31:12 × acidjnk quits (~acidjnk@p200300d6e737e7738008c85cfa684e75.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
11:32:18 <ncf> no
11:33:00 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
11:33:14 CiaoSen joins (~Jura@2a05:5800:2d3:8f00:e6b9:7aff:fe80:3d03)
11:52:29 × CiaoSen quits (~Jura@2a05:5800:2d3:8f00:e6b9:7aff:fe80:3d03) (Ping timeout: 240 seconds)
11:53:21 target_i joins (~target_i@user/target-i/x-6023099)
11:56:31 <Axman6> edwardk: well damn, I guess AI did take me job, I only gove myself a 40% chance of understanding that ofbots explained to me =)
12:00:19 misterfish joins (~misterfis@84.53.85.146)
12:02:30 <pagnol> I am looking at the book "Optics by Example" and it seems it is mainly concerned with lenses, not "optics" in the stricter sense, or am I missing something?
12:04:19 shapr joins (~user@2603:3005:b31:e100:b75f:93d6:ea52:ce90)
12:07:52 <ncf> table of contents looks like it covers more than just lenses
12:08:06 komikat_ joins (~akshitkr@218.185.248.66)
12:08:14 × komikat quits (~akshitkr@218.185.248.66) (Read error: Connection reset by peer)
12:08:24 <ncf> » Lenses, Folds, Traversals, Prisms and Isos are all types of optics which we’ll explore throughout the book!
12:11:31 gmg joins (~user@user/gehmehgeh)
12:15:28 <pagnol> ncf: ah, thanks for checking
12:28:52 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
12:30:32 × tv quits (~tv@user/tv) (Quit: derp)
12:31:04 tv joins (~tv@user/tv)
12:34:12 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
12:35:01 ChaiTRex joins (~ChaiTRex@user/chaitrex)
12:43:35 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
12:46:53 × kuribas quits (~user@ptr-17d51entmeoj3fjxzy1.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 27.1))
12:52:03 × pagnol quits (~user@2a02:a210:a41:dc00:1b3:5588:73e9:6aa6) (Remote host closed the connection)
12:53:38 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
13:10:07 tri joins (~tri@ool-18bc2e74.dyn.optonline.net)
13:10:59 fedorafan joins (~fedorafan@user/fedorafan)
13:11:27 <fedorafan> o/ just looking after someone ok
13:11:32 <fedorafan> have a nice day guys
13:11:43 fedorafan parts (~fedorafan@user/fedorafan) (Textual IRC Client: www.textualapp.com)
13:14:11 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 268 seconds)
13:16:16 × tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
13:16:48 tri joins (~tri@ool-18bc2e74.dyn.optonline.net)
13:17:12 × mei quits (~mei@user/mei) (Quit: mei)
13:19:37 × shapr quits (~user@2603:3005:b31:e100:b75f:93d6:ea52:ce90) (Quit: shopping)
13:21:00 × tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 255 seconds)
13:24:14 fedorafan joins (~fedorafan@user/fedorafan)
13:24:30 <fedorafan> ah i stay here
13:24:34 <fedorafan> gonna watch how the mood is here
13:25:17 <yushyin> ok
14:09:09 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
14:13:49 × xff0x quits (~xff0x@2405:6580:b080:900:480d:c341:fe03:d988) (Ping timeout: 256 seconds)
14:14:12 xff0x joins (~xff0x@ai082039.d.east.v6connect.net)
14:20:10 renpose joins (~renpose@user/renpose)
14:22:24 mik3d joins (~mik3d@pool-173-61-131-199.cmdnnj.fios.verizon.net)
14:23:16 × pastly quits (~pastly@gateway/tor-sasl/pastly) (Remote host closed the connection)
14:23:53 pastly joins (~pastly@gateway/tor-sasl/pastly)
14:27:20 × tertek quits (~tertek@user/tertek) (Ping timeout: 252 seconds)
14:27:40 tertek joins (~tertek@user/tertek)
14:28:16 × pastly quits (~pastly@gateway/tor-sasl/pastly) (Remote host closed the connection)
14:28:25 × sudden quits (~cat@user/sudden) (Ping timeout: 246 seconds)
14:28:37 pastly joins (~pastly@gateway/tor-sasl/pastly)
14:29:34 sudden joins (~cat@user/sudden)
14:31:00 × mik3d quits (~mik3d@pool-173-61-131-199.cmdnnj.fios.verizon.net) (Read error: Connection reset by peer)
14:33:02 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
14:34:14 gmg joins (~user@user/gehmehgeh)
14:41:11 × fun-safe-math quits (~fun-safe-@24.21.106.247) (Ping timeout: 260 seconds)
14:42:42 shapr joins (~user@c-24-218-186-89.hsd1.ma.comcast.net)
14:45:10 ania123 joins (~ania123@94-43-231-47.dsl.utg.ge)
14:47:07 <fedorafan> 608 users and its so calm
14:47:14 <fedorafan> no worries i wont spam here around
14:54:09 <yushyin> it's mainly a channel where people ask haskell related questions and wait for answers. So if you have questions, it will become more lively here eventually
14:55:52 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
15:19:48 <fedorafan> i see
15:19:58 × ania123 quits (~ania123@94-43-231-47.dsl.utg.ge) (Quit: Client closed)
15:20:26 <fedorafan> didnt plan to learn haskell maybe in some time when i am bored or i need to but yeah a lot of people here many users
15:20:48 <fedorafan> yushyin where is it used what kind of niches
15:21:32 × tv quits (~tv@user/tv) (Ping timeout: 260 seconds)
15:22:57 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer)
15:26:19 ania123 joins (~ania123@94-43-231-47.dsl.utg.ge)
15:26:45 <yushyin> it is a general-purpose language, it is used for a wide range of applications
15:27:53 <fedorafan> do you have an example
15:31:26 CAT_S is now known as CATS
15:32:10 <yushyin> shellcheck, hledger, pandoc, xmonad, agda, purescript, git-annex
15:32:33 <yushyin> (off the top of my head)
15:34:43 acidjnk joins (~acidjnk@p200300d6e737e7694d901d7278c02256.dip0.t-ipconnect.de)
15:34:47 tv joins (~tv@user/tv)
15:34:58 <fedorafan> ok thanks
15:39:05 <haskellbridge> <s​m> https://www.reddit.com/r/haskell/comments/eddwbu/top_nonprogrammingrelated_haskell_apps/ https://wiki.haskell.org/Haskell_in_industry
15:43:50 × pastly quits (~pastly@gateway/tor-sasl/pastly) (Ping timeout: 260 seconds)
15:45:35 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
15:46:48 euleritian joins (~euleritia@dynamic-176-006-187-161.176.6.pool.telefonica.de)
15:50:38 pastly joins (~pastly@gateway/tor-sasl/pastly)
16:05:19 × tv quits (~tv@user/tv) (Ping timeout: 256 seconds)
16:12:11 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
16:14:11 L29Ah joins (~L29Ah@wikipedia/L29Ah)
16:18:46 tv joins (~tv@user/tv)
16:25:25 tzh joins (~tzh@c-73-164-206-160.hsd1.or.comcast.net)
16:32:44 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 252 seconds)
16:34:57 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
16:39:39 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
16:44:37 Lycurgus joins (~georg@li1192-118.members.linode.com)
16:44:37 × Lycurgus quits (~georg@li1192-118.members.linode.com) (Changing host)
16:44:37 Lycurgus joins (~georg@user/Lycurgus)
16:51:19 mik3d joins (~mik3d@pool-173-61-131-199.cmdnnj.fios.verizon.net)
17:02:54 michalz joins (~michalz@185.246.207.193)
17:03:11 × mik3d quits (~mik3d@pool-173-61-131-199.cmdnnj.fios.verizon.net) (Read error: Connection reset by peer)
17:03:59 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 260 seconds)
17:07:40 zenstoic joins (uid461840@id-461840.hampstead.irccloud.com)
17:08:40 mei joins (~mei@user/mei)
17:20:50 Volt_ joins (~Volt_@c-73-47-181-152.hsd1.ma.comcast.net)
17:23:10 mik3d joins (~mik3d@2607:fb90:e9c0:4382:3d8f:f3ae:dc66:8b5f)
17:26:43 × TMA quits (tma@twin.jikos.cz) (Ping timeout: 268 seconds)
17:27:39 × mik3d quits (~mik3d@2607:fb90:e9c0:4382:3d8f:f3ae:dc66:8b5f) (Read error: Connection reset by peer)
17:29:08 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:34:05 × ania123 quits (~ania123@94-43-231-47.dsl.utg.ge) (Ping timeout: 250 seconds)
17:34:10 TMA joins (tma@twin.jikos.cz)
17:37:14 × gmg quits (~user@user/gehmehgeh) (Ping timeout: 260 seconds)
17:37:30 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 268 seconds)
17:38:06 × michalz quits (~michalz@185.246.207.193) (Read error: Connection reset by peer)
17:39:15 gmg joins (~user@user/gehmehgeh)
17:40:11 michalz joins (~michalz@185.246.207.217)
17:43:37 × mechap quits (~mechap@user/mechap) (Ping timeout: 264 seconds)
17:43:43 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
17:43:59 mei is now known as Guest589
17:43:59 × Guest589 quits (~mei@user/mei) (Killed (calcium.libera.chat (Nickname regained by services)))
17:44:05 mei joins (~mei@user/mei)
17:44:26 gmg joins (~user@user/gehmehgeh)
17:45:03 mechap joins (~mechap@user/mechap)
17:48:02 rvalue joins (~rvalue@user/rvalue)
17:50:15 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
17:50:56 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
17:52:11 × euleritian quits (~euleritia@dynamic-176-006-187-161.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
17:52:29 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
18:12:13 × tabemann_ quits (~tabemann@2600:1700:7990:24e0:b651:977a:44b1:1ec6) (Quit: Leaving)
18:19:26 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
18:20:19 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:21:43 mmhat joins (~mmh@p200300f1c7271778ee086bfffe095315.dip0.t-ipconnect.de)
18:23:08 × mmhat quits (~mmh@p200300f1c7271778ee086bfffe095315.dip0.t-ipconnect.de) (Client Quit)
18:26:20 derpyxdhs joins (~Thunderbi@user/derpyxdhs)
18:26:32 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
18:33:48 × destituion quits (~destituio@2a02:2121:655:c95b:a1ec:ac61:8d62:b83e) (Ping timeout: 260 seconds)
18:34:10 destituion joins (~destituio@2001:4644:c37:0:6086:64f4:a213:b80d)
18:42:27 Sgeo joins (~Sgeo@user/sgeo)
18:44:13 fun-safe-math joins (~fun-safe-@24.21.106.247)
18:45:49 peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com)
18:55:53 × Volt_ quits (~Volt_@c-73-47-181-152.hsd1.ma.comcast.net) (Ping timeout: 256 seconds)
19:27:38 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
19:28:10 × derpyxdhs quits (~Thunderbi@user/derpyxdhs) (Quit: derpyxdhs)
19:32:05 × mechap quits (~mechap@user/mechap) (Ping timeout: 240 seconds)
19:34:21 mechap joins (~mechap@user/mechap)
19:37:59 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
19:44:01 jinsun joins (~jinsun@user/jinsun)
19:56:21 × monochrom quits (~trebla@216.138.220.146) (Quit: ZNC 1.8.2+deb3.1 - https://znc.in)
19:57:32 hseg joins (~gesh@77.137.76.75)
19:59:03 monochrom joins (trebla@216.138.220.146)
20:00:58 <hseg> Hi, am building some packages for arch linux using stack. For some reason, stack build on a system that doesn't have a GHC installed errors out with 'Failed to determine machine word size', but if I first call stack setup it does work. Any ideas, or should I report?
20:02:45 × YuutaW quits (~YuutaW@mail.yuuta.moe) (Ping timeout: 256 seconds)
20:03:23 machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net)
20:04:29 YuutaW joins (~YuutaW@mail.yuuta.moe)
20:08:29 <glguy> Arch Linux being difficult to use for GHC development is a known issue
20:08:40 <haskellbridge> <s​m> hseg, do you want stack to install required GHCs for you (rather than doing it yourself, eg with ghcup ?) If so you may need to configure that, see the stack user guide
20:08:49 <glguy> If you're writing Haskell, and not just using package manager installed executables, you'll want to isolate yourself from it
20:13:02 <hseg> My situation is slightly weird, in that I'm both writing Haskell code and packaging haskell software for arch. Hence, I have a ghcup-vendored GHC+Cabal with which I write my code, and in parallel I have a distro-vendored stack that I package with (which is supposed to pick up system libraries). It's the latter that I'm having trouble with
20:13:44 <haskellbridge> <s​m> nice :)
20:14:31 <hseg> (in fact, I package all my haskell software as static builds to avoid the dynamic linking side of the problem. since they're builds of git HEAD, this shouldn't have the usual static linking problems (apart from bloat))
20:15:17 <haskellbridge> <s​m> I would guess the arch-packaged stack is configured to not install GHCs for you (though the error message sounds suboptimal)
20:15:58 <haskellbridge> <s​m> show us the whole output if you like
20:16:58 <hseg> Bumped stack version as recommended in repo (though it was a minor verbump, so am not expecting wonders) and am testing, will post log if I can reproduce
20:17:35 <hseg> Ironically, the package I'm testing this with is a static build of ghcup
20:21:39 agrosant joins (~agrosant@77.49.162.195.dsl.dyn.forthnet.gr)
20:26:54 <hololeap> I have a question about aeson: it seems like deriving FromJSON is able to automatically decode JSON { url: "http:/blah" } to a data type and put it in a field named "url" . what if "url" is used in different data types? would you have to manually create a FromJSON instance for each, or are there other tricks that can be used here?
20:29:26 <tomsmeding> hololeap: one option is putting the fields in question in a newtype, and putting the url-ish FromJSON instance on that newtype
20:32:59 × agrosant quits (~agrosant@77.49.162.195.dsl.dyn.forthnet.gr) (Ping timeout: 264 seconds)
20:34:10 <hololeap> I'm worried about name clashes with record syntax. I'm hoping it can handle different naming conventions on the record, i.e. you can have `data This = This { thisUrl :: Text } deriving FromJSON` and `data That = That { thatUrl :: Text } deriving FromJSON`, and both are automatically able to decode JSON fields named "url"
20:34:46 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
20:35:38 <hololeap> or maybe that's what you're addressing tomsmeding? it wasn't clear to me
20:35:49 <tomsmeding> hololeap: the idea would be to have `data This = This { thisUrl :: URL } deriving FromJSON` and `data That = { thatUrl :: URL } deriving FromJSON`
20:35:53 <tomsmeding> and give URL the proper FromJSON instance
20:36:04 <hseg> sm: So it failed despite the update. Log: https://0x0.st/HCDZ.txt
20:36:33 <hololeap> oh, ok I think I understand. so JSON would then automatically convert anything named "url" to a URL?
20:36:38 <hololeap> *aeson
20:36:54 <tomsmeding> no, you are the one who chooses which fields get interpreted as a URL
20:37:01 <tomsmeding> by not putting a Text there but a URL
20:37:07 <tomsmeding> which is newtype URL = URL Text
20:37:17 <tomsmeding> oh wait
20:37:22 <tomsmeding> that's not what you're asking
20:37:29 tomsmeding was blabbering
20:37:46 <hololeap> no worries, I'm struggling with being clear on this myself
20:38:49 <hololeap> I'm also brand new to aeson, except for a couple really simple use cases in the past
20:38:54 <tomsmeding> hololeap: are you looking for 'instance FromJSON This where parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = drop 4 }'?
20:39:29 <tomsmeding> sorry I was addressing the question (that you didn't ask) of how to use the same parser for fields in various data types
20:39:42 <hololeap> possibly, I haven't looked at the fieldLabelModifier function
20:39:47 <tomsmeding> as in, "I have an aeson parser for url strings and I have various fields in various data types where I want to use that parser"
20:40:07 <tomsmeding> to which one possible solution is, put that parser on a newtype ("URL") and use that newtype in those fields
20:40:22 <haskellbridge> <s​m> hseg: the "configure: error: Failed to determine machine word size. Does your toolchain actually work?" I am guessing comes from the previous "size of void" check. It might be a correct message, or it might need improving - I'd ask Mike Pilgrem in #haskell-stack:matrix.org
20:40:35 <hseg> OK, ty!
20:41:02 <hseg> wait, is that channel not bridged with IRC?
20:41:17 <haskellbridge> <s​m> no, you'll have to use a matrix client for that one
20:41:22 <tomsmeding> hseg sm: that looks very suspiciously like autotools 'configure' output
20:41:29 <hololeap> tomsmeding: that's definitely the section of the docs I need to study
20:41:31 <haskellbridge> <s​m> yup
20:41:31 <tomsmeding> even more because it says "configure"
20:41:41 <tomsmeding> and if so that output has zero to do with haskell
20:41:46 <hseg> yup -- presumably because stack is running make install on the ghc bindist
20:41:49 <haskellbridge> <s​m> hseg: the bigger issue is that you are asking stack to install a ghc for you, on arch. It's trying to download (fedora-ish) source and build stack. This seems very likely to fail and is probably not what you want to do
20:42:12 <tomsmeding> on arch, ghcup takes the fedora builds iirc
20:42:16 <hseg> ^
20:42:28 <haskellbridge> <s​m> shouldn't you be forcing it to use your arch-packaged ghc for this use case ?
20:42:48 <geekosaur> I'd need to see config.log from that but I don't know how you could get it. that said, stack really shouldn't be building it in this case, as previously said
20:43:05 <hseg> possibly, but the arch-packaged stack pulls in all of the dynamically linked libs, so I'd rather avoid that
20:43:21 <tomsmeding> why do you need to use arch-packaged stack but are fine using non-arch-packaged ghc?
20:43:23 <hseg> geekosaur: afaict, it's running make install on the bindist or somesuch
20:43:32 <tomsmeding> if you're building statically anyway, can't you just build with your favourite toolchain?
20:43:37 <geekosaur> why does it need to know the machine word size in that case?
20:43:45 <hseg> geekosaur: *shrug*
20:43:45 <tomsmeding> autotools (tm)
20:43:50 <geekosaur> (more specifically it's checking the size of (void *)
20:43:51 <tomsmeding> look at it looking for strings.h
20:44:04 <tomsmeding> and the 100 other things that ghc doesn't necessarily use
20:44:19 <hseg> tomsmeding: was papering over the fact that I'm actually using https://aur.archlinux.org/packages/stack-static
20:44:23 <haskellbridge> <s​m> (for anyone that missed it, note hseg's special use case at start of thread)
20:44:29 <geekosaur> I saw that
20:44:58 <tomsmeding> hseg: why do you need to use that stack?
20:45:09 <hseg> though in hindsight, probably should be using the standard stack
20:45:14 <geekosaur> I also saw that one autotools macro wasn't eexpanded, and it complained that it couldn't find libgmp.so.3 (which if I had to guess is why it's failing)
20:45:23 <tomsmeding> oh wait are you creating an AUR package
20:45:27 <hseg> yup
20:45:32 <tomsmeding> hence it needs to build on the user's machine
20:45:34 <tomsmeding> I see
20:45:37 <hseg> yeah
20:45:46 <hseg> (eg I package the static pandoc build)
20:46:08 tomsmeding is largely unaware of the AUR haskell landscape due to 'cabal install'ing everything
20:46:12 <hseg> Probably should be using the standard stack, given that that's what AUR users will be using
20:46:12 <geekosaur> that is, the executable it builds to test things is being linked against -lgmp and it's not found
20:46:40 <hseg> hrm. weird that it's looking for libgmp.so.3 *and* libgmp.so.10, though?
20:47:48 <tomsmeding> one possible debugging route is installing this ghc version with a "standard" stack from ghcup in the same verbose mode, and diffing the logs
20:48:27 <geekosaur> interesting
20:48:46 <tomsmeding> if that also fails that's one source of trouble (AUR stack-static) eliminated; if it doesn't, hopefully the diff teaches something
20:48:58 <tomsmeding> s/trouble/potential trouble/
20:49:00 <hseg> yeah. also testing arch-packaged stack vs aur stack-static
20:49:11 <haskellbridge> <s​m> I'm not sure you must use the arch-packaged stack, but ensuring your stack use an arch-packaged ghc sounds like it might be a good idea
20:49:15 agrosant joins (~agrosant@62.1.178.30.dsl.dyn.forthnet.gr)
20:49:35 <tomsmeding> sm: arch-packaged ghc is 9.0, this log looks like it's installing 9.6.4
20:50:08 <hseg> yeah -- another reason I prefer divorcing myself from arch packaging here -- it lags a bit behind (for understandable reasons)
20:50:11 <haskellbridge> <s​m> yes, so maybe hseg needs to build this pandoc package with arch's ghc 9.0
20:50:25 <tomsmeding> also I'm questioning how much arch user will like it to suddenly have a stack installation including a 2.5 GB ghc installation on their machine just because they installed an AUR package
20:50:29 <haskellbridge> <s​m> (or maybe that's not necessary)
20:50:53 <haskellbridge> <s​m> right, tomsmeding
20:51:10 <haskellbridge> <s​m> that is never a good look for pandoc or haskell :)
20:51:32 <tomsmeding> was this for pandoc or for ghcup, as hseg was suggesting earlier? If for the latter, that's even more ironic :p
20:51:37 <hseg> right... actually, the static builds only really make sense if someone is ditributing the binary packages, not if someone actually needs to pull in 2.5GB of stackage (and periodically empty it)
20:51:54 <hseg> Was testing it on the static ghcup package, yes
20:52:26 <tomsmeding> "I want to install a GHC so I install ghcup, so I get a free 2.5 GB GHC installation that I didn't ask for and I still don't have a ghc, only ghcup"
20:52:28 <tomsmeding> :p
20:52:34 <monochrom> On that tangent, I stopped asking students to install cabal-install on their school accounts because when you do "cabal update" the index file fill up like 90% of their disk quota. :)
20:52:43 <tomsmeding> lol
20:52:53 <haskellbridge> <s​m> ouch
20:53:11 <hseg> yeah... there's gotta be a better story here
20:54:10 <monochrom> It didn't help that back then the error message did not expose the "disk quota" message/code, so some students had "cabal update" successful, some others had mysterious errors, and there was almost no way to know why.
20:54:16 <tomsmeding> -rw-r--r-- 1 tom tom 857M Mar 13 23:23 01-index.tar
20:54:33 <tomsmeding> that be large indeed
20:54:48 <haskellbridge> <s​m> hseg: for easy install by arch users, you probably want to go with the grain of what's already in arch, no ?
20:55:15 <haskellbridge> <s​m> monochrom: ugh
20:55:28 <tomsmeding> hseg: what is the end-goal here? packaging ghcup, or something else?
20:55:35 × pwntips quits (~pwntips@user/pwntips) (Quit: pwntips)
20:55:43 <tomsmeding> because as packaging goals go, ghcup is a bit of a special one perhaps
20:55:57 <tomsmeding> (in terms of what's convenient and conventional, not in technical terms)
20:56:02 <int-e> sm: install ghc with arch; compile ghc from source using that, never use the system installed ghc for anything ever again (uninstall it)
20:56:41 <hseg> packages I'm packaging here: graphmod, hlint, ormolu, pandoc, pandoc-crossref, stack-clean-old
20:56:42 tomsmeding . o O ( download a ghcup binary )
20:57:12 <int-e> I know, I know. But then how do I get my slim ghc installation without profiling libs and documentation ;)
20:57:19 <tomsmeding> hseg: if they build using the arch system ghc, that's probably the best route
20:57:32 <tomsmeding> unless you want to set up a whole parallel haskell ecosystem in the AUR
20:57:33 <hseg> though of these, only graphmod and stack-clean-old aren't already packaged in-arch
20:57:43 <hseg> so gains are lesser here
20:58:29 <hseg> (otoh, the pandoc and pandoc-crossref builds are HEAD builds, to keep up with their development)
20:58:52 <tomsmeding> with the disclaimer that I haven't interacted with the haskell ecosystem in the AUR, and very little with the system's at that, I would expect any haskell-related package on arch, including the AUR, to use the arch system ghc infra
20:59:49 <tomsmeding> there are downsides to that infra, but at least then the "system packages" are consistent and you don't get multiple ghcs all over the place when you install different haskell-related packages
20:59:52 <int-e> The main problem is that every update breaks all your compiled programs because of a mix of frequent updates in AUR, Arch preferring shared libraries, and ghc not having any ABI compatibility for shared libraries between versions.
21:00:27 <geekosaur> with a side helping of "they forget to rebuild their own dependent packages sometimes"
21:00:34 <tomsmeding> and if you don't want that, you're necessarily setting up a parallel haskell ecosystem in the AUR, at which point I would suggest to actually set up a parallel ecosystem
21:00:46 <int-e> What I said above is what I've actually done when I used Arch. And the workflow is ancient, it predates both ghcup and stack.
21:01:07 <tomsmeding> sure :)
21:01:57 <int-e> ghcup is probably the sanest way these days
21:02:04 <hseg> tomsmeding: right, hence why I've dropped the pretense of managing the libraries pulled in by these packages and am only using this workflow for actual userspace tools
21:02:05 <tomsmeding> but setting up a parallel ecosystem risks triggering https://xkcd.com/927/
21:02:39 <tomsmeding> if you're building a static executable on the user's side, why not just distribute that executable?
21:02:48 Maeda joins (~Maeda@91-161-10-149.subs.proxad.net)
21:03:07 <tomsmeding> saves disk space because you need neither stack nor ghc in the build-time dependencies then :p
21:03:17 <monochrom> It's not that bad in practice. Networking effects usually cause convergence to at most 5 dominant attractors.
21:03:32 <hseg> because that would require setting up an entire repository, which is more responsibility than I care for
21:03:41 <int-e> (owned by 1-3 companies)
21:03:48 <tomsmeding> except that every attractor here will install a GHC on the user's machine, which is 5 * 2.5 = 12.5 GB
21:04:12 <int-e> tomsmeding: some will install several on a whim (stack)!
21:04:17 <tomsmeding> :D
21:04:23 <tomsmeding> and I'm not counting the compiled libraries
21:04:25 <monochrom> I think most users will just choose one. :)
21:04:36 × Maeda quits (~Maeda@91-161-10-149.subs.proxad.net) (Client Quit)
21:04:38 tomsmeding chooses 0
21:04:52 <int-e> tomsmeding: one reason why I still build my own ghcs: https://paste.debian.net/1310958/
21:04:53 <hseg> int-e: hence why I locally patch packages to all use a small number of resolvers
21:05:05 Maeda joins (~Maeda@91-161-10-149.subs.proxad.net)
21:05:37 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:05:47 <monochrom> OK, programmers who use Mac are more experienced in this. Do you install two parallel ecosystems, e.g., both xcode and homebrew?
21:05:59 <tomsmeding> int-e: that's just 3 more than I have :p
21:06:10 <int-e> tomsmeding: but look at the individual sizes
21:06:13 <geekosaur> "yes, because half the time you need xcode to build stuff in brew"
21:06:20 <tomsmeding> int-e: oh good point O.o
21:06:21 <monochrom> haha OK
21:06:25 <geekosaur> (thanks apple)
21:06:43 <tomsmeding> int-e: ghc got smaller in 9.6 -> 9.8!
21:06:50 <haskellbridge> <s​m> monochrom: I get most things from homebrew. I don't need xcode for anything (except a few more command line tools, always required on a new mac), but would use it if building mac or iphone guid apps
21:07:15 <monochrom> OK I'll weasel out with "O(12.5GB) = O(1)" and concede. >:)
21:07:23 <int-e> (that's without profiling libs and docs. I can rebuild with profiling libs when I need them)
21:08:04 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
21:08:42 <int-e> tomsmeding: Hmm I wonder whether the forced move to hadrian has anything to do with that.
21:09:22 <int-e> I had a 4.7G ghc-9.8.2 installation.... that was with profiling libs and debug symbols. (ouch)
21:10:12 <haskellbridge> <s​m> wow
21:11:02 <geekosaur> int-e, the hadrian move was in 9.4
21:11:25 <int-e> geekosaur: the make-based system worked until 9.6
21:13:56 <hseg> hrm. Am second-guessing my choices here, will reconsider later. In any case, My Workflow Has Previously Worked, so I will be reporting this.
21:17:34 × shapr quits (~user@c-24-218-186-89.hsd1.ma.comcast.net) (Quit: reboot)
21:21:01 ph88 joins (~ph88@2a02:8109:9e26:c800:f65f:251b:cec:1ffa)
21:22:44 <int-e> . o O ( https://xkcd.com/1172/ )
21:23:13 <hseg> yes, I know. hey, at least I'm not using it to cook dinner!
21:26:10 <haskellbridge> <s​m> Who Moved My Cheese, stack devs please fix :)
21:28:34 <monochrom> https://www.youtube.com/watch?v=y8iOz9KfJUg "Gaming PC & Pizza Warming Platform Prototype Construction"
21:36:09 L29Ah joins (~L29Ah@wikipedia/L29Ah)
21:36:14 CiaoSen joins (~Jura@2a05:5800:2d3:8f00:e6b9:7aff:fe80:3d03)
21:37:51 × tomboy64 quits (~tomboy64@user/tomboy64) (Read error: Connection reset by peer)
21:38:14 tomboy64 joins (~tomboy64@user/tomboy64)
21:38:29 <tomsmeding> is there a clever way to do `mconcat <$> traverse f xs`
21:39:31 <Rembane> :t foldMap
21:39:32 <lambdabot> (Foldable t, Monoid m) => (a -> m) -> t a -> m
21:39:57 <Rembane> foldMap was a red herring.
21:40:00 <tomsmeding> :t \f xs -> mconcat <$> traverse f xs
21:40:01 <lambdabot> (Monoid b, Applicative f) => (a -> f b) -> [a] -> f b
21:40:10 <tomsmeding> yeah I don't think foldMap works here
21:40:48 <tomsmeding> :t \f xs -> foldMap id <$> traverse f xs
21:40:49 <lambdabot> (Monoid b, Traversable t, Applicative f) => (a -> f b) -> t a -> f b
21:41:06 <tomsmeding> this makes it even more palpable that there must be a nicer way to do this
21:41:26 <tomsmeding> :t \f xs -> fold <$> traverse f xs -- okay duh
21:41:27 <lambdabot> (Monoid b, Traversable t, Applicative f) => (a -> f b) -> t a -> f b
21:42:30 <tomsmeding> hm, most of my uses of this pattern have the 'map' in there, but some are just `mconcat <$> sequence [...]`
21:43:29 <tomsmeding> @hoogle foldMapM
21:43:29 <lambdabot> Data.Conduit.Combinators foldMapM :: (Monad m, Monoid w) => (a -> m w) -> ConduitT a o m w
21:43:29 <lambdabot> Data.Conduit.List foldMapM :: (Monad m, Monoid b) => (a -> m b) -> ConduitT a o m b
21:43:29 <lambdabot> RIO.Prelude foldMapM :: (Monad m, Monoid w, Foldable t) => (a -> m w) -> t a -> m w
21:43:34 <Rembane> There is a fold in there somehow, the question is which one.
21:43:46 <Rembane> :t foldM
21:43:47 <lambdabot> (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b
21:44:08 <tomsmeding> there is no directionality here, so a fold{l,r,M} seems too strong
21:44:24 × tomboy64 quits (~tomboy64@user/tomboy64) (Read error: Connection reset by peer)
21:44:38 × zenstoic quits (uid461840@id-461840.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
21:44:41 tomboy64 joins (~tomboy64@user/tomboy64)
21:45:43 <monochrom> Perhaps \f xs -> getAp (foldMap (Ap . f) xs))
21:45:50 <monochrom> @type \f xs -> getAp (foldMap (Ap . f) xs))
21:45:51 <lambdabot> error: parse error on input ‘)’
21:45:55 <tomsmeding> funny how that RIO hit (and also a Relude hit if you hoogle online) has Monad in there, which is too strong (Applicative is sufficient)
21:45:56 <monochrom> @type \f xs -> getAp (foldMap (Ap . f) xs)
21:45:57 <lambdabot> forall k (t :: * -> *) (f :: k -> *) (a1 :: k) a2. (Foldable t, Monoid (Ap f a1)) => (a2 -> f a1) -> t a2 -> f a1
21:46:36 tabemann joins (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
21:46:55 <tomsmeding> right
21:47:07 <fedorafan> yushyin oh wow happy hour :D
21:47:09 <tomsmeding> (why does ghci not simplify that Monoid (Ap f a1) constraint)
21:47:13 <Rembane> That's a spicy type signature
21:47:14 <monochrom> Monoid (Ap f a1) can be obtained from (Monoid a1, Applicative f)
21:47:23 <Rembane> We need more weak fold
21:47:43 × peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
21:48:10 <tomsmeding> that's actually a good question, why does ghci not reduce that Monoid constraint
21:48:15 <tomsmeding> the instance is right there!
21:49:40 tomsmeding concedes that this does the thing but somehow doesn't feel happy with it
21:49:47 × tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 264 seconds)
21:49:50 <tomsmeding> but that's probably just me :p
21:50:00 <tomsmeding> I've never liked Ap-based stuff subjectively
21:52:33 johah joins (~Kayzen@p200300ca7f01db0062e546154c67a65f.dip0.t-ipconnect.de)
21:53:04 <johah> j
21:53:06 <johah> j
21:53:08 <johah> j
21:53:21 <tomsmeding> monochrom: do your magic
21:53:26 ChanServ sets mode +o monochrom
21:53:39 monochrom sets mode +b *!*@p200300ca7f01db0062e546154c67a65f.dip0.t-ipconnect.de
21:53:39 johah is kicked by monochrom (johah)
21:53:45 tomboy64 joins (~tomboy64@user/tomboy64)
21:54:22 <tomsmeding> what's in it for them
21:54:38 <tomsmeding> at least if they try to send you to a link with an exploit or so, I get the point
21:54:57 <Rembane> Bored fourteen year olds?
21:55:27 <tomsmeding> I guess I'd rather they spend their boredom on spamming 'j' than on doing drugs or something
21:55:49 monochrom sets mode -o monochrom
21:56:17 <monochrom> This is why humans are not more intelligent than LLMs.
21:56:36 zetef joins (~quassel@5.2.182.98)
21:56:45 <Rembane> LLMs are basically humans but condensed
21:57:23 <int-e> do you mean dense?
21:57:29 <Rembane> Yup
21:57:32 <Rembane> Neutronhumans
21:57:38 <monochrom> When asked "do you think there is intelligent life on exoplanets?", Stephen Hawking asked back "is there intelligent life on Earth?"
21:57:58 <tomsmeding> that is to say, "how do you define 'intelligent'"
21:58:11 <int-e> . o O ( didn't we have an off topic channel? )
21:58:17 <tomsmeding> at some point
21:58:23 <monochrom> OK sorry!
22:07:55 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
22:12:34 × germ quits (~quassel@user/mipsel3) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
22:20:47 × michalz quits (~michalz@185.246.207.217) (Quit: ZNC 1.8.2 - https://znc.in)
22:21:49 <ph88> is there a shorter form of this function? https://bpa.st/6BRA
22:21:58 stanrifkin_ parts (~stanrifki@p200300dbcf072400c0217626a9f38655.dip0.t-ipconnect.de) (Leaving)
22:22:24 <tomsmeding> b f = fmap (second f)
22:22:34 <tomsmeding> also fmap (fmap f)
22:22:43 <tomsmeding> oh wait no
22:23:30 <tomsmeding> ph88: why does f take an Eff argument :p
22:23:45 <hololeap> that looks like ExceptT (Eff es) to me
22:24:12 <tomsmeding> :t mapExceptT
22:24:13 <lambdabot> (m (Either e a) -> n (Either e' b)) -> ExceptT e m a -> ExceptT e' n b
22:24:43 <tomsmeding> hm no of course there's no method for this
22:25:01 <ph88> no map function available here https://hackage.haskell.org/package/effectful-core-2.3.0.1/docs/Effectful-Error-Static.html
22:25:06 <tomsmeding> because it's unclear what it's supposed to call f with -- calling it with 'pure' always, like in b, seems weird
22:25:20 <hololeap> isn't is just (=<<) using (ExceptT (Eff es)) ?
22:25:24 <tomsmeding> why does f take an Eff-typed argument in the first place if it's always going to be invoked like f (pure y) anyway
22:25:38 <hololeap> or yeah not 100% exactly but pretty close
22:25:50 <ph88> because f needs to run functions that are themselves in Eff
22:25:52 × dolio quits (~dolio@130.44.134.54) (Quit: ZNC 1.8.2 - https://znc.in)
22:26:07 <tomsmeding> hololeap: ~none of the 'ExceptT e m a' methods do anything with an 'm a'
22:26:17 <tomsmeding> and 'Eff es a' is 'm a' here
22:26:30 <tomsmeding> ph88: that's about the return type of f
22:26:34 <tomsmeding> why is f not b -> Eff es c
22:26:58 <tomsmeding> does f do anything with the fact that it's passed an _action_ and not a value?
22:27:07 <ph88> taken from https://bpa.st/JLIA
22:27:08 <tomsmeding> if so, it's probably not going to do the expected thing if you just pass it a pure value
22:27:41 <tomsmeding> ah so f is 'a' here, which indeed could have just taken a non-Eff argument
22:27:43 <tomsmeding> :p
22:27:56 <ph88> yes let me do that
22:27:59 × hseg quits (~gesh@77.137.76.75) (Quit: WeeChat 4.2.1)
22:29:28 <hololeap> Control.Arrow.right on Kleisli (Eff es) ?
22:29:30 × destituion quits (~destituio@2001:4644:c37:0:6086:64f4:a213:b80d) (Ping timeout: 268 seconds)
22:29:49 <hololeap> not quite either
22:29:56 <ph88> yes that's better already https://bpa.st/JVKA still a lot of refactoring to do. Is there a replacement for `b` ?
22:30:00 <tomsmeding> :t \f m -> m >>= traverse @(Either String) f
22:30:01 <lambdabot> error:
22:30:01 <lambdabot> Pattern syntax in expression context: traverse@(Either String)
22:30:01 <lambdabot> Did you mean to enable TypeApplications?
22:30:08 <ph88> i think just a single fmap right ?
22:30:09 <tomsmeding> % :t \f m -> m >>= traverse @(Either String) f
22:30:09 <yahb2> \f m -> m >>= traverse @(Either String) f ; :: Monad m => ; (a -> m b) -> m (Either String a) -> m (Either String b)
22:30:36 <tomsmeding> % :t traverse @(Either String)
22:30:36 <yahb2> traverse @(Either String) ; :: Applicative f => ; (a -> f b) -> Either String a -> f (Either String b)
22:30:38 <ph88> oh traverse, thanks
22:30:45 <tomsmeding> @quote traverse
22:30:45 <lambdabot> shachaf says: In order to get the last element of a list, you have to traverse the whole list. This can be an expensive, inefficient, unlazy operation, so you should develop a distaste for it like
22:30:45 <lambdabot> the rest of us.
22:30:52 <tomsmeding> meh
22:30:57 <tomsmeding> the answer is always traverse
22:31:21 dolio joins (~dolio@130.44.134.54)
22:31:38 <geekosaur> @quote traverse.*always
22:31:38 <lambdabot> No quotes match. My pet ferret can type better than you!
22:31:39 <ph88> replacing b with traverse is no good
22:31:48 <geekosaur> @quote always.*traverse
22:31:48 <lambdabot> No quotes match. I don't think I can be your friend on Facebook anymore.
22:31:48 <tomsmeding> ph88: it's >>= plus traverse
22:32:01 <tomsmeding> b f x = x >>= traverse f
22:32:20 <ph88> cool
22:32:43 <tomsmeding> run the 'Eff es (Either a b)' computation to an Either, *then* (>>=) traverse f through the Either
22:33:43 × dolio quits (~dolio@130.44.134.54) (Client Quit)
22:34:49 dolio joins (~dolio@130.44.134.54)
22:36:16 <hololeap> % :t \f x -> runExceptT $ lift . f =<< ExceptT x
22:36:17 <yahb2> <interactive>:1:9: error: ; Variable not in scope: runExceptT :: m0 b0 -> b1 ; ; <interactive>:1:22: error: ; Variable not in scope: lift :: b -> m0 b0 ; ; <interactive>:1:35: error: ; ...
22:36:17 × zetef quits (~quassel@5.2.182.98) (Ping timeout: 252 seconds)
22:36:28 <hololeap> % import Control.Monad.Except
22:36:28 <yahb2> <no output>
22:36:30 <hololeap> % :t \f x -> runExceptT $ lift . f =<< ExceptT x
22:36:30 <yahb2> \f x -> runExceptT $ lift . f =<< ExceptT x ; :: Monad m => (a1 -> m a2) -> m (Either e a1) -> m (Either e a2)
22:36:38 <hololeap> I wasn't too far off
22:38:17 <hololeap> :D
22:40:15 <ph88> i reduced it to this https://bpa.st/BCRA
22:41:34 <tomsmeding> that's quite a bit smaller :p
22:41:38 <ph88> :D :D :D
22:42:10 <ph88> sweat, blood and tears and finally converted a library to effectful .. what a learning experience as well
22:42:19 <ph88> that moment when all tests go green
22:42:46 <tomsmeding> :o
22:43:16 tomsmeding was already thinking, "that function looks like a test function, sounds like good progress"
22:44:44 <ph88> why does hlint put this as warning? https://bpa.st/KACA imo it's more clear with variables
22:45:04 <Rembane> Because hlint sometimes has bad taste.
22:45:54 <tomsmeding> hlint also says that `(\x -> ...) <$> some action` is better than `do x <- some action \n return ...`
22:46:02 <tomsmeding> well, no, the former is bloody unreadable, thank you
22:46:17 <tomsmeding> if that lambda function could then be eta-reduced to a short thing, sure
22:46:25 <tomsmeding> but it suggests it also if the result is terribly unwieldy
22:46:38 tomsmeding turns off hlint (and stan, these days) first thing when setting up hls
22:46:45 <hololeap> I usually run hlint every now and again just to see if it finds anything reasonable, but its word is not law. it's annoying most of the time
22:47:00 <tomsmeding> that is fair
22:47:11 <ph88> what is this suggestion about? https://bpa.st/VTNA
22:47:15 <hololeap> like maybe once a year :D
22:47:36 <tomsmeding> that it likes sections?
22:47:39 <hololeap> -Wall is much more informative
22:48:14 <tomsmeding> -Wall is imperative unless you can clearly and convincingly argue that you know better and select your warnings manually
22:48:49 <tomsmeding> ph88: that section suggestion could be something I'd do as well, depending on where it is in the code
22:49:12 <hololeap> what's everyone's favored library to write XML these days? I want to write an XSPF playlist
22:49:31 destituion joins (~destituio@2a02:2121:655:c95b:abcd:4b31:c415:3114)
22:49:40 shapr joins (~user@c-24-218-186-89.hsd1.ma.comcast.net)
22:49:43 <hololeap> https://wiki.videolan.org/XSPF/#Example_of_XSPF_with_VLC_extensions
22:49:47 <geekosaur> my favored way is to find some way to avoid XML /s
22:50:57 <ph88> tomsmeding, what are sections though and why is it the same to swap these two things around ?
22:51:12 <geekosaur> a section is a partially applied operator
22:51:14 <tomsmeding> :t (2 +)
22:51:15 <lambdabot> Num a => a -> a
22:51:20 <tomsmeding> > (2 +) 42
22:51:22 <lambdabot> 44
22:51:29 <tomsmeding> > (/ 2) 42
22:51:30 <lambdabot> 21.0
22:51:36 <tomsmeding> > (2 /) 42
22:51:37 <lambdabot> 4.7619047619047616e-2
22:51:49 <tomsmeding> :t ("hi" ++)
22:51:50 <lambdabot> [Char] -> [Char]
22:52:33 <tomsmeding> note that in the section notation (hlint's suggested replacement), '++' is _not_ in parentheses
22:53:11 <geekosaur> might be more correct to say it is, but the supplied parameter goes inside the parens
22:53:34 <tomsmeding> right
22:53:35 <geekosaur> so if you have (*), a partial application can be (2+) or (+2)
22:54:07 <tomsmeding> '(*)' is a partial application of '*' to 0 arguments; '(2 *)' is a partial application of '*' to one argument, its first
22:54:17 <tomsmeding> '(* 2)' is a partial application of '*' to one argument, its second
22:54:23 <tomsmeding> i.e. \x -> x * 2
22:54:28 × dolio quits (~dolio@130.44.134.54) (Ping timeout: 268 seconds)
22:54:37 <ph88> tomsmeding, with what you said that ++ is not in parenthesis i got it :D
22:56:59 <hololeap> this doesn't look terrible. it could use better documentation: https://hackage.haskell.org/package/xml-conduit-writer-0.1.1.5/docs/Text-XML-Writer.html
22:57:20 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
23:03:15 ChanServ sets mode +o monochrom
23:03:38 monochrom sets mode -b *!*@p200300ca7f01db0062e546154c67a65f.dip0.t-ipconnect.de
23:03:44 monochrom sets mode -o monochrom
23:04:37 <geekosaur> eh? didn't use litharge?
23:04:53 <geekosaur> (maybe I should have asked that in -ops)
23:05:55 × Axman6 quits (~Axman6@user/axman6) (Ping timeout: 258 seconds)
23:06:04 kalomus joins (~johah@p200300ca7f01db00dd803db2cb1b9831.dip0.t-ipconnect.de)
23:06:24 <kalomus> hello
23:06:41 Axman6 joins (~Axman6@user/axman6)
23:07:14 <stefan-__> hololeap: some time ago I did a comparison of various xml libraries: https://github.com/dozed/basic-xml-benchmark-hs/ .. might point you towards some libraries
23:11:03 <monochrom> geekosaur: I used litharge but I couldn't forgot the id.
23:11:11 dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
23:11:14 <hololeap> that one I linked hooks into xml-conduit (DOM) so I'm liking it even more now
23:11:18 <monochrom> err, s/I couldn't forgot/I I forgot/
23:12:08 fansly joins (~fansly@2404:c0:5c20::1653:a2a2)
23:12:14 × fansly quits (~fansly@2404:c0:5c20::1653:a2a2) (Client Quit)
23:12:30 fansly joins (~fansly@2404:c0:5c20::1653:a2a2)
23:13:07 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds)
23:13:28 × kalomus quits (~johah@p200300ca7f01db00dd803db2cb1b9831.dip0.t-ipconnect.de) (Quit: WeeChat 4.2.1)
23:14:00 TonyStone joins (~TonyStone@074-076-057-186.res.spectrum.com)
23:14:48 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
23:15:29 × fansly quits (~fansly@2404:c0:5c20::1653:a2a2) (Client Quit)
23:15:45 fansly joins (~fansly@2404:c0:5c20::1653:a2a2)
23:15:45 × fansly quits (~fansly@2404:c0:5c20::1653:a2a2) (Client Quit)
23:19:39 × tabemann quits (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Ping timeout: 260 seconds)
23:20:27 tabemann joins (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
23:25:23 dolio joins (~dolio@130.44.134.54)
23:27:13 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
23:30:23 × dolio quits (~dolio@130.44.134.54) (Ping timeout: 260 seconds)
23:32:25 dolio joins (~dolio@130.44.134.54)
23:35:17 × ph88 quits (~ph88@2a02:8109:9e26:c800:f65f:251b:cec:1ffa) (Quit: Leaving)
23:43:28 × hiredman quits (~hiredman@frontier1.downey.family) (Quit: Lost terminal)
23:56:02 × iteratee quits (~kyle@162.218.222.207) (Ping timeout: 252 seconds)

All times are in UTC on 2024-03-16.