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> | <sm> 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> | <sm> 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> | <sm> 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> | <sm> 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> | <sm> 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> | <sm> 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> | <sm> 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> | <sm> 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> | <sm> 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> | <sm> 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> | <sm> (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> | <sm> 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> | <sm> 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> | <sm> (or maybe that's not necessary) |
| 20:50:53 | <haskellbridge> | <sm> right, tomsmeding |
| 20:51:10 | <haskellbridge> | <sm> 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> | <sm> 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> | <sm> 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> | <sm> 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> | <sm> 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> | <sm> 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> | <sm> 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.