2022/04/08

2022-04-08 00:01:25 +0200hololeap_(~hololeap@user/hololeap)
2022-04-08 00:03:14 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2022-04-08 00:03:23 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 00:03:31 +0200vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2022-04-08 00:04:26 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-04-08 00:07:35 +0200Sgeo(~Sgeo@user/sgeo)
2022-04-08 00:09:17 +0200awschnap(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:09:29 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:10:14 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-04-08 00:15:42 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:15:57 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:16:04 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:16:22 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:16:29 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:16:45 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:16:53 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:17:08 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:17:15 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:17:30 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:17:37 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:17:50 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:17:58 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:18:14 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:18:21 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:18:35 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:18:42 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:18:56 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:19:03 +0200Guest2780(~Guest27@2601:281:d47f:1590::a504)
2022-04-08 00:19:04 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:19:19 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:19:26 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:19:41 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:19:47 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:20:01 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:20:08 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 246 seconds)
2022-04-08 00:20:09 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:20:23 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:20:31 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:20:45 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:20:52 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:21:06 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:21:14 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:21:28 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:21:36 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:21:51 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:21:58 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:22:12 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:22:20 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:22:35 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:22:41 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:22:56 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:23:03 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:23:17 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:23:25 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:23:32 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 272 seconds)
2022-04-08 00:23:39 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:23:46 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:24:02 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:24:09 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:24:23 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:24:31 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:24:46 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:24:52 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:25:07 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:25:14 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:25:23 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Ping timeout: 246 seconds)
2022-04-08 00:25:28 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:25:36 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:25:51 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:25:57 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:26:12 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:26:19 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:26:26 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-04-08 00:26:34 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:26:42 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:26:45 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-04-08 00:26:57 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:27:04 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:27:18 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:27:25 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:27:41 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:27:48 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:28:03 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:28:10 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:28:25 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:28:32 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:28:46 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:28:53 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:29:09 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:29:16 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:29:30 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:29:37 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:29:51 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:29:59 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:30:17 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:30:24 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:30:39 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:30:46 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:31:00 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:31:08 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:31:15 +0200haskellberryfinn(~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds)
2022-04-08 00:31:23 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:31:29 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:31:45 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:31:52 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:32:05 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:32:13 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:32:29 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:32:35 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:32:49 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:32:57 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:33:12 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 00:33:19 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 00:36:47 +0200 <Guest89> Inside a Stack project is there anywhere else I need to add `ghc-lib-parser` as a dependency other than inside the `package.yaml`? Other libraries work just fine.
2022-04-08 00:38:51 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 00:38:59 +0200zeenk(~zeenk@2a02:2f04:a313:d600:8d26:ec9f:3ff6:fc94) (Quit: Konversation terminated!)
2022-04-08 00:43:14 +0200dcoutts_(~duncan@host213-122-143-81.range213-122.btcentralplus.com)
2022-04-08 00:43:48 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 272 seconds)
2022-04-08 00:46:57 +0200Guest2780(~Guest27@2601:281:d47f:1590::a504) (Quit: Client closed)
2022-04-08 00:47:07 +0200Pickchea(~private@user/pickchea) (Ping timeout: 260 seconds)
2022-04-08 00:49:10 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 00:53:39 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 260 seconds)
2022-04-08 00:55:51 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
2022-04-08 01:01:38 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2022-04-08 01:02:01 +0200machinedgod(~machinedg@24.105.81.50)
2022-04-08 01:08:34 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 01:13:25 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 256 seconds)
2022-04-08 01:15:12 +0200bezmuth(~bezmuth@2a00:23c4:8a8f:5900:daa0:b5b1:cd63:bdb7)
2022-04-08 01:16:29 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net)
2022-04-08 01:18:30 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 01:19:13 +0200liz(~liz@host109-151-125-217.range109-151.btcentralplus.com) (Quit: Lost terminal)
2022-04-08 01:20:07 +0200xff0x(~xff0x@i121-117-52-147.s41.a013.ap.plala.or.jp) (Quit: xff0x)
2022-04-08 01:21:45 +0200xff0x(~xff0x@i121-117-52-147.s41.a013.ap.plala.or.jp)
2022-04-08 01:22:26 +0200xff0x(~xff0x@i121-117-52-147.s41.a013.ap.plala.or.jp) (Client Quit)
2022-04-08 01:23:03 +0200alphabeta(~kilolympu@31.205.200.235) (Ping timeout: 260 seconds)
2022-04-08 01:23:15 +0200pera(~pera@user/pera)
2022-04-08 01:23:42 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 272 seconds)
2022-04-08 01:24:00 +0200xff0x(~xff0x@i121-117-52-147.s41.a013.ap.plala.or.jp)
2022-04-08 01:24:02 +0200xff0x(~xff0x@i121-117-52-147.s41.a013.ap.plala.or.jp) (Client Quit)
2022-04-08 01:25:03 +0200xff0x(~xff0x@i121-117-52-147.s41.a013.ap.plala.or.jp)
2022-04-08 01:26:17 +0200xff0x(~xff0x@i121-117-52-147.s41.a013.ap.plala.or.jp) (Client Quit)
2022-04-08 01:26:29 +0200xff0x(~xff0x@i121-117-52-147.s41.a013.ap.plala.or.jp)
2022-04-08 01:26:53 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-04-08 01:27:20 +0200xff0x(~xff0x@i121-117-52-147.s41.a013.ap.plala.or.jp) (Client Quit)
2022-04-08 01:27:36 +0200xff0x(~xff0x@i121-117-52-147.s41.a013.ap.plala.or.jp)
2022-04-08 01:28:17 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net)
2022-04-08 01:29:51 +0200mncheck(~mncheck@193.224.205.254) (Ping timeout: 256 seconds)
2022-04-08 01:29:53 +0200 <dons> morning all
2022-04-08 01:29:54 +0200kilolympus(~kilolympu@31.205.200.235)
2022-04-08 01:31:55 +0200lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 260 seconds)
2022-04-08 01:31:57 +0200 <geekosaur> o/
2022-04-08 01:33:15 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2022-04-08 01:33:39 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 01:34:04 +0200chenqisu1(~chenqisu1@183.217.200.239)
2022-04-08 01:37:00 +0200alp_(~alp@user/alp) (Ping timeout: 240 seconds)
2022-04-08 01:37:32 +0200lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
2022-04-08 01:37:54 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 01:42:09 +0200xff0x(~xff0x@i121-117-52-147.s41.a013.ap.plala.or.jp) (Quit: xff0x)
2022-04-08 01:42:23 +0200xff0x(~xff0x@i121-117-52-147.s41.a013.ap.plala.or.jp)
2022-04-08 01:45:15 +0200liz(~liz@host109-151-125-217.range109-151.btcentralplus.com)
2022-04-08 01:46:27 +0200xff0x(~xff0x@i121-117-52-147.s41.a013.ap.plala.or.jp) (Client Quit)
2022-04-08 01:46:45 +0200xff0x(~xff0x@i121-117-52-147.s41.a013.ap.plala.or.jp)
2022-04-08 01:51:34 +0200ec(~ec@gateway/tor-sasl/ec) (Quit: ec)
2022-04-08 01:55:44 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 260 seconds)
2022-04-08 01:58:07 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2022-04-08 01:59:01 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 268 seconds)
2022-04-08 01:59:31 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 02:00:39 +0200frost(~frost@user/frost)
2022-04-08 02:08:25 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 248 seconds)
2022-04-08 02:10:15 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net)
2022-04-08 02:11:10 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2022-04-08 02:11:13 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 256 seconds)
2022-04-08 02:11:22 +0200Guest2753(~Guest27@2601:281:d47f:1590::a504)
2022-04-08 02:13:29 +0200gurkenglas(~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
2022-04-08 02:15:21 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 248 seconds)
2022-04-08 02:16:25 +0200DNH(~DNH@2a02:8108:1100:16d8:c8af:4307:df41:9668) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-04-08 02:16:38 +0200 <energizer> what is the relationship between ($) and (.) ?
2022-04-08 02:17:06 +0200 <geekosaur> they're completely different
2022-04-08 02:17:16 +0200 <dons> :t (.)
2022-04-08 02:17:17 +0200 <lambdabot> (b -> c) -> (a -> b) -> a -> c
2022-04-08 02:17:18 +0200 <dons> :t ($)
2022-04-08 02:17:19 +0200 <lambdabot> (a -> b) -> a -> b
2022-04-08 02:17:34 +0200 <geekosaur> (.) composes two functions. ($) is function application made visible (and lowest precedence instead of highest)
2022-04-08 02:17:54 +0200 <geekosaur> @src (.)
2022-04-08 02:17:54 +0200 <lambdabot> (f . g) x = f (g x)
2022-04-08 02:17:58 +0200 <geekosaur> @src($)
2022-04-08 02:17:59 +0200 <lambdabot> Unknown command, try @list
2022-04-08 02:18:02 +0200 <geekosaur> @src ($)
2022-04-08 02:18:02 +0200 <lambdabot> f $ x = f x
2022-04-08 02:18:33 +0200 <dons> $ is a haskell-specific precedence trick, so we can write things like mapM foo $ \x -> do ... long chunk -- without parens
2022-04-08 02:18:43 +0200 <dons> while (.) is fundamental function composition going back to lambda calculus :)
2022-04-08 02:18:49 +0200 <dons> no ($) in lambda calc
2022-04-08 02:19:09 +0200 <dons> ($) is a poke at lisp i think, from the 90s guys working on the parser :D
2022-04-08 02:19:45 +0200 <dons> (question: when was $ introduced ? is it in the pre-Haskell lazy languages?)
2022-04-08 02:20:02 +0200Guest2753(~Guest27@2601:281:d47f:1590::a504) (Ping timeout: 250 seconds)
2022-04-08 02:20:03 +0200 <dolio> In a way, ($) does go way back to the early lambda calculus era.
2022-04-08 02:20:11 +0200 <energizer> app is fundamental
2022-04-08 02:20:41 +0200 <dolio> It's similar to how people invented notational hacks for avoiding parentheses in logical sentences.
2022-04-08 02:21:00 +0200 <energizer> :info (.)
2022-04-08 02:21:26 +0200 <dons> infixr 0 $
2022-04-08 02:21:32 +0200 <dons> infixr 9 .
2022-04-08 02:21:51 +0200 <energizer> they should have algebraic properties, where are they?
2022-04-08 02:22:03 +0200 <dolio> Like, people would write `P ⊃ Q .⊃. P ⊃ Q` instead of `(P ⊃ Q) ⊃ (P ⊃ Q)`.
2022-04-08 02:22:11 +0200 <dons> -- | Application operator. This operator is redundant, since ordinary
2022-04-08 02:22:11 +0200 <dons> -- application @(f x)@ means the same as @(f '$' x)@. However, '$' has
2022-04-08 02:22:11 +0200 <dons> -- low, right-associative binding precedence, so it sometimes allows
2022-04-08 02:22:11 +0200 <dons> -- parentheses to be omitted; for example:
2022-04-08 02:22:11 +0200 <dons> --
2022-04-08 02:22:13 +0200 <dons> -- > f $ g $ h x = f (g (h x))
2022-04-08 02:22:18 +0200lagash(lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in)
2022-04-08 02:22:18 +0200feliix42(~felix@gibbs.uberspace.de) (Quit: ZNC 1.8.2 - https://znc.in)
2022-04-08 02:22:29 +0200 <dolio> And that's why you write `λx. body` instead of `λx(body)`.
2022-04-08 02:22:30 +0200feliix42(~felix@gibbs.uberspace.de)
2022-04-08 02:22:32 +0200 <dons> map ($ x) ys -- also useful sometimes
2022-04-08 02:22:34 +0200lagash(lagash@lagash.shelltalk.net)
2022-04-08 02:22:52 +0200 <dons> btw its amazing to me how different the type is now than 10-15 years ago, {-# INLINE ($) #-}
2022-04-08 02:22:55 +0200 <dons> ($) :: forall r a (b :: TYPE r). (a -> b) -> a -> b
2022-04-08 02:22:57 +0200 <dons> f $ x = f x
2022-04-08 02:23:03 +0200 <dolio> The . lowers the precedence. of the binder.
2022-04-08 02:23:15 +0200 <energizer> can you write $ in terms of . or vice versa?
2022-04-08 02:23:28 +0200 <dons> (.) :: (b -> c) -> (a -> b) -> a -> c
2022-04-08 02:23:29 +0200 <dons> (.) f g = \x -> f (g x)
2022-04-08 02:23:39 +0200 <dons> they're not really related.
2022-04-08 02:23:52 +0200 <dons> composition and application are different concepts
2022-04-08 02:23:57 +0200AWizzArd(~code@gehrels.uberspace.de) (Ping timeout: 250 seconds)
2022-04-08 02:24:43 +0200AWizzArd(~code@gehrels.uberspace.de)
2022-04-08 02:24:49 +0200Guest89(~Guest89@2a01:41e1:440f:2c00:f9ba:f616:34ce:27bb) (Quit: Client closed)
2022-04-08 02:24:55 +0200 <dons> (.) f g = \x -> f $ g x -- doesn't really help you , you still need the lambda to abstract. you just put some syntax in for the f (g x) application
2022-04-08 02:26:38 +0200rawley(~rawley@216-197-141-102.nbfr.hsdb.sasknet.sk.ca)
2022-04-08 02:27:21 +0200 <energizer> is "(.) f g = \x -> f $ g x" true?
2022-04-08 02:27:38 +0200 <dons> :t \x -> f $ g x
2022-04-08 02:27:39 +0200 <lambdabot> error:
2022-04-08 02:27:39 +0200 <lambdabot> • Could not deduce (Show t0) arising from a use of ‘f’
2022-04-08 02:27:39 +0200 <lambdabot> from the context: (Show t, FromExpr t1)
2022-04-08 02:27:53 +0200 <dons> :t \f g -> \x -> f $ g x
2022-04-08 02:27:54 +0200 <lambdabot> (t1 -> t2) -> (t3 -> t1) -> t3 -> t2
2022-04-08 02:27:59 +0200 <dons> :t (.)
2022-04-08 02:28:00 +0200 <lambdabot> (b -> c) -> (a -> b) -> a -> c
2022-04-08 02:28:13 +0200unyu(~pyon@user/pyon) (Quit: WeeChat 3.4.1)
2022-04-08 02:28:21 +0200 <dons> true.
2022-04-08 02:28:44 +0200 <energizer> so it is also true that: f . g = \x -> f $ g x
2022-04-08 02:29:05 +0200 <monochrom> Yes.
2022-04-08 02:29:21 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-04-08 02:29:21 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-04-08 02:29:21 +0200wroathe(~wroathe@user/wroathe)
2022-04-08 02:30:00 +0200 <monochrom> But let's go overboard with \x -> f $ (g $ x)
2022-04-08 02:30:28 +0200 <monochrom> In fact let's go mad scientist with ((.) $ f) $ g = \x -> f $ (g $ x), too.
2022-04-08 02:30:30 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-04-08 02:30:54 +0200 <dons> you can prove it by "equational reasoning". just subsitute the definition of ($) wherever you see a ($)
2022-04-08 02:30:57 +0200 <dons> f . g = \x -> f $ g x
2022-04-08 02:31:00 +0200 <dons> f . g = \x -> f (g x) -- by definition of ($), f $ x = f x
2022-04-08 02:31:09 +0200 <energizer> `f . g = \x -> f $ (g $ x)` i think is the answer i was lokoing for
2022-04-08 02:31:41 +0200zerozzz
2022-04-08 02:34:34 +0200 <energizer> is it possible to write the right-hand side point-free while retaining the same idea?
2022-04-08 02:34:49 +0200 <Axman6> energizer: not really the question that you asked, but while it's possible to write f $ g $ h $ x, we tend to opt for f . g . h $ x stylistically (though these days I generally prefer f . g $ h x)
2022-04-08 02:35:03 +0200 <monochrom> Yes. f . g = f . g
2022-04-08 02:35:21 +0200 <energizer> not the same idea, missing application
2022-04-08 02:35:35 +0200 <monochrom> This is serious. The whole point is that f . g is already the pointfree form of \x -> f (g x)
2022-04-08 02:36:20 +0200 <monochrom> Unless you decide to troll yourself and say no no you want to see flip (flip (flip (flip (.))) f g
2022-04-08 02:36:35 +0200 <Axman6> can (.) be written using ap?
2022-04-08 02:37:05 +0200Guest2755(~Guest27@2601:281:d47f:1590::a504)
2022-04-08 02:37:14 +0200 <Axman6> % :t ap @((->) r)
2022-04-08 02:37:14 +0200 <yahb> Axman6: ; <interactive>:1:11: error: Not in scope: type variable `r'
2022-04-08 02:37:52 +0200 <monochrom> Yes. (.) = fmap = \f -> ap (pure f) = ap . pure
2022-04-08 02:38:54 +0200 <energizer> can i say something like `f . g = ($ f) $ ($ g)`?
2022-04-08 02:39:08 +0200 <monochrom> Have you proved it?
2022-04-08 02:39:47 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-04-08 02:40:08 +0200 <energizer> i have proved that it isn't true by trying it
2022-04-08 02:40:49 +0200 <energizer> but someone who has more experience would say "you probably mean suchnsuch"
2022-04-08 02:41:21 +0200 <monochrom> Yes. You probably mean f . g
2022-04-08 02:41:34 +0200xff0x(~xff0x@i121-117-52-147.s41.a013.ap.plala.or.jp) (Ping timeout: 268 seconds)
2022-04-08 02:42:43 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 02:42:54 +0200 <hpc> energizer: unrelated to your questions about (.), but ($ x) is fairly interesting on its own
2022-04-08 02:42:57 +0200 <hpc> :t ($ x)
2022-04-08 02:42:58 +0200 <lambdabot> (Expr -> b) -> b
2022-04-08 02:43:18 +0200 <hpc> :t ($ undefined) -- maybe a better representation of its type
2022-04-08 02:43:20 +0200 <lambdabot> (a -> b) -> b
2022-04-08 02:43:30 +0200 <monochrom> Yes. [f x, g x, h x] = map ($ x) [f, g, h] is an application.
2022-04-08 02:43:51 +0200 <hpc> back in the day, lambdabot had extra-polymorphic definitions of some common prelude stuff
2022-04-08 02:43:54 +0200 <hpc> and one of them was
2022-04-08 02:44:22 +0200 <dons> ?pointful ($ f) $ ($ g)
2022-04-08 02:44:22 +0200 <lambdabot> (f g)
2022-04-08 02:44:33 +0200 <hpc> hmm, can't find it
2022-04-08 02:44:46 +0200 <hpc> but it had to do with fmap and ($)
2022-04-08 02:44:48 +0200 <hpc> :t fmap ($)
2022-04-08 02:44:50 +0200 <lambdabot> Functor f => f (a -> b) -> f (a -> b)
2022-04-08 02:44:51 +0200 <hpc> :t flip
2022-04-08 02:44:52 +0200 <lambdabot> (a -> b -> c) -> b -> a -> c
2022-04-08 02:44:53 +0200 <monochrom> You had (.) = fmap in mind?
2022-04-08 02:45:29 +0200 <hpc> @djinn (a -> f c) -> f (a -> c)
2022-04-08 02:45:29 +0200 <lambdabot> -- f cannot be realized.
2022-04-08 02:46:25 +0200sub0(~bc8147f2@cerf.good1.com)
2022-04-08 02:46:26 +0200 <hpc> or i just remembered, i can say "it's an exercise for the reader"
2022-04-08 02:47:35 +0200 <energizer> "(Expr -> b) -> b" is that Expr a meta-level term?
2022-04-08 02:47:52 +0200 <energizer> s/a/the type of a/
2022-04-08 02:48:03 +0200 <geekosaur> no, that's noise from simple-reflect
2022-04-08 02:48:06 +0200 <hpc> :t \fs x -> fmap ($x) fs -- this is it
2022-04-08 02:48:08 +0200 <lambdabot> Functor f => f (a -> b) -> a -> f b
2022-04-08 02:48:27 +0200 <sub0> does this work in newer versions of ghci? I don't know how to check in lambdabot
2022-04-08 02:48:28 +0200 <hpc> @let flip' fs x = fmap ($x) fs
2022-04-08 02:48:30 +0200 <lambdabot> Defined.
2022-04-08 02:48:32 +0200 <sub0> > read "2022-01-01 00:00:00.00 Central European Daylight Time" :: ZonedTime
2022-04-08 02:48:33 +0200 <lambdabot> error:
2022-04-08 02:48:33 +0200 <lambdabot> Not in scope: type constructor or class ‘ZonedTime’
2022-04-08 02:48:40 +0200 <hpc> > flip' [(*2), (+10)] 100
2022-04-08 02:48:40 +0200 <geekosaur> maybe we should be doing this in yahb so simple-reflect won't get confused with it
2022-04-08 02:48:42 +0200 <lambdabot> [200,110]
2022-04-08 02:49:09 +0200 <hpc> > flip' (/) 5 2
2022-04-08 02:49:11 +0200 <lambdabot> 0.4
2022-04-08 02:49:16 +0200 <hpc> and it still works like regular flip
2022-04-08 02:49:27 +0200 <hpc> also, \x -> ($ x) is pure for Cont
2022-04-08 02:49:32 +0200 <sub0> % read "2022-01-01 00:00:00.00 Central European Daylight Time" :: ZonedTime
2022-04-08 02:49:32 +0200 <yahb> sub0: *** Exception: Prelude.read: no parse
2022-04-08 02:49:41 +0200 <sub0> is this worth reporting as a bug? it works with some other timezones
2022-04-08 02:49:52 +0200 <dragestil> Hi just wondering whether there's the source of GHC docs I can download. here I only find html https://downloads.haskell.org/~ghc/latest/docs/
2022-04-08 02:50:36 +0200 <dons> i'm not sure how kosher the Read methods for zonedtime are. i suspect you need to use CEDT or something?
2022-04-08 02:50:51 +0200 <dons> worth checking whcih iso std that long form is permitted in
2022-04-08 02:51:06 +0200 <dons> there are timezone parser libs that do do the proper stuff, i'd be wary of using 'read'
2022-04-08 02:51:17 +0200 <sub0> dons, I have passed to read what show <$> getZonedTime returns
2022-04-08 02:51:25 +0200 <dons> interesting
2022-04-08 02:51:44 +0200 <sub0> % getZonedTime
2022-04-08 02:51:44 +0200 <yahb> sub0: 2022-04-08 00:51:44.504928224 UTC
2022-04-08 02:52:11 +0200 <sub0> % read "2022-04-08 00:51:44.504928224 UTC" :: ZonedTime
2022-04-08 02:52:11 +0200 <yahb> sub0: 2022-04-08 00:51:44.504928224 UTC
2022-04-08 02:52:14 +0200 <sub0> see, this works
2022-04-08 02:52:36 +0200 <hpc> you may want to just use https://hackage.haskell.org/package/time-1.13/docs/Data-Time-Format.html
2022-04-08 02:52:40 +0200 <hpc> ParseTime and FormatTime
2022-04-08 02:53:14 +0200 <hpc> also looks like this limitation is documented - https://hackage.haskell.org/package/time-1.13/docs/Data-Time-LocalTime.html#t:ZonedTime
2022-04-08 02:54:01 +0200 <sub0> I'll take a look. but still, it seems that Read instance of ZonedTime was meant to work with Show instance as input. it just doesn't work for all timezones
2022-04-08 02:55:43 +0200 <dons> Prelude Data.Time.LocalTime> read "2022-04-08 00:52:41 UTC" :: ZonedTime
2022-04-08 02:55:43 +0200 <dons> 2022-04-08 00:52:41 UTC
2022-04-08 02:55:43 +0200 <dons> Prelude Data.Time.LocalTime> read "2022-04-08 00:52:41 CDT" :: ZonedTime
2022-04-08 02:55:43 +0200 <dons> 2022-04-08 00:52:41 CDT
2022-04-08 02:55:43 +0200 <dons> Prelude Data.Time.LocalTime> read "2022-04-08 00:52:41 CET" :: ZonedTime
2022-04-08 02:55:45 +0200 <dons> *** Exception: Prelude.read: no parse
2022-04-08 02:55:47 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-04-08 02:55:48 +0200 <dons> i wonder if its a locode/locale/ thing?
2022-04-08 02:56:03 +0200 <hpc> look at the comment for the Read instance on link 2, it's a known issue
2022-04-08 02:56:21 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net)
2022-04-08 02:56:31 +0200 <dons> anyway, don't use read for this. its way to hairy/error prone. you need a TZ db and proper zonenifo suport or there will be bugs
2022-04-08 02:57:24 +0200 <hpc> in the source it deconstructs the ZonedTime into its LocalTime and TimeZone, and does read on each of those
2022-04-08 02:57:43 +0200 <hpc> LocalTime is parsed via "%Y-%m-%d %H:%M:%S%Q"
2022-04-08 02:57:59 +0200 <hpc> TimeZone is parsed via defaultLocale and "%Z"
2022-04-08 02:58:36 +0200Guest2755(~Guest27@2601:281:d47f:1590::a504) (Ping timeout: 250 seconds)
2022-04-08 02:58:39 +0200 <sub0> hpc ok I see. so they are aware of this, no need to report it
2022-04-08 02:59:00 +0200 <sub0> I'll check alternative methods
2022-04-08 02:59:15 +0200 <hpc> defaultTimeLocale is a record with a knownTimeZones field, https://hackage.haskell.org/package/time-1.13/docs/src/Data.Time.Format.Locale.html#defaultTimeLoc…
2022-04-08 02:59:24 +0200 <hpc> so maybe you could alter that locale based on tzdata
2022-04-08 02:59:30 +0200 <hpc> but then you're definitely not using read anyway
2022-04-08 02:59:54 +0200Guest53(~Guest53@190.192.80.102) (Ping timeout: 250 seconds)
2022-04-08 03:01:28 +0200 <hpc> even that list may end up changing soon
2022-04-08 03:01:39 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2022-04-08 03:06:58 +0200vysn(~vysn@user/vysn)
2022-04-08 03:07:11 +0200 <abastro[m]> IIRC time library is biased towards US and Western Europe
2022-04-08 03:07:17 +0200asocialblade(~qsl@static.16.62.161.5.clients.your-server.de)
2022-04-08 03:07:17 +0200asocialblade(~qsl@static.16.62.161.5.clients.your-server.de) (Changing host)
2022-04-08 03:07:17 +0200asocialblade(~qsl@user/asocialblade)
2022-04-08 03:07:58 +0200 <abastro[m]> Western Eu or entire Europe, I don't recall that part
2022-04-08 03:10:38 +0200asocialblade(~qsl@user/asocialblade) (Client Quit)
2022-04-08 03:10:45 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-04-08 03:11:16 +0200 <hpc> i would say the opposite, that Read instance masks errors that someone in the US won't notice until it's too late
2022-04-08 03:11:21 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 248 seconds)
2022-04-08 03:11:31 +0200 <dons> yes its a trap
2022-04-08 03:11:40 +0200 <dons> all bugs are calendar or timezone bugs ;)
2022-04-08 03:12:35 +0200sub0(~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Ping timeout))
2022-04-08 03:13:00 +0200sub0(~bc8147f2@cerf.good1.com)
2022-04-08 03:13:35 +0200 <Axman6> All bugs are written at some time, therefore all buggs are time bugs. QED
2022-04-08 03:13:37 +0200 <dolio> At least you can't put in 18 for the month and have it wrap around to the next year, or something.
2022-04-08 03:13:41 +0200 <Axman6> s/gg/g
2022-04-08 03:13:41 +0200 <sub0> not entire Europe as it does not work with at least CET/CEST
2022-04-08 03:13:43 +0200 <abastro[m]> Interesting
2022-04-08 03:13:51 +0200 <sub0> dons, what timezone parsing library were you thinking about? I found timezone-olson, which parses binary olson files, and tz, for time zone handling
2022-04-08 03:14:20 +0200 <abastro[m]> I wonder why time library comes with ghc
2022-04-08 03:14:27 +0200 <abastro[m]> AND it contains Read instance
2022-04-08 03:14:32 +0200 <abastro[m]> Like wh
2022-04-08 03:15:11 +0200xff0x(~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp)
2022-04-08 03:16:51 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-04-08 03:18:02 +0200 <Axman6> the time library is "Good Enough" for most people. though in the past I've used Thyme (which was made by someone where I was working)
2022-04-08 03:18:53 +0200 <Axman6> definitely worth looking into if you're working with time. it was written to be fast, we were using it in HFT
2022-04-08 03:19:00 +0200bezmuth(~bezmuth@2a00:23c4:8a8f:5900:daa0:b5b1:cd63:bdb7) (Ping timeout: 240 seconds)
2022-04-08 03:19:12 +0200 <abastro[m]> Good enough, eh
2022-04-08 03:19:28 +0200 <abastro[m]> Do ppl use the Read instance then?
2022-04-08 03:19:55 +0200 <Axman6> there's a whole parsing module for a reason
2022-04-08 03:20:52 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 272 seconds)
2022-04-08 03:21:15 +0200 <sub0> it gets even weirder.. any arbitrary string after time parses.
2022-04-08 03:21:39 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 268 seconds)
2022-04-08 03:21:41 +0200 <sub0> % read "2022-04-08 00:52:41 ASDF" :: ZonedTime
2022-04-08 03:21:41 +0200 <yahb> sub0: *** Exception: Prelude.read: no parse
2022-04-08 03:21:59 +0200 <sub0> hmm, it worked for me in ghci
2022-04-08 03:23:24 +0200 <Axman6> why are you using the read instance?
2022-04-08 03:23:47 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2022-04-08 03:23:58 +0200 <Axman6> like, https://hackage.haskell.org/package/time-1.12.1/docs/Data-Time-Format.html#g:2 exists for exactly this reason; there's no universally accepted time format (even if that should be ISO8601)
2022-04-08 03:25:03 +0200 <sub0> Axman6, because it worked for me in the past, with different timezones, and writing Show instance to a file and reading it back was the simplest
2022-04-08 03:25:12 +0200 <sub0> solution
2022-04-08 03:25:30 +0200 <sub0> if Read instance is broken/incomplete it probably shouldn't even exist
2022-04-08 03:25:48 +0200 <Axman6> how could it possibly be complete?
2022-04-08 03:26:05 +0200 <Axman6> if read.show isn't id, then something wrong, is that the problem?
2022-04-08 03:26:22 +0200 <sub0> yes. it can't read what show returns for some timezones
2022-04-08 03:26:41 +0200 <sub0> they documented this as well, so there doesn't seem to be any desire to fix it
2022-04-08 03:27:13 +0200 <sub0> Read instance handles only a handful of timezones
2022-04-08 03:28:19 +0200 <abastro[m]> I wonder why `Read` instance even exists here
2022-04-08 03:28:46 +0200abastro(~abab9579@220.75.216.63)
2022-04-08 03:29:15 +0200 <dolio> It's useful for really simple, non-serious programs.
2022-04-08 03:29:26 +0200 <Axman6> well, my advice is to use the Data.Time.Format module always when serialising times, otherwise you have no idea what you'll actually get. define the format once, and use it for Read and Show
2022-04-08 03:29:36 +0200 <sub0> both instances are odd. they give the impression that you can write them to human-readable files, and read them back, but it doesn't work for most timezones. and for debugging purposes, I'd prefer the view of haskell structure.
2022-04-08 03:29:39 +0200 <Axman6> yeah, it's useful when you need to `print time`
2022-04-08 03:30:49 +0200 <sub0> well I guess ZonedTime Show instance is more useful as it is, but TimeZone instance would be more useful as a haskell structure with all the fields
2022-04-08 03:31:27 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net)
2022-04-08 03:31:54 +0200 <abastro> `Show` instance is useful here, hands down
2022-04-08 03:31:58 +0200 <abastro> Though, `Read` instance?
2022-04-08 03:32:04 +0200 <abastro> Which is biased towards certain regions
2022-04-08 03:32:25 +0200 <Zemyla> Axman6: Shouldn't it be show.read = id? read.show gets rid of spaces and such.
2022-04-08 03:32:27 +0200 <sub0> yeah you're right, Read is the problematic instance.
2022-04-08 03:33:15 +0200 <Axman6> Zemyla: read.show :: Time -> Time, show.read :: String -> String, I meant the former
2022-04-08 03:33:41 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 246 seconds)
2022-04-08 03:34:04 +0200 <Zemyla> Oh, I got confused as which way the dots go.
2022-04-08 03:34:19 +0200 <Axman6> time is an open source project, I would hope that submitting a patch that makes read.show = id would be appreciated
2022-04-08 03:34:41 +0200 <Axman6> I have a feeling this probably hasn't been done because it is A Hard Problem(tm) to get right
2022-04-08 03:35:53 +0200 <abastro> I mean, what is the reason to have broken Read instance biased towards certain regions
2022-04-08 03:36:19 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2022-04-08 03:36:32 +0200 <dolio> Why answer questions if they're just going to get repeated over and over?
2022-04-08 03:39:51 +0200 <abastro> Well I see, I can conclude that ghc is biased for unfortunate reasons. Reveals as elitist language, somewhat
2022-04-08 03:40:16 +0200 <Axman6> or, perhaps, limited developer resources. got you do like to complain don't you
2022-04-08 03:40:20 +0200 <Axman6> god*
2022-04-08 03:41:15 +0200 <abastro> Tbh you know that this kind of topic could easily go very sensitive
2022-04-08 03:41:57 +0200 <sub0> not including a Read instance would require even less effort
2022-04-08 03:42:21 +0200 <Axman6> the default instances don't cover my timezone either, but I'm not complaining. if you want to fix it, submit a patch, if you're not willing to do anything but complain about it, you can do that elsewhere because it has negative productivity for the channel
2022-04-08 03:43:26 +0200 <Axman6> actually, even supporting read.show = id is impossible, because it can't be done without having access to all possible TimeZone definitions, including ones made up by the user
2022-04-08 03:43:43 +0200 <abastro> Inclusion/Exclusion of region-based stuff is bound to be sensitive. Btw I am not submitting the patch as clearly it would not easily be changing
2022-04-08 03:44:17 +0200 <abastro> Imho proper answer could have been "backwards compatibility", once you have it this way, it is hard to fix.
2022-04-08 03:45:00 +0200 <Axman6> IMO it should only support UTC and +HHMM formats, everything else is changable by factors outside our control
2022-04-08 03:45:34 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
2022-04-08 03:45:42 +0200 <abastro> I also wish it had that behavior, but we already have this now
2022-04-08 03:46:10 +0200 <monochrom> At some point "patches welcome" needs to be brought up again.
2022-04-08 03:46:41 +0200 <Axman6> I think I've brought it up three times now, but I guess complaining is much more fun than actually fixing problems
2022-04-08 03:46:48 +0200 <monochrom> Err oops it's already brought up.
2022-04-08 03:47:03 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net)
2022-04-08 03:47:23 +0200 <monochrom> OK I should stick to playing video games. :)
2022-04-08 03:47:28 +0200 <Axman6> https://github.com/haskell/time/issues/191
2022-04-08 03:47:53 +0200 <Axman6> "show @TimeZone isn't injective, that is, the output String doesn't represent all the information in the input TimeZone, so there's no way to make read @TimeZone a retraction."
2022-04-08 03:49:11 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-04-08 03:49:11 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-04-08 03:49:11 +0200wroathe(~wroathe@user/wroathe)
2022-04-08 03:49:31 +0200 <Axman6> the addition of some time zones is there as a convenience for, what was at the time, the majority of developers. I would bet that whoever added the US time zones was in the US, and the european zones were in europe. Perhaps if people in Asia and Africa also wanted that convenience, someone from those regions should add them.
2022-04-08 03:50:24 +0200 <Axman6> adding features to a library where you don't have the expertise in the specifics of those features is likely to introduce subtle, actual bugs.
2022-04-08 03:50:32 +0200 <abastro> https://github.com/haskell/time/issues/28
2022-04-08 03:51:18 +0200 <abastro> So it was indeed brought up, and was closed simply by adding the documentation.
2022-04-08 03:52:14 +0200 <abastro> Ofc it was brought up as issue long time ago, and it was closed as kind of "wontfix'
2022-04-08 03:52:18 +0200 <Axman6> yes, because, if you read the thread, doing this properly is impossible
2022-04-08 03:52:58 +0200 <abastro> There is no discussion as to why `Read` instance is not removed though.
2022-04-08 03:53:13 +0200 <redb> Hi got another noob question. I have a computation which produces a Result(Text) and I'd like to print it with writeFile. I tried fmap and liftM but neither worked, how should I unwrap this Result() wrapper assuming I don't care about errors?
2022-04-08 03:53:13 +0200 <abastro> Ofc with presence of `Read` instance, this cannot be properly done.
2022-04-08 03:53:30 +0200 <Axman6> so, if you have a solution, submit a patch, but claiming there's some global racist conspiracy when it's clear what the reasons for the behaviour are, helps absolutely no one
2022-04-08 03:54:20 +0200 <Axman6> redb: case myReadText of Err e -> error e; Ok theText -> TextIO.writeFile "fileName" theText
2022-04-08 03:54:41 +0200 <Axman6> uh, myResultText would have been a better name, getting discussions mixed up
2022-04-08 03:54:42 +0200 <abastro> It's not conspiracy, it is reality. It is neither about global something, it just implies the unfortunate reality that which regions get more exposure and inclusions while which doesn't.
2022-04-08 03:55:28 +0200 <abastro> One could also say this is not really racism after all. Just unfortunate inequality.
2022-04-08 03:55:29 +0200 <Axman6> abastro: sometimes, people have to learn to help themselves, but you're clearly yet to learn that. stop attributing malice where none exists
2022-04-08 03:56:01 +0200 <abastro> I am not saying that it's malice exposed in any sense. This is more implicit
2022-04-08 03:57:01 +0200 <Axman6> then fix it
2022-04-08 03:57:18 +0200 <abastro> As in most cases, such inequality is implicit and goes without intention, as typically subconscious perspective is underlining it.
2022-04-08 03:57:25 +0200bitmapper(uid464869@id-464869.lymington.irccloud.com)
2022-04-08 03:57:25 +0200 <abastro> Well I cannot fix people.
2022-04-08 03:59:20 +0200 <abastro> For practical aspect, removing Read instance or some of its behavior could also be massive breaking change
2022-04-08 03:59:33 +0200 <abastro> Which is likely not worthy to implement.
2022-04-08 04:01:06 +0200 <sub0> you could argue it would be a good breaking change. how many programmers use it without realizing it is broken for most timezones in the world
2022-04-08 04:01:54 +0200 <sub0> and that timezone Read instance is particularly egregious. reading just the timezone name and defaulting 0 as UTC offset..
2022-04-08 04:02:16 +0200 <abastro> sub0: Hmm, good point. ..wait, reading just timezone name and defaulting 0 as UTC offset?
2022-04-08 04:02:19 +0200pavonia(~user@user/siracusa)
2022-04-08 04:02:41 +0200 <sub0> according to this: https://github.com/haskell/time/issues/28
2022-04-08 04:03:06 +0200sub0(~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Error))
2022-04-08 04:03:31 +0200sub0(~bc8147f2@cerf.good1.com)
2022-04-08 04:03:36 +0200 <abastro> Oh, you meant for those not in `knownTimeZones`
2022-04-08 04:04:54 +0200 <abastro> Let me post an issue then!
2022-04-08 04:07:19 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 04:09:59 +0200alp_(~alp@user/alp)
2022-04-08 04:10:35 +0200ubert(~Thunderbi@p200300ecdf15885c99f35b3e45127b02.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-04-08 04:10:54 +0200ubert(~Thunderbi@p200300ecdf1588f2bfd6f68985df9e03.dip0.t-ipconnect.de)
2022-04-08 04:16:27 +0200 <sub0> adding UTC offset to the Show instance would be an easy fix. and Read instance could read both old and new format
2022-04-08 04:20:29 +0200 <sub0> this would only be required for timezones without built-in support. supported ones could remain as they are now
2022-04-08 04:21:46 +0200 <abastro> Thank you, let me summarize these suggestions in an issue
2022-04-08 04:22:29 +0200 <sub0> for complete support, timeZoneSummerOnly field should be added to Show instance as well in some form or another
2022-04-08 04:25:37 +0200AlexNoo_(~AlexNoo@94.233.241.39)
2022-04-08 04:27:15 +0200Alex_test(~al_test@178.34.163.99) (Ping timeout: 250 seconds)
2022-04-08 04:27:31 +0200alp_(~alp@user/alp) (Remote host closed the connection)
2022-04-08 04:27:50 +0200alp_(~alp@user/alp)
2022-04-08 04:28:07 +0200AlexZenon(~alzenon@178.34.163.99) (Ping timeout: 250 seconds)
2022-04-08 04:29:16 +0200AlexNoo(~AlexNoo@178.34.163.99) (Ping timeout: 272 seconds)
2022-04-08 04:29:46 +0200 <energizer> why does haskell distinguish between functions and constructors?
2022-04-08 04:30:01 +0200 <energizer> (it does, right?)
2022-04-08 04:31:03 +0200 <c_wraith> sort of. Constructors are functions, but not all functions are constructors
2022-04-08 04:31:10 +0200Alex_test(~al_test@94.233.241.39)
2022-04-08 04:31:27 +0200 <sub0> you can pattern match on Constructors
2022-04-08 04:31:30 +0200 <c_wraith> This is done because you can pattern match on a constructor, but pattern-matching on a function doesn't even mean anything
2022-04-08 04:31:53 +0200 <abastro> `PatternSynonyms` btw
2022-04-08 04:32:25 +0200AlexZenon(~alzenon@94.233.241.39)
2022-04-08 04:32:52 +0200 <c_wraith> (also, to clarify - constructors that take arguments are functions. nullary constructors simply exist)
2022-04-08 04:33:29 +0200benin(~benin@183.82.204.110) (Quit: The Lounge - https://thelounge.chat)
2022-04-08 04:35:07 +0200 <c_wraith> abastro: I assure you, Pattern synonyms are nothing like matching on a function. they're cool, but they have a much more precise definition than that. Also, they're still quite limited in comparison to what functions can do.
2022-04-08 04:35:51 +0200benin(~benin@183.82.204.110)
2022-04-08 04:36:45 +0200 <c_wraith> (for one, functions can take values as arguments. pattern synonyms can only take patterns, which they then match recursively)
2022-04-08 04:37:35 +0200 <abastro> Oh, I was simply suggesting that pattern synonym expaans from constructors
2022-04-08 04:37:38 +0200 <abastro> They are not functions, ofc
2022-04-08 04:39:03 +0200 <energizer> given an integer why can't i pattern match on (succ n)?
2022-04-08 04:39:16 +0200 <c_wraith> energizer: because that's not what pattern match syntax *means*
2022-04-08 04:39:30 +0200 <energizer> why doesnt it mean that?
2022-04-08 04:39:44 +0200 <c_wraith> to make implementing it trivial
2022-04-08 04:39:53 +0200alp_(~alp@user/alp) (Ping timeout: 248 seconds)
2022-04-08 04:40:01 +0200 <c_wraith> and understanding it when you read it, for that matter
2022-04-08 04:40:49 +0200 <c_wraith> A lowercase token in a pattern match always means "bind a value to this name"
2022-04-08 04:40:54 +0200 <abastro> Perhaps you can pattern match against `n+1`
2022-04-08 04:40:56 +0200 <c_wraith> always. 100% of the time
2022-04-08 04:41:05 +0200 <c_wraith> it really helps to not have special cases
2022-04-08 04:41:07 +0200 <abastro> sub0: https://github.com/haskell/time/issues/203 any further opinions?
2022-04-08 04:43:32 +0200 <sub0> abastro, I like it, but I'd put more emphasis on adding UTC offset and summerOnly to Show instance, as that is more likely to be accepted. it is completely backward compatible if Show/Read instances of supported timezones remain the same, and Read instance for other (most) timezones becomes useful
2022-04-08 04:44:10 +0200 <energizer> that's not how 'dearth' is supposed to be used
2022-04-08 04:44:54 +0200 <abastro> <del>It was there to emphasize that I am unfamiliar with English</del> Well yea I should fix it asap
2022-04-08 04:48:00 +0200benin(~benin@183.82.204.110) (Quit: The Lounge - https://thelounge.chat)
2022-04-08 04:48:18 +0200 <energizer> i guess the alternative would be to have a sigil for binders
2022-04-08 04:48:20 +0200 <c_wraith> energizer: generally when you want to compare an argument to the output of a function, guards are the way to go.
2022-04-08 04:49:05 +0200 <abastro> sub0: Hm, I do think problem statement should come first. I have put the suggestion of changing Show instance before removing Read instance suggestion.
2022-04-08 04:49:23 +0200 <abastro> Hopefully boldface there would attract more attention.
2022-04-08 04:49:53 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 256 seconds)
2022-04-08 04:50:47 +0200 <energizer> c_wraith: could that work?
2022-04-08 04:50:49 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-04-08 04:51:23 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 246 seconds)
2022-04-08 04:51:29 +0200 <c_wraith> energizer: sure. foo x | x == succ n = whatever
2022-04-08 04:52:35 +0200 <energizer> c_wraith: i mean | succ 'n -> 99
2022-04-08 04:52:59 +0200ellie(~ellie@user/ellie)
2022-04-08 04:53:00 +0200benin(~benin@183.82.204.110)
2022-04-08 04:53:10 +0200 <c_wraith> a guard needs to have type Bool
2022-04-08 04:54:15 +0200 <sub0> abastro looks good.can you paste the link to the issue when you post it
2022-04-08 04:54:17 +0200 <c_wraith> (there are also pattern guards, but they won't help you here. they mostly exist to pattern-match on the output of functions of the input)
2022-04-08 04:54:52 +0200 <abastro> Well, the issue is already posted there!
2022-04-08 04:55:29 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2022-04-08 04:55:40 +0200 <sub0> oh, heh! for some reason I thought that was your own github page
2022-04-08 04:56:40 +0200 <abastro> XD
2022-04-08 05:11:15 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-04-08 05:12:04 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net)
2022-04-08 05:13:13 +0200 <energizer> how come (.) and ($) aren't in any type classes?
2022-04-08 05:15:07 +0200 <energizer> maybe that's only for types and those aren't types?
2022-04-08 05:15:47 +0200 <abastro> Lots of functions are not in any typeclasses
2022-04-08 05:16:03 +0200 <energizer> are some functions in any type classes?
2022-04-08 05:16:07 +0200 <dons> they're functions. they appear in instances in some classes. they'er not abstracted themselves (there are other things that are more generalized versions of (.) for examlpe)
2022-04-08 05:16:10 +0200 <dons> instance MonadReader r ((->) r) where ask = id local f m = m . f
2022-04-08 05:16:25 +0200 <dons> e.g. (.) is the implementation of 'ask' in the Reader monad for (-> r) types
2022-04-08 05:16:26 +0200mbuf(~Shakthi@122.164.195.88)
2022-04-08 05:16:45 +0200Midjak(~Midjak@10.233.130.77.rev.sfr.net) (Quit: This computer has gone to sleep)
2022-04-08 05:17:05 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2022-04-08 05:18:21 +0200 <dons> there are generalized forms of composition and application that have their own names, where (.) or ($) are just specific forms. see e.g. https://hackage.haskell.org/package/base-4.16.1.0/docs/Control-Applicative.html#t:Applicative
2022-04-08 05:19:10 +0200 <dons> i.e. more generic $ , https://hackage.haskell.org/package/base-4.16.1.0/docs/Prelude.html#v:-60--36--62-
2022-04-08 05:20:02 +0200 <energizer> and <*> is more generic (.) ?
2022-04-08 05:20:34 +0200benin(~benin@183.82.204.110) (Quit: The Lounge - https://thelounge.chat)
2022-04-08 05:20:37 +0200 <dons> that's a bit different, if you look at the types
2022-04-08 05:20:39 +0200 <dons> :t (.)
2022-04-08 05:20:40 +0200 <lambdabot> (b -> c) -> (a -> b) -> a -> c
2022-04-08 05:20:43 +0200 <dons> :t (<*>)
2022-04-08 05:20:44 +0200 <lambdabot> Applicative f => f (a -> b) -> f a -> f b
2022-04-08 05:21:10 +0200frost(~frost@user/frost) (Ping timeout: 250 seconds)
2022-04-08 05:21:28 +0200 <dons> i guess my point is that sometimes these ideas, like composition or application, have more generic forms. and those get put into libraries and other type classes. the core of the language is mostly about combining simple functions to build programs
2022-04-08 05:21:54 +0200fef(~thedawn@user/thedawn)
2022-04-08 05:23:50 +0200 <energizer> maybe the more generic (.) is (,) ?
2022-04-08 05:23:51 +0200redb(~nmh@136.49.49.211) (Ping timeout: 260 seconds)
2022-04-08 05:24:10 +0200 <dons> :t (,)
2022-04-08 05:24:11 +0200 <lambdabot> a -> b -> (a, b)
2022-04-08 05:24:24 +0200 <energizer> :i (,)
2022-04-08 05:24:27 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 256 seconds)
2022-04-08 05:24:31 +0200 <energizer> it seems weird that (,) is in a bunch of classes but (.) isn't
2022-04-08 05:25:34 +0200 <dons> to figure this stuff out, look at the types . try to undertand what the type says. "a -> b -> (a,b)" is really doing something very different to (b -> c) -> (a -> b) -> a -> c
2022-04-08 05:25:37 +0200redb(~nmh@136.49.49.211)
2022-04-08 05:25:49 +0200 <dons> completely different lego pieces
2022-04-08 05:27:26 +0200abastro(~abab9579@220.75.216.63) (Ping timeout: 246 seconds)
2022-04-08 05:27:53 +0200 <energizer> Prelude> (times10 . plus3 . plus7) 5 -> 150; Prelude> ((times10 . plus3) . plus7) 5 -> 150
2022-04-08 05:28:06 +0200 <energizer> (.) should have Monoid
2022-04-08 05:30:07 +0200redb(~nmh@136.49.49.211) (Ping timeout: 256 seconds)
2022-04-08 05:30:11 +0200 <energizer> ...or, what is it that i mean to say
2022-04-08 05:30:36 +0200redb(~nmh@136.49.49.211)
2022-04-08 05:30:58 +0200 <zzz> composition is associative?
2022-04-08 05:32:36 +0200 <zzz> also maybe you meant (times10 . (plus3 . plus7)) 5
2022-04-08 05:32:40 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2022-04-08 05:32:43 +0200 <zzz> both your examples are equivalent
2022-04-08 05:32:44 +0200 <abastro[m]> :i Endo
2022-04-08 05:33:07 +0200 <abastro[m]> Hm
2022-04-08 05:33:39 +0200 <abastro[m]> @ :i Endo
2022-04-08 05:33:57 +0200 <abastro[m]> % :i Endo
2022-04-08 05:33:57 +0200 <yahb> abastro[m]: type Endo :: * -> *; newtype Endo a = Endo {appEndo :: a -> a}; -- Defined in `base-4.15.0.0:Data.Semigroup.Internal'; instance Monoid (Endo a) -- Defined in `base-4.15.0.0:Data.Semigroup.Internal'; instance Semigroup (Endo a) -- Defined in `base-4.15.0.0:Data.Semigroup.Internal'; instance (t ~ Endo b) => Rewrapped (Endo a) t -- Defined in `Control.Lens.Wrapped'; instance Wrapped (Endo a) -- Defined
2022-04-08 05:34:05 +0200 <abastro[m]> Finally
2022-04-08 05:35:28 +0200zaquest(~notzaques@5.130.79.72) (Ping timeout: 268 seconds)
2022-04-08 05:37:33 +0200xkuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2022-04-08 05:37:46 +0200 <energizer> is it possible to say `instance Monoid $ where`
2022-04-08 05:37:48 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-04-08 05:38:04 +0200 <zzz> no
2022-04-08 05:38:17 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 246 seconds)
2022-04-08 05:38:25 +0200 <zzz> $ is not a type
2022-04-08 05:39:12 +0200coot(~coot@213.134.190.95)
2022-04-08 05:43:05 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 252 seconds)
2022-04-08 05:44:24 +0200deadmarshal_(~deadmarsh@95.38.116.104)
2022-04-08 05:44:31 +0200rawley(~rawley@216-197-141-102.nbfr.hsdb.sasknet.sk.ca) (Remote host closed the connection)
2022-04-08 05:44:51 +0200rawley(~rawley@216-197-141-102.nbfr.hsdb.sasknet.sk.ca)
2022-04-08 05:46:21 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 246 seconds)
2022-04-08 05:46:26 +0200zaquest(~notzaques@5.130.79.72)
2022-04-08 05:46:33 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 248 seconds)
2022-04-08 05:50:10 +0200 <dsal> energizer: what are you trying to do with that?
2022-04-08 05:50:37 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-04-08 05:51:24 +0200mvk(~mvk@2607:fea8:5ce3:8500::9d5a) (Ping timeout: 240 seconds)
2022-04-08 05:51:28 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 05:52:38 +0200rawley(~rawley@216-197-141-102.nbfr.hsdb.sasknet.sk.ca) (Ping timeout: 246 seconds)
2022-04-08 05:53:11 +0200 <sub0> abastro, btw, I am not sure that the instance is unlawful. AFAIK there are no laws for Read instance, or law requiring that read . show = id, even though it is desirable
2022-04-08 05:53:49 +0200 <Axman6> energizer: you seem to be confused about the difference between types and values. (.) is a value. (,) uis both a type, which has kind Type -> Type -> Type, and a value, which is a function with type a -> b -> (a,b)
2022-04-08 05:53:55 +0200 <sub0> someone correct me if I'm wrong
2022-04-08 05:53:58 +0200 <jackdk> > :i Endo -- abastro[m]: if you prefer lambdabot
2022-04-08 05:54:00 +0200 <lambdabot> <hint>:1:1: error: parse error on input ‘:’
2022-04-08 05:54:06 +0200 <jackdk> =(
2022-04-08 05:54:08 +0200 <Axman6> there is no such thing as (.) at the type level (at least not with that syntax, arguable Compose does that
2022-04-08 05:55:19 +0200 <Axman6> type classes take types as arguments, and ($) and (.) are not types, but they do _have_ types, namely (b -> c) -> (a -> b) -> (a -> c) and (a -> b) -> a -> b
2022-04-08 05:55:54 +0200 <Axman6> It's also not really true to say that (.) isn't in any type classes, because it is the implementation of fmap for the function Functor
2022-04-08 05:56:00 +0200 <Axman6> :t fmap
2022-04-08 05:56:01 +0200 <lambdabot> Functor f => (a -> b) -> f a -> f b
2022-04-08 05:56:14 +0200 <Axman6> % :t fmap @((->) r)
2022-04-08 05:56:14 +0200 <yahb> Axman6: ; <interactive>:1:13: error: Not in scope: type variable `r'
2022-04-08 05:56:18 +0200 <Axman6> % :t fmap @((->) Int)
2022-04-08 05:56:18 +0200 <yahb> Axman6: (a -> b) -> (Int -> a) -> Int -> b
2022-04-08 05:57:13 +0200 <Axman6> it is also in the Category class, which defines a function called (.) (of which Prelude.(.) is the implementation of the instance for (->))
2022-04-08 05:57:31 +0200 <Axman6> % :t Control.Category.(.)
2022-04-08 05:57:31 +0200 <yahb> Axman6: ; <interactive>:1:1: error:; Not in scope: data constructor `Control.Category'; No module named `Control' is imported.
2022-04-08 05:57:43 +0200 <Axman6> @hoogle (.)
2022-04-08 05:57:43 +0200 <lambdabot> Prelude (.) :: (b -> c) -> (a -> b) -> a -> c
2022-04-08 05:57:43 +0200 <lambdabot> Data.Function (.) :: (b -> c) -> (a -> b) -> a -> c
2022-04-08 05:57:43 +0200 <lambdabot> Control.Category (.) :: Category cat => cat b c -> cat a b -> cat a c
2022-04-08 06:02:01 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-04-08 06:02:18 +0200califax(~califax@user/califx)
2022-04-08 06:02:25 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 06:03:09 +0200benin(~benin@183.82.204.110)
2022-04-08 06:07:18 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-04-08 06:07:31 +0200califax(~califax@user/califx)
2022-04-08 06:12:16 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2022-04-08 06:12:28 +0200kaph_(~kaph@dynamic-adsl-78-12-162-98.clienti.tiscali.it)
2022-04-08 06:14:42 +0200kaph(~kaph@dynamic-adsl-78-12-162-98.clienti.tiscali.it) (Ping timeout: 246 seconds)
2022-04-08 06:14:44 +0200Topsi(~Tobias@dyndsl-095-033-089-233.ewe-ip-backbone.de)
2022-04-08 06:16:10 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net)
2022-04-08 06:16:39 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net)
2022-04-08 06:18:47 +0200 <abastro[m]> So lambdabot dislikes :i
2022-04-08 06:19:04 +0200 <Axman6> lambdabot doesn't really have :info
2022-04-08 06:19:14 +0200 <Axman6> @info Bool
2022-04-08 06:19:14 +0200 <lambdabot> Bool
2022-04-08 06:19:46 +0200 <Axman6> it actually in that case attempts to correct your typo of "@echo"
2022-04-08 06:19:56 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Ping timeout: 246 seconds)
2022-04-08 06:20:45 +0200 <abastro[m]> Lambdabot needs updates perhaps
2022-04-08 06:21:02 +0200 <Axman6> we already have yahb
2022-04-08 06:21:15 +0200 <abastro[m]> Hm
2022-04-08 06:36:23 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 246 seconds)
2022-04-08 06:39:21 +0200deadmarshal_(~deadmarsh@95.38.116.104) (Ping timeout: 248 seconds)
2022-04-08 06:41:00 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 272 seconds)
2022-04-08 06:41:58 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 06:42:20 +0200 <vaibhavsagar[m]> does anyone have a link to the most recent ghc proposal for multiple case alternatives in a single clause?
2022-04-08 06:43:15 +0200 <vaibhavsagar[m]> I wouldn't mind the lack of this feature so much if the pattern coverage checker could handle it correctly
2022-04-08 06:45:30 +0200 <Axman6> like case foo of (Left x | Right x) -> x?
2022-04-08 06:45:41 +0200 <vaibhavsagar[m]> yeah
2022-04-08 06:46:32 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 246 seconds)
2022-04-08 06:46:53 +0200 <vaibhavsagar[m]> the pattern match coverage checker as of 8.10 complains when you do case x of y | y == AltA || y == AltB || y == AltC -> someValue even when all cases are handled
2022-04-08 06:47:12 +0200 <vaibhavsagar[m]> maybe 9.0 onwards are better here after all the Lower Your Guards stuff
2022-04-08 06:47:42 +0200 <abastro[m]> Well why would you have such function
2022-04-08 06:47:46 +0200 <abastro[m]> What would be the reasoning?
2022-04-08 06:48:01 +0200 <vaibhavsagar[m]> multiple cases are no-ops
2022-04-08 06:48:48 +0200 <vaibhavsagar[m]> and it's IMO better to handle all the cases than use a wildcard pattern match, which would hide problems when the data type is extended
2022-04-08 06:49:04 +0200 <abastro[m]> Ehh
2022-04-08 06:49:25 +0200 <vaibhavsagar[m]> my personal suggestion was to duplicate the code and have the same RHS for each alternative
2022-04-08 06:49:34 +0200 <abastro[m]> You need to design your datatype to avoid such duplicate cases
2022-04-08 06:49:37 +0200 <vaibhavsagar[m]> no, it's not that simple
2022-04-08 06:49:52 +0200 <abastro[m]> Also iirc most or patterns in many languages does not allow binders on both branches
2022-04-08 06:50:56 +0200 <vaibhavsagar[m]> https://wiki.haskell.org/MultiCase is a long-standing feature request
2022-04-08 06:52:00 +0200 <vaibhavsagar[m]> oh I see what you mean about the binders
2022-04-08 06:52:06 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 06:52:09 +0200 <vaibhavsagar[m]> that's totally fine for my use case here
2022-04-08 06:52:24 +0200 <abastro[m]> Long-standing feature request, that sounds like there are multitude of reasons why it is not yet accepted
2022-04-08 06:52:30 +0200 <vaibhavsagar[m]> not really
2022-04-08 06:52:35 +0200 <abastro[m]> That is, it is a bad idea for many reasons
2022-04-08 06:52:46 +0200 <vaibhavsagar[m]> the discussion I remember seeing was basically that nobody could be bothered to implement it
2022-04-08 06:52:46 +0200 <dibblego> use a traversal
2022-04-08 06:53:09 +0200 <vaibhavsagar[m]> I don't see how a traversal would help here
2022-04-08 06:53:11 +0200 <abastro[m]> Yea, nobody bothers because it is not really necessary or convenient
2022-04-08 06:53:34 +0200 <abastro[m]> When even LambdaCase and MultiWayIf is implemented
2022-04-08 06:55:18 +0200 <monochrom> No no, @info is corrected to:
2022-04-08 06:55:27 +0200 <vaibhavsagar[m]> also the syntax is confusing
2022-04-08 06:55:29 +0200 <monochrom> @info do { x <- foo; bar x; }
2022-04-08 06:55:30 +0200 <lambdabot> foo >>= \ x -> bar x
2022-04-08 06:55:33 +0200 <vaibhavsagar[m]> i.e. what the syntax should be
2022-04-08 06:55:37 +0200 <abastro[m]> Wdym syntax is confusing
2022-04-08 06:56:11 +0200 <vaibhavsagar[m]> whether it should be a pipe (already used), a comma (already used), some other combination of characters that is less ambiguous (unknown)
2022-04-08 06:56:28 +0200 <dibblego> vaibhavsagar[m]: https://gist.github.com/tonymorris/6fcd16b4e3dc7b9abc071056a0417d4b
2022-04-08 06:56:52 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 268 seconds)
2022-04-08 06:57:49 +0200 <abastro[m]> Oh right, optics are useful here too
2022-04-08 06:58:00 +0200 <abastro[m]> Now that obviates need of Or patterns
2022-04-08 06:58:02 +0200 <vaibhavsagar[m]> oh cool
2022-04-08 06:58:24 +0200 <vaibhavsagar[m]> we probably don't want to use Lens in this codebase though
2022-04-08 06:58:34 +0200 <dibblego> then why get out of bed?
2022-04-08 06:58:50 +0200 <abastro[m]> Hahahaha
2022-04-08 06:58:58 +0200 <dibblego> I'm just kidding; that's ^^ what I would do, regardless of any fancy syntax
2022-04-08 06:59:06 +0200 <dibblego> and I wouldn't write code without lens
2022-04-08 06:59:13 +0200 <abastro[m]> Well if you dislike lens, you could use optics
2022-04-08 06:59:22 +0200 <sm> what's this.. 24 hours later and it's still about lens... :)
2022-04-08 06:59:35 +0200 <abastro[m]> Lmao we have gone through full circle
2022-04-08 06:59:43 +0200 <abastro[m]> But this time lens is a good guy
2022-04-08 06:59:48 +0200 <monochrom> I couldn't sleep so I got out of bed.
2022-04-08 06:59:55 +0200 <abastro[m]> Oh no
2022-04-08 07:00:13 +0200 <dibblego> I don't mean lens specifically, more like, "a prelude like it's the 2000s"
2022-04-08 07:00:23 +0200 <geekosaur> at least we're not still trying to derive (.) from ($)
2022-04-08 07:00:27 +0200cdman(~dcm@user/dmc/x-4369397)
2022-04-08 07:00:42 +0200geekosaurcouldn't sleep either. will pay for this tomorrow…
2022-04-08 07:02:39 +0200Topsi1(~Tobias@dyndsl-095-033-091-154.ewe-ip-backbone.de)
2022-04-08 07:02:41 +0200 <monochrom> Bed is for reading. Desk is for sleeping. Work or school is for IRC.
2022-04-08 07:03:02 +0200 <monochrom> The ideal work-life balance >:)
2022-04-08 07:03:07 +0200 <abastro[m]> >.>
2022-04-08 07:03:29 +0200benin(~benin@183.82.204.110) (Quit: The Lounge - https://thelounge.chat)
2022-04-08 07:04:09 +0200 <dibblego> there is an ideal lens library, which produces the Iso for your data type, and so that ^^ Prism comes for free — rather than writing one for each combination of constructors
2022-04-08 07:04:23 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds)
2022-04-08 07:04:26 +0200Topsi(~Tobias@dyndsl-095-033-089-233.ewe-ip-backbone.de) (Ping timeout: 272 seconds)
2022-04-08 07:05:03 +0200 <abastro[m]> I guess you could implement sth like that without lens dependency, ye
2022-04-08 07:06:32 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-04-08 07:06:39 +0200rish(~rishikesh@128.90.143.237)
2022-04-08 07:06:48 +0200rish(~rishikesh@128.90.143.237) (Client Quit)
2022-04-08 07:06:52 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 07:07:19 +0200deadmarshal_(~deadmarsh@95.38.116.104)
2022-04-08 07:07:23 +0200rekahsoft(~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com) (Remote host closed the connection)
2022-04-08 07:07:49 +0200rekahsoft(~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com)
2022-04-08 07:08:14 +0200benin(~benin@183.82.204.110)
2022-04-08 07:10:37 +0200rekahsoft(~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com) (Remote host closed the connection)
2022-04-08 07:10:59 +0200rekahsoft(~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com)
2022-04-08 07:11:21 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 248 seconds)
2022-04-08 07:11:22 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-04-08 07:11:43 +0200rekahsoft(~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com) (Remote host closed the connection)
2022-04-08 07:11:57 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net)
2022-04-08 07:12:05 +0200rekahsoft(~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com)
2022-04-08 07:12:17 +0200deadmarshal_(~deadmarsh@95.38.116.104) (Ping timeout: 268 seconds)
2022-04-08 07:12:26 +0200motherfsck(~motherfsc@user/motherfsck) (Ping timeout: 246 seconds)
2022-04-08 07:13:43 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2022-04-08 07:15:26 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2022-04-08 07:16:46 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 07:21:11 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 246 seconds)
2022-04-08 07:21:30 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-04-08 07:24:37 +0200Topsi1(~Tobias@dyndsl-095-033-091-154.ewe-ip-backbone.de) (Ping timeout: 268 seconds)
2022-04-08 07:24:40 +0200liz(~liz@host109-151-125-217.range109-151.btcentralplus.com) (Quit: Lost terminal)
2022-04-08 07:24:49 +0200Topsi(~Tobias@dyndsl-095-033-091-154.ewe-ip-backbone.de)
2022-04-08 07:25:14 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds)
2022-04-08 07:26:51 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-04-08 07:26:56 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 07:31:20 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 246 seconds)
2022-04-08 07:33:10 +0200Topsi1(~Tobias@dyndsl-095-033-091-154.ewe-ip-backbone.de)
2022-04-08 07:34:08 +0200Topsi(~Tobias@dyndsl-095-033-091-154.ewe-ip-backbone.de) (Ping timeout: 246 seconds)
2022-04-08 07:34:39 +0200rekahsoft(~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com) (Remote host closed the connection)
2022-04-08 07:36:57 +0200euandreh(~euandreh@2804:14c:33:9fe5:676f:8485:4af0:d43b) (Ping timeout: 268 seconds)
2022-04-08 07:37:03 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 07:37:07 +0200rekahsoft(~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com)
2022-04-08 07:37:38 +0200euandreh(~euandreh@2804:14c:33:9fe5:7d1a:acbd:2bb4:f)
2022-04-08 07:37:59 +0200rekahsoft(~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com) (Remote host closed the connection)
2022-04-08 07:38:23 +0200rekahsoft(~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com)
2022-04-08 07:39:05 +0200rekahsoft(~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com) (Remote host closed the connection)
2022-04-08 07:39:24 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-04-08 07:39:25 +0200rekahsoft(~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com)
2022-04-08 07:41:35 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 256 seconds)
2022-04-08 07:42:09 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net)
2022-04-08 07:46:07 +0200rekahsoft(~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com) (Ping timeout: 256 seconds)
2022-04-08 07:46:39 +0200pera(~pera@user/pera) (Ping timeout: 260 seconds)
2022-04-08 07:46:44 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
2022-04-08 07:49:08 +0200mncheck(~mncheck@193.224.205.254)
2022-04-08 07:53:46 +0200wyrd(~wyrd@gateway/tor-sasl/wyrd) (Quit: leaving)
2022-04-08 07:54:05 +0200wyrd(~wyrd@gateway/tor-sasl/wyrd)
2022-04-08 07:56:04 +0200ygrn(~Guest50@c-24-23-216-62.hsd1.ca.comcast.net)
2022-04-08 07:58:29 +0200acidjnk(~acidjnk@p200300d0c7049f91e010d86dcc64fbcb.dip0.t-ipconnect.de)
2022-04-08 08:00:49 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2022-04-08 08:04:07 +0200jonathanx_(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-04-08 08:06:21 +0200pera(~pera@90.208.230.100)
2022-04-08 08:06:44 +0200peraGuest2498
2022-04-08 08:07:08 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 272 seconds)
2022-04-08 08:13:49 +0200 <Athas> What's the most efficient list-ish type for concatenation-heavy workloads? DList? Seq?
2022-04-08 08:14:29 +0200 <Athas> It's right-nested appends in case it matters.
2022-04-08 08:14:38 +0200 <monochrom> I would bet on DList.
2022-04-08 08:14:55 +0200 <Axman6> depends if you you're using it as a queue or just appending
2022-04-08 08:14:58 +0200 <Athas> Yeah, reading the docs this looks like a DList problem.
2022-04-08 08:15:01 +0200 <Athas> Just appending.
2022-04-08 08:15:05 +0200 <Axman6> then DList
2022-04-08 08:15:16 +0200 <Athas> I want to append a bunch of lists and then turn the result into a normal list.
2022-04-08 08:15:31 +0200 <Axman6> or STArray with exponential resizing >_>
2022-04-08 08:15:47 +0200 <monochrom> What is right-nested appends? Is it like foldr (++)? Is it like foldl (++)?
2022-04-08 08:16:44 +0200 <Athas> foldl (++)
2022-04-08 08:16:57 +0200 <monochrom> But I guess DList is the safe bet because it's good for both. :)
2022-04-08 08:17:09 +0200 <monochrom> But [] does fine with foldr (++).
2022-04-08 08:17:18 +0200 <Athas> Yeah, and it's not super performance sensitive what I'm writing. I just don't want unpleasant surprises later.
2022-04-08 08:19:57 +0200 <Axman6> DList is great if you do lots of appending and very little consuming (consume once) If you do need to read from it a t multiple points, Seq might be a better option, but definitely sounds like DList problem
2022-04-08 08:20:42 +0200 <Athas> DList it is.
2022-04-08 08:22:00 +0200zeenk(~zeenk@2a02:2f04:a313:d600:8d26:ec9f:3ff6:fc94)
2022-04-08 08:25:46 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:10cd:909d:df46:ee8c)
2022-04-08 08:26:53 +0200bitmapper(uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-04-08 08:35:41 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-04-08 08:38:20 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-04-08 08:39:14 +0200epolanski(uid312403@id-312403.helmsley.irccloud.com)
2022-04-08 08:39:53 +0200odnes(~odnes@5-203-246-201.pat.nym.cosmote.net)
2022-04-08 08:40:39 +0200fvr(uid503686@id-503686.uxbridge.irccloud.com)
2022-04-08 08:41:42 +0200fvr(uid503686@id-503686.uxbridge.irccloud.com) (Client Quit)
2022-04-08 08:41:53 +0200fvr(uid503686@id-503686.uxbridge.irccloud.com)
2022-04-08 08:45:48 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 08:46:37 +0200 <energizer> :t Compose
2022-04-08 08:46:38 +0200 <lambdabot> error:
2022-04-08 08:46:38 +0200 <lambdabot> • Data constructor not in scope: Compose
2022-04-08 08:46:38 +0200 <lambdabot> • Perhaps you meant variable ‘icompose’ (imported from Control.Lens)
2022-04-08 08:49:07 +0200deadmarshal_(~deadmarsh@95.38.116.104)
2022-04-08 08:50:04 +0200 <abastro[m]> Whh
2022-04-08 08:50:32 +0200 <abastro[m]> Btw why does scala not have `DList`
2022-04-08 08:57:18 +0200dextaa_54dextaa
2022-04-08 09:01:10 +0200alp_(~alp@user/alp)
2022-04-08 09:01:18 +0200 <Axman6> if you can write functions of the type [a] -> [a] then it does, that's all DLists are - functions which accept an argument which represents the end of the list
2022-04-08 09:01:47 +0200Guest2498(~pera@90.208.230.100) (Quit: leaving)
2022-04-08 09:01:56 +0200 <Axman6> :t \rest -> 'H':'e':'l':'l':'o':rest
2022-04-08 09:01:57 +0200 <lambdabot> [Char] -> [Char]
2022-04-08 09:02:26 +0200 <Axman6> > let myDList = \rest -> 'H':'e':'l':'l':'o':rest in myDList ", world!"
2022-04-08 09:02:27 +0200 <lambdabot> "Hello, world!"
2022-04-08 09:03:14 +0200 <energizer> how can i make a type that's like compose?
2022-04-08 09:03:35 +0200 <Axman6> > let hello = \rest -> 'H':'e':'l':'l':'o':rest; commaSpace = \rest -> ',':' ':rest in hello . commaSpace $ "world!"
2022-04-08 09:03:37 +0200 <lambdabot> "Hello, world!"
2022-04-08 09:03:45 +0200 <Axman6> energizer: "like" in what way?
2022-04-08 09:04:41 +0200 <energizer> you were saying (.) isn't a type so it can't be instance Monoid, so i want to make a compose that is instance Monoid
2022-04-08 09:04:50 +0200 <abastro[m]> Scala doesn't have monoids, Axman6
2022-04-08 09:05:14 +0200 <abastro[m]> energizer: use Endo
2022-04-08 09:05:23 +0200 <abastro[m]> % :i Endo
2022-04-08 09:05:23 +0200 <yahb> abastro[m]: type Endo :: * -> *; newtype Endo a = Endo {appEndo :: a -> a}; -- Defined in `base-4.15.0.0:Data.Semigroup.Internal'; instance Monoid (Endo a) -- Defined in `base-4.15.0.0:Data.Semigroup.Internal'; instance Semigroup (Endo a) -- Defined in `base-4.15.0.0:Data.Semigroup.Internal'; instance (t ~ Endo b) => Rewrapped (Endo a) t -- Defined in `Control.Lens.Wrapped'; instance Wrapped (Endo a) -- Defined
2022-04-08 09:05:34 +0200 <abastro[m]> ^
2022-04-08 09:05:58 +0200 <Axman6> having instance Monoid (Compose f g a) means having something of type (<>) :: Compose f g a -> Compose f g a -> Compose f g a
2022-04-08 09:06:34 +0200 <abastro[m]> Oh
2022-04-08 09:06:35 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds)
2022-04-08 09:06:58 +0200 <Axman6> energizer: I'm not sure the questions you're asking make sense though, it still feels like you're confused about the difference between functions and types, but I don't understand what you actually want well enough to tell where you're getting stuck
2022-04-08 09:07:05 +0200 <abastro[m]> Uhm does that makes sense?
2022-04-08 09:07:26 +0200 <Axman6> Scala definitely does have monoids btw
2022-04-08 09:07:46 +0200 <abastro[m]> Eh, where? I could not find it in stdlib
2022-04-08 09:08:06 +0200 <Axman6> it probably has some dumb name like additive
2022-04-08 09:08:21 +0200 <Axman6> but it might not be in the stdlib
2022-04-08 09:08:26 +0200 <energizer> Axman6: what is `a` doing there?
2022-04-08 09:08:29 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-04-08 09:08:41 +0200 <Axman6> % :info Compose
2022-04-08 09:08:41 +0200 <yahb> Axman6: ; <interactive>:1:1: error: Not in scope: `Compose'
2022-04-08 09:08:45 +0200 <abastro[m]> Parameter of the generics
2022-04-08 09:08:48 +0200 <Axman6> @hoogle Compose
2022-04-08 09:08:48 +0200 <lambdabot> module Data.Functor.Compose
2022-04-08 09:08:48 +0200 <lambdabot> Data.Functor.Compose newtype Compose f g a
2022-04-08 09:08:48 +0200 <lambdabot> Data.Functor.Compose Compose :: f (g a) -> Compose f g a
2022-04-08 09:09:32 +0200 <Axman6> Data.Functor.Compose defined newtype Compose f g a = Compose (f (g a)) -- it is the composition of two functors, which is also always functor
2022-04-08 09:09:43 +0200 <Axman6> % import Data.Functor.Compose
2022-04-08 09:09:43 +0200 <yahb> Axman6:
2022-04-08 09:09:47 +0200 <Axman6> % :info Compose
2022-04-08 09:09:47 +0200 <yahb> Axman6: type role Compose representational nominal nominal; type Compose :: forall {k} {k1}. (k -> *) -> (k1 -> k) -> k1 -> *; newtype Compose f g a = Compose {getCompose :: f (g a)}; -- Defined in `Data.Functor.Compose'; infixr 9 `Compose`; instance (Alternative f, Applicative g) => Alternative (Compose f g) -- Defined in `Data.Functor.Compose'; instance (Applicative f, Applicative g) => Applicative (Compos
2022-04-08 09:10:08 +0200 <Axman6> % fmap show $ Compose [Just 1]
2022-04-08 09:10:08 +0200 <yahb> Axman6: Compose [Just "1"]
2022-04-08 09:10:26 +0200 <Axman6> % fmap show $ Compose (Compose [Just (True,1)]
2022-04-08 09:10:26 +0200 <yahb> Axman6: ; <interactive>:88:45: error: parse error (possibly incorrect indentation or mismatched brackets)
2022-04-08 09:10:34 +0200 <Axman6> % fmap show $ Compose (Compose [Just (True,1)])
2022-04-08 09:10:34 +0200 <yahb> Axman6: Compose (Compose [Just (True,"1")])
2022-04-08 09:10:48 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net)
2022-04-08 09:11:18 +0200deadmarshal_(~deadmarsh@95.38.116.104) (Ping timeout: 268 seconds)
2022-04-08 09:11:21 +0200 <abastro[m]> % Compose [Just 1] <> Compose [Nothing]
2022-04-08 09:11:21 +0200 <yahb> abastro[m]: ; <interactive>:90:1: error:; * No instance for (Semigroup (Compose [] Maybe Integer)) arising from a use of `it'; * In the first argument of `print', namely `it'; In a stmt of an interactive GHCi command: print it
2022-04-08 09:11:27 +0200 <energizer> i dont really know what that's saying
2022-04-08 09:11:31 +0200 <abastro[m]> Noo
2022-04-08 09:11:49 +0200 <abastro[m]> Well `Compose` type is indeed a complex one
2022-04-08 09:12:27 +0200 <abastro[m]> You need to understand haskell generics before trying on Compose
2022-04-08 09:14:08 +0200 <Axman6> % :t Compose (Compose [Just (True,"1")])
2022-04-08 09:14:08 +0200 <yahb> Axman6: Compose (Compose [] Maybe) ((,) Bool) String
2022-04-08 09:14:23 +0200 <Axman6> that's the composition of three functors
2022-04-08 09:14:45 +0200 <Axman6> which isn't really related to the composition of functions (except that functions are functors, but that's another issue)
2022-04-08 09:14:56 +0200 <Axman6> it does sound like you migth be looking for Endo?
2022-04-08 09:15:56 +0200 <energizer> ok i'll just leave it for now. thank you.
2022-04-08 09:16:15 +0200 <Axman6> an endomorphism is just a function with type a -> a, newtype Endo a = Endo (a -> a). it _does_ have a monoid instance, because you can define mempty = Endo id :: Endo a; and mappend (Endo f) (Endo g) = Endo (f . g)
2022-04-08 09:17:07 +0200 <Axman6> so the idea of combining functions of the type a -> a is represented by Endo, and lots of instances can be defined for that type
2022-04-08 09:20:11 +0200Akiva(~Akiva@user/Akiva) (Ping timeout: 246 seconds)
2022-04-08 09:22:33 +0200cfricke(~cfricke@user/cfricke)
2022-04-08 09:22:47 +0200vysn(~vysn@user/vysn) (Quit: WeeChat 3.4)
2022-04-08 09:22:51 +0200gehmehgeh(~user@user/gehmehgeh)
2022-04-08 09:23:55 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-04-08 09:24:40 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net)
2022-04-08 09:27:16 +0200michalz(~michalz@185.246.204.122)
2022-04-08 09:27:33 +0200shriekingnoise(~shrieking@201.231.16.156) (Quit: Quit)
2022-04-08 09:29:42 +0200ygrn(~Guest50@c-24-23-216-62.hsd1.ca.comcast.net) (Quit: Client closed)
2022-04-08 09:31:28 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2022-04-08 09:38:38 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 09:46:15 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 256 seconds)
2022-04-08 09:48:17 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2022-04-08 09:48:40 +0200machinedgod(~machinedg@24.105.81.50)
2022-04-08 09:51:03 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2022-04-08 09:51:36 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 09:52:18 +0200 <abastro[m]> Oh right
2022-04-08 09:52:31 +0200 <abastro[m]> Higher associativity of (.) is encoded in Category
2022-04-08 09:52:56 +0200 <abastro[m]> I hate Category tho
2022-04-08 09:54:26 +0200frost(~frost@user/frost)
2022-04-08 09:56:09 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 248 seconds)
2022-04-08 09:56:56 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds)
2022-04-08 09:58:51 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-04-08 10:00:26 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-04-08 10:00:56 +0200deadmarshal_(~deadmarsh@95.38.116.104)
2022-04-08 10:01:07 +0200ccntrq(~Thunderbi@2a01:e34:eccb:b060:3869:aeec:4353:22a7)
2022-04-08 10:01:47 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 10:03:41 +0200machinedgod(~machinedg@24.105.81.50) (Remote host closed the connection)
2022-04-08 10:04:11 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-04-08 10:04:33 +0200AlexNoo_AlexNoo
2022-04-08 10:05:23 +0200chele(~chele@user/chele)
2022-04-08 10:06:03 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 246 seconds)
2022-04-08 10:08:59 +0200mncheckm(~mncheck@193.224.205.254)
2022-04-08 10:09:45 +0200machinedgod(~machinedg@24.105.81.50)
2022-04-08 10:11:17 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-04-08 10:23:45 +0200ccntrq1(~Thunderbi@2a01:e34:eccb:b060:3869:aeec:4353:22a7)
2022-04-08 10:23:50 +0200ccntrq(~Thunderbi@2a01:e34:eccb:b060:3869:aeec:4353:22a7) (Read error: Connection reset by peer)
2022-04-08 10:23:51 +0200ccntrq1ccntrq
2022-04-08 10:24:09 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-04-08 10:31:24 +0200_________(~nobody@user/noodly) (Ping timeout: 240 seconds)
2022-04-08 10:33:14 +0200niko(~niko@libera/staff/niko) (Quit: Reconnecting)
2022-04-08 10:33:33 +0200niko(~niko@libera/staff/niko)
2022-04-08 10:34:11 +0200niko(~niko@libera/staff/niko) (Client Quit)
2022-04-08 10:34:45 +0200o(~niko@libera/staff/niko)
2022-04-08 10:35:15 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-04-08 10:36:51 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-04-08 10:43:33 +0200cdman(~dcm@user/dmc/x-4369397) (Quit: Leaving)
2022-04-08 10:44:05 +0200MajorBiscuit(~MajorBisc@wlan-145-94-161-127.wlan.tudelft.nl)
2022-04-08 10:45:39 +0200 <energizer> w
2022-04-08 10:46:46 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-04-08 10:46:58 +0200 <energizer> what is the relationship between multiplication and application? would it make any difference if they were the same operator?
2022-04-08 10:48:04 +0200 <tomsmeding> why would it make sense for them to be the same operator?
2022-04-08 10:48:38 +0200 <tomsmeding> multiplication takes two values of the same type, application does not, so in any case the types don't match
2022-04-08 10:48:38 +0200cdman(~dcm@27.2.217.240)
2022-04-08 10:48:38 +0200cdman(~dcm@27.2.217.240) (Changing host)
2022-04-08 10:48:38 +0200cdman(~dcm@user/dmc/x-4369397)
2022-04-08 10:49:35 +0200 <energizer> multiplication hopefully supports vector * scalar
2022-04-08 10:49:54 +0200 <tomsmeding> :t (*)
2022-04-08 10:49:55 +0200 <lambdabot> Num a => a -> a -> a
2022-04-08 10:50:00 +0200fvr(uid503686@id-503686.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2022-04-08 10:50:01 +0200 <tomsmeding> though I guess you could generalise that
2022-04-08 10:50:01 +0200 <energizer> oh that's dumb
2022-04-08 10:50:20 +0200 <tomsmeding> I guess the question is: what would be the type of the generalised operator
2022-04-08 10:51:39 +0200 <energizer> hm i guess that actually demonstrates a counterexample
2022-04-08 10:52:07 +0200DNH(~DNH@2a02:8108:1100:16d8:c02d:dd64:a284:8819)
2022-04-08 10:52:18 +0200 <tomsmeding> for vector-scalar multiplication, you can kind of achieve that by lifting the scalar to a vector first and then performing element-wise multiplication
2022-04-08 10:52:41 +0200 <tomsmeding> if the scalar is a literal, that lifting can even be done invisibly using fromInteger/fromRational
2022-04-08 10:52:42 +0200 <energizer> [10,20,30] $ 2 would give 30 but [10,20,30] * 2 would give [20,40,60]
2022-04-08 10:52:49 +0200 <tomsmeding> right
2022-04-08 10:53:04 +0200 <tomsmeding> > [10,20,30] $ 2
2022-04-08 10:53:06 +0200 <lambdabot> error:
2022-04-08 10:53:06 +0200 <lambdabot> • Couldn't match expected type ‘t0 -> t’ with actual type ‘[a0]’
2022-04-08 10:53:06 +0200 <lambdabot> • The first argument of ($) takes one argument,
2022-04-08 10:53:11 +0200 <tomsmeding> not sure what the meaning of that would be though
2022-04-08 10:53:33 +0200 <energizer> it would be getindex, whatever that's called in haskell, maybe !!
2022-04-08 10:53:44 +0200 <tomsmeding> ah I see, seeing an array as a function from index to value
2022-04-08 10:53:56 +0200sub0(~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Session timeout))
2022-04-08 10:54:06 +0200 <energizer> ya
2022-04-08 10:54:08 +0200CiaoSen(~Jura@p200300c9572d40002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-04-08 10:54:21 +0200 <tomsmeding> but yeah, you'll get conflicts, as you see
2022-04-08 11:00:55 +0200_________(~nobody@user/noodly)
2022-04-08 11:02:32 +0200Pickchea(~private@user/pickchea)
2022-04-08 11:03:48 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.4.1)
2022-04-08 11:06:01 +0200_________(~nobody@user/noodly) (Ping timeout: 248 seconds)
2022-04-08 11:07:07 +0200_________(~nobody@user/noodly)
2022-04-08 11:12:19 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-04-08 11:14:56 +0200haskellberryfinn(~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-04-08 11:16:45 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
2022-04-08 11:16:55 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-04-08 11:28:09 +0200gurkenglas(~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de)
2022-04-08 11:28:30 +0200chenqisu1(~chenqisu1@183.217.200.239) (Quit: Leaving)
2022-04-08 11:39:49 +0200DNH(~DNH@2a02:8108:1100:16d8:c02d:dd64:a284:8819) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-04-08 11:40:21 +0200Guest89(~Guest89@2a01:41e1:4454:c00:c143:656:2260:f5bd)
2022-04-08 11:50:20 +0200vpan(~0@212.117.1.172)
2022-04-08 11:50:49 +0200sprout_(~quassel@2a02:a467:ccd6:1:cc9d:606d:275:46cf)
2022-04-08 11:51:07 +0200 <haskellberryfinn> does Haskell have undefined behavior like in C? Such as in C, 1 << -1 is undefined
2022-04-08 11:52:57 +0200sprout(~quassel@2a02:a467:ccd6:1:70be:3437:d6be:b5ae) (Ping timeout: 248 seconds)
2022-04-08 12:00:53 +0200CiaoSen(~Jura@p200300c9572d40002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-04-08 12:02:15 +0200DNH(~DNH@2a02:8108:1100:16d8:c02d:dd64:a284:8819)
2022-04-08 12:02:37 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 12:05:32 +0200 <abastro[m]> I don't think haskell have undefined behavior
2022-04-08 12:05:53 +0200 <abastro[m]> Eliminating those unknown behaviors, I think that's the point of type system
2022-04-08 12:09:01 +0200epolanski(uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2022-04-08 12:09:42 +0200xff0x(~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp) (Ping timeout: 272 seconds)
2022-04-08 12:11:00 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 246 seconds)
2022-04-08 12:13:11 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-04-08 12:16:59 +0200 <lortabac> AFAIK Haskell doesn't have a notion of undefined behavior, but it can run into unpredictable behavior when you use the unsafe* functions
2022-04-08 12:17:09 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 12:17:56 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
2022-04-08 12:18:09 +0200 <lortabac> by "unpredictable" I mean behavior that is hard to predict and can vary when optimizations are on
2022-04-08 12:19:50 +0200uncomfy(~uncomfy@27.110.174.130)
2022-04-08 12:21:09 +0200 <abastro[m]> Right, unsafe functions are exceptions to this. Meh
2022-04-08 12:21:10 +0200 <abastro[m]> Momentarily forgot about them
2022-04-08 12:21:37 +0200benin(~benin@183.82.204.110) (Quit: The Lounge - https://thelounge.chat)
2022-04-08 12:21:56 +0200 <abastro[m]> Well also, evaluation order is kind of not concretely defined for nearly everything in haskell
2022-04-08 12:22:22 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 272 seconds)
2022-04-08 12:25:09 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-04-08 12:25:42 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2022-04-08 12:25:48 +0200cdman(~dcm@user/dmc/x-4369397) (Quit: Leaving)
2022-04-08 12:25:52 +0200 <dibblego> > head []
2022-04-08 12:25:54 +0200 <lambdabot> *Exception: Prelude.head: empty list
2022-04-08 12:26:41 +0200cdman(~dcm@27.2.217.240)
2022-04-08 12:26:41 +0200cdman(~dcm@27.2.217.240) (Changing host)
2022-04-08 12:26:41 +0200cdman(~dcm@user/dmc/x-4369397)
2022-04-08 12:27:18 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 12:30:04 +0200 <abastro[m]> I thought that behavior is predictable
2022-04-08 12:31:32 +0200chddr(~Thunderbi@91.226.35.164)
2022-04-08 12:32:13 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 260 seconds)
2022-04-08 12:33:08 +0200kaph_(~kaph@dynamic-adsl-78-12-162-98.clienti.tiscali.it) (Ping timeout: 272 seconds)
2022-04-08 12:35:15 +0200gehmehgeh(~user@user/gehmehgeh)
2022-04-08 12:37:27 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 12:38:37 +0200jakalx(~jakalx@base.jakalx.net)
2022-04-08 12:38:49 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 248 seconds)
2022-04-08 12:41:55 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 256 seconds)
2022-04-08 12:42:42 +0200benin(~benin@183.82.204.110)
2022-04-08 12:44:00 +0200 <haskellberryfinn> lortabac: can we ask GHC to protect a region in the source code not to optimize them?
2022-04-08 12:45:01 +0200 <tomsmeding> why would you want that
2022-04-08 12:45:32 +0200 <lortabac> haskellberryfinn: yes, you can do it at module level with a pragma
2022-04-08 12:46:12 +0200 <tomsmeding> I guess you'd also need to annotate the exported functions from that module with NOINLINE, else they might get inlined somewhere else and subsequently optimised?
2022-04-08 12:46:45 +0200 <lortabac> in fact I had to do it once because of a GHC bug that was triggered by a particular optimization
2022-04-08 12:46:56 +0200 <tomsmeding> right, bugs are a reason
2022-04-08 12:47:38 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2022-04-08 12:47:39 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 12:48:07 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.4.1)
2022-04-08 12:49:18 +0200 <haskellberryfinn> tomsmeding: no particular reason, just want to understand GHC's behavior
2022-04-08 12:49:20 +0200 <tomsmeding> HLS question: I have a multi-component cabal file (library, testsuite and benchmark), and each have different dependencies, but HLS gets confused: opening bench/Main.hs is fine, but if I then also open test/Main.hs, suddenly a bench-only dependency X is unavailable in bench/Main.hs. Is this a known issue?
2022-04-08 12:51:47 +0200gehmehgeh(~user@user/gehmehgeh)
2022-04-08 12:51:57 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 246 seconds)
2022-04-08 12:56:53 +0200ccntrq1(~Thunderbi@imx92-1-78-204-187-6.fbx.proxad.net)
2022-04-08 12:57:33 +0200ccntrq(~Thunderbi@2a01:e34:eccb:b060:3869:aeec:4353:22a7) (Read error: Connection reset by peer)
2022-04-08 12:57:33 +0200ccntrq1ccntrq
2022-04-08 12:57:46 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 12:57:55 +0200acidjnk(~acidjnk@p200300d0c7049f91e010d86dcc64fbcb.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-04-08 13:00:57 +0200hololeap_(~hololeap@user/hololeap) (Remote host closed the connection)
2022-04-08 13:01:13 +0200simeon(~pi@dslb-090-186-003-168.090.186.pools.vodafone-ip.de) (Ping timeout: 248 seconds)
2022-04-08 13:02:12 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-04-08 13:02:19 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 256 seconds)
2022-04-08 13:02:23 +0200hololeap_(~hololeap@user/hololeap)
2022-04-08 13:02:25 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-04-08 13:02:44 +0200simeon(~pi@dslb-002-202-026-141.002.202.pools.vodafone-ip.de)
2022-04-08 13:06:27 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-04-08 13:07:17 +0200Guest89(~Guest89@2a01:41e1:4454:c00:c143:656:2260:f5bd) (Quit: Client closed)
2022-04-08 13:07:56 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 13:09:13 +0200shriekingnoise(~shrieking@201.231.16.156)
2022-04-08 13:11:28 +0200liz(~liz@host109-151-125-217.range109-151.btcentralplus.com)
2022-04-08 13:12:57 +0200 <abastro[m]> Well I experienced it being confused with ghc-options field, but never with the dependencies
2022-04-08 13:13:23 +0200 <abastro[m]> Different dependencies for multiple components were fine to be actually
2022-04-08 13:13:25 +0200jgeerds(~jgeerds@d5364b87.access.ecotel.net)
2022-04-08 13:13:30 +0200 <abastro[m]> So I wonder why your case is happening
2022-04-08 13:13:39 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 256 seconds)
2022-04-08 13:16:52 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-04-08 13:17:36 +0200ub(~Thunderbi@p200300ecdf1588f29c6b5cc0b4490e88.dip0.t-ipconnect.de)
2022-04-08 13:18:40 +0200 <tomsmeding> maybe ghc 9.2.1 is too new?
2022-04-08 13:22:12 +0200ub(~Thunderbi@p200300ecdf1588f29c6b5cc0b4490e88.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-04-08 13:24:26 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds)
2022-04-08 13:27:21 +0200ccntrq(~Thunderbi@imx92-1-78-204-187-6.fbx.proxad.net) (Ping timeout: 248 seconds)
2022-04-08 13:28:29 +0200 <pavonia> Debugging a parser exception "Maybe.fromJust: Nothing" in a 6MB data file, yay
2022-04-08 13:28:45 +0200 <tomsmeding> HasCallStack all the things
2022-04-08 13:29:48 +0200 <pavonia> It just tells me the function producing the error, but no information about the input
2022-04-08 13:30:54 +0200glguy(x@libera/staff/glguy) (Read error: Connection reset by peer)
2022-04-08 13:31:05 +0200haskellberryfinn(~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 248 seconds)
2022-04-08 13:32:35 +0200glguy(x@libera/staff/glguy)
2022-04-08 13:34:01 +0200 <abastro[m]> tomsmeding: I am using ghc 9.2.2
2022-04-08 13:34:13 +0200 <abastro[m]> It works well.. with HLS 1.6.1.1
2022-04-08 13:34:19 +0200 <abastro[m]> Wait, are you using 1.6.1.0?
2022-04-08 13:34:49 +0200 <tomsmeding> yes, but self-compiled
2022-04-08 13:34:51 +0200tabemann(~travisb@2600:1700:7990:24e0:77bc:a0c0:b3f2:8f7c) (Remote host closed the connection)
2022-04-08 13:35:04 +0200tabemann(~travisb@2600:1700:7990:24e0:da3f:51e6:d535:6e76)
2022-04-08 13:35:10 +0200 <tomsmeding> I can retry using ghc 9.2.2
2022-04-08 13:37:39 +0200 <abastro[m]> 1.6.1.0 doesn't work on ghc 9.2+ tomsmeding
2022-04-08 13:37:51 +0200 <tomsmeding> oh crap sorry
2022-04-08 13:37:54 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-04-08 13:37:55 +0200 <tomsmeding> I'm running HLS HEAD
2022-04-08 13:37:56 +0200 <abastro[m]> Oh you mean you are using 1.6.1.1?
2022-04-08 13:38:01 +0200 <tomsmeding> because otherwise it doesn't compile on 9.2.2
2022-04-08 13:38:01 +0200 <abastro[m]> I see
2022-04-08 13:38:15 +0200jakalx(~jakalx@base.jakalx.net)
2022-04-08 13:38:18 +0200 <tomsmeding> no the only difference between 1.6.1.1 and 1.6.1.0 is the addition of a cabal flag for compiling dynamically linked
2022-04-08 13:38:18 +0200 <abastro[m]> Hmm yeah, I forgot that lol
2022-04-08 13:38:30 +0200 <tomsmeding> so that's irrelevant here if I self-compile
2022-04-08 13:39:02 +0200 <abastro[m]> Well I mean, 1.6.1.0 did not recognize the `with-compiler:` field of cabal.project
2022-04-08 13:39:14 +0200 <tomsmeding> wa-
2022-04-08 13:39:21 +0200 <abastro[m]> I recommend you to do try 9.2.2 for good measure
2022-04-08 13:39:57 +0200 <tomsmeding> $ git diff 1.6.1.0..1.6.1.1 --stat -> .github/... ; ChangeLog.md ; docs/troubleshooting.md ; haskell-language-server.cabal
2022-04-08 13:40:12 +0200 <tomsmeding> and the diff in the .cabal is literally the addition of a flag
2022-04-08 13:41:54 +0200 <tomsmeding> 9.2.2 seems to work...?
2022-04-08 13:43:22 +0200 <tomsmeding> the command-line test invocation completely fails with a bunch of internal errors, but in the editor as LSP server it seems to work
2022-04-08 13:43:23 +0200 <tomsmeding> ¯\_(ツ)_/¯
2022-04-08 13:53:39 +0200xff0x(~xff0x@i121-117-52-147.s41.a013.ap.plala.or.jp)
2022-04-08 13:54:28 +0200aeka(~aeka@user/hiruji) (Ping timeout: 260 seconds)
2022-04-08 13:58:29 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-04-08 13:59:47 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Quit: leaving)
2022-04-08 14:00:05 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-04-08 14:02:08 +0200DNH(~DNH@2a02:8108:1100:16d8:c02d:dd64:a284:8819) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-04-08 14:02:08 +0200aeka(~aeka@2606:6080:1001:13:a777:ff73:dfdc:3ab0)
2022-04-08 14:04:24 +0200MajorBiscuit(~MajorBisc@wlan-145-94-161-127.wlan.tudelft.nl) (Ping timeout: 246 seconds)
2022-04-08 14:05:45 +0200DNH(~DNH@2a02:8108:1100:16d8:c02d:dd64:a284:8819)
2022-04-08 14:05:55 +0200MajorBiscuit(~MajorBisc@wlan-145-94-161-127.wlan.tudelft.nl)
2022-04-08 14:06:23 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-04-08 14:07:04 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net)
2022-04-08 14:10:15 +0200FragByte(~christian@user/fragbyte) (Quit: Quit)
2022-04-08 14:12:13 +0200FragByte(~christian@user/fragbyte)
2022-04-08 14:13:47 +0200krappix(~krappix@nat-eduroam-76-gw-01-lne.lille.inria.fr)
2022-04-08 14:17:34 +0200frost(~frost@user/frost) (Quit: Client closed)
2022-04-08 14:19:01 +0200 <abastro[m]> Oh meh
2022-04-08 14:19:18 +0200 <abastro[m]> Idk why cabal.project reading in 1.6.1.0 did not work for me hmm
2022-04-08 14:23:45 +0200cfricke(~cfricke@user/cfricke)
2022-04-08 14:24:34 +0200MajorBiscuit(~MajorBisc@wlan-145-94-161-127.wlan.tudelft.nl) (Ping timeout: 268 seconds)
2022-04-08 14:24:48 +0200dextaa(~dextaa@user/dextaa) (Remote host closed the connection)
2022-04-08 14:26:52 +0200 <maerwald[m]> <tomsmeding> "the command-line test invocation..." <- typecheck?
2022-04-08 14:26:53 +0200 <tomsmeding> that particular part did work for me :p
2022-04-08 14:27:16 +0200 <tomsmeding> maerwald[m]: what I meant is running 'haskell-language-server-9.2.2' in my shell
2022-04-08 14:27:20 +0200 <tomsmeding> not sure what you're asking
2022-04-08 14:27:22 +0200__monty__(~toonn@user/toonn)
2022-04-08 14:27:42 +0200coot(~coot@213.134.190.95)
2022-04-08 14:28:08 +0200 <maerwald[m]> There are subcommands
2022-04-08 14:28:45 +0200 <tomsmeding> TIL
2022-04-08 14:28:52 +0200 <tomsmeding> seems the default is 'typecheck'
2022-04-08 14:29:18 +0200dextaa(~dextaa@user/dextaa)
2022-04-08 14:30:42 +0200 <krappix> Hello all I want to understand how this project `fortran-src` write the output when I use it to get an AST `fortran-src stop_message.f`. `stop_message.f`obtained from here https://people.sc.fsu.edu/~jburkardt/f77_src/f77/stop_message.f . The output is something like this https://dpaste.org/PzXfd/raw and the project is
2022-04-08 14:30:42 +0200 <krappix> https://github.com/camfort/fortran-src . My question is how I can change this output in XML if Haskell can do that ?
2022-04-08 14:41:42 +0200jgeerds(~jgeerds@d5364b87.access.ecotel.net) (Ping timeout: 272 seconds)
2022-04-08 14:42:24 +0200fr33domlover(~fr33@5.102.204.220)
2022-04-08 14:42:50 +0200Guest89(~Guest89@2a01:41e1:4454:c00:c143:656:2260:f5bd)
2022-04-08 14:50:33 +0200Pickchea(~private@user/pickchea) (Ping timeout: 248 seconds)
2022-04-08 14:56:27 +0200dextaa(~dextaa@user/dextaa) (Remote host closed the connection)
2022-04-08 14:56:27 +0200gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2022-04-08 15:00:40 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Ping timeout: 260 seconds)
2022-04-08 15:02:05 +0200gentauro(~gentauro@user/gentauro)
2022-04-08 15:02:31 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-04-08 15:03:11 +0200krappix(~krappix@nat-eduroam-76-gw-01-lne.lille.inria.fr) (Quit: Client closed)
2022-04-08 15:03:25 +0200Neuromancer(~Neuromanc@user/neuromancer) (Ping timeout: 240 seconds)
2022-04-08 15:03:52 +0200cosimone(~user@93-47-228-79.ip115.fastwebnet.it) (Remote host closed the connection)
2022-04-08 15:06:20 +0200krappix(~krappix@nat-eduroam-76-gw-01-lne.lille.inria.fr)
2022-04-08 15:07:15 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-04-08 15:07:41 +0200xkuru(~xkuru@user/xkuru)
2022-04-08 15:08:08 +0200jgeerds(~jgeerds@d5364b87.access.ecotel.net)
2022-04-08 15:08:46 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 15:09:35 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2022-04-08 15:11:30 +0200liz(~liz@host109-151-125-217.range109-151.btcentralplus.com) (Quit: Lost terminal)
2022-04-08 15:12:36 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-04-08 15:13:47 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2022-04-08 15:14:17 +0200frost(~frost@user/frost)
2022-04-08 15:15:39 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-04-08 15:17:11 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 256 seconds)
2022-04-08 15:19:57 +0200ystael(~ystael@user/ystael)
2022-04-08 15:20:00 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
2022-04-08 15:21:36 +0200jgeerds(~jgeerds@d5364b87.access.ecotel.net) (Ping timeout: 272 seconds)
2022-04-08 15:22:34 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 15:22:57 +0200dextaa(~dextaa@user/dextaa)
2022-04-08 15:23:09 +0200_________(~nobody@user/noodly) (Ping timeout: 268 seconds)
2022-04-08 15:25:59 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2022-04-08 15:27:18 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 272 seconds)
2022-04-08 15:27:18 +0200cheater(~Username@user/cheater) (Ping timeout: 272 seconds)
2022-04-08 15:30:45 +0200goepsilongo(~chacho@2603-7000-ab00-62ed-0000-0000-0000-0bd0.res6.spectrum.com)
2022-04-08 15:31:44 +0200zebrag(~chris@user/zebrag)
2022-04-08 15:32:57 +0200deadmarshal_(~deadmarsh@95.38.116.104) (Ping timeout: 246 seconds)
2022-04-08 15:34:28 +0200Guest|59(~Guest|59@wf0460.dip.tu-dresden.de)
2022-04-08 15:36:58 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 15:38:41 +0200haskellberryfinn(~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-04-08 15:41:21 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 246 seconds)
2022-04-08 15:42:55 +0200cheater(~Username@user/cheater)
2022-04-08 15:46:21 +0200frost(~frost@user/frost) (Quit: Client closed)
2022-04-08 15:46:39 +0200Guest|59(~Guest|59@wf0460.dip.tu-dresden.de) (Quit: Connection closed)
2022-04-08 15:47:07 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 15:48:19 +0200abastro(~abab9579@220.75.216.63)
2022-04-08 15:52:00 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 272 seconds)
2022-04-08 15:53:50 +0200abastro(~abab9579@220.75.216.63) (Remote host closed the connection)
2022-04-08 15:55:25 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-04-08 15:55:59 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Quit: Leaving)
2022-04-08 15:56:32 +0200biberu\(~biberu@user/biberu)
2022-04-08 15:57:25 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net)
2022-04-08 15:57:35 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2022-04-08 15:59:24 +0200biberu(~biberu@user/biberu) (Ping timeout: 240 seconds)
2022-04-08 16:00:35 +0200biberu(~biberu@user/biberu)
2022-04-08 16:00:49 +0200biberu\(~biberu@user/biberu) (Ping timeout: 256 seconds)
2022-04-08 16:01:23 +0200Sgeo(~Sgeo@user/sgeo)
2022-04-08 16:01:38 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 16:02:06 +0200krappix(~krappix@nat-eduroam-76-gw-01-lne.lille.inria.fr) (Quit: Client closed)
2022-04-08 16:02:37 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2022-04-08 16:03:24 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-04-08 16:05:02 +0200CiaoSen(~Jura@p200300c9572d40002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-04-08 16:06:17 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 248 seconds)
2022-04-08 16:06:49 +0200razetime(~quassel@117.254.34.143)
2022-04-08 16:09:08 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:10cd:909d:df46:ee8c) (Quit: WeeChat 2.8)
2022-04-08 16:12:39 +0200motherfsck(~motherfsc@user/motherfsck)
2022-04-08 16:15:39 +0200MajorBiscuit(~MajorBisc@wlan-145-94-161-127.wlan.tudelft.nl)
2022-04-08 16:16:21 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-04-08 16:17:41 +0200Akiva(~Akiva@user/Akiva)
2022-04-08 16:21:07 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds)
2022-04-08 16:21:57 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Quit: WeeChat 3.4.1)
2022-04-08 16:22:01 +0200cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
2022-04-08 16:23:40 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-04-08 16:23:51 +0200 <lechner> Hi, what are package registration files, please? https://cabal.readthedocs.io/en/3.4/setup-commands.html#cmdoption-runhaskell-Setup.hs-register-gen…
2022-04-08 16:24:49 +0200 <geekosaur> they look a lot like cabal files. go look inside any package database to see what one looks like
2022-04-08 16:27:02 +0200 <geekosaur> they contain all the information needed by the package database for a package. you normally manipulate them with `ghc-pkg`
2022-04-08 16:27:45 +0200hololeap_hololeap
2022-04-08 16:32:01 +0200razetime(~quassel@117.254.34.143) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-04-08 16:32:47 +0200benin(~benin@183.82.204.110) (Quit: The Lounge - https://thelounge.chat)
2022-04-08 16:32:57 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 248 seconds)
2022-04-08 16:35:01 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-04-08 16:36:19 +0200nun13(~nun@61.140.162.8)
2022-04-08 16:37:09 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
2022-04-08 16:37:37 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-04-08 16:40:37 +0200mncheckm(~mncheck@193.224.205.254) (Remote host closed the connection)
2022-04-08 16:40:37 +0200mncheck(~mncheck@193.224.205.254) (Remote host closed the connection)
2022-04-08 16:40:51 +0200haskellberryfinn(~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 246 seconds)
2022-04-08 16:42:45 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
2022-04-08 16:43:10 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-04-08 16:48:25 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
2022-04-08 16:48:44 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-04-08 16:52:29 +0200zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-04-08 16:53:44 +0200zaquest(~notzaques@5.130.79.72)
2022-04-08 16:55:34 +0200gehmehgeh(~user@user/gehmehgeh)
2022-04-08 16:56:53 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 268 seconds)
2022-04-08 16:57:21 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-04-08 16:57:25 +0200deadmarshal_(~deadmarsh@95.38.116.104)
2022-04-08 16:58:37 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
2022-04-08 17:02:18 +0200deadmarshal_(~deadmarsh@95.38.116.104) (Ping timeout: 272 seconds)
2022-04-08 17:02:39 +0200Guest89(~Guest89@2a01:41e1:4454:c00:c143:656:2260:f5bd) (Quit: Client closed)
2022-04-08 17:03:23 +0200lambdabot(~lambdabot@haskell/bot/lambdabot) (Ping timeout: 260 seconds)
2022-04-08 17:04:43 +0200jumper149(~jumper149@base.felixspringer.xyz)
2022-04-08 17:04:53 +0200 <jumper149> Is the package search on Hackage broken for anyone else?
2022-04-08 17:06:04 +0200 <geekosaur> worked for melast night. it just works differently now
2022-04-08 17:06:33 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 256 seconds)
2022-04-08 17:06:33 +0200 <geekosaur> it used to load the whole package database into your browser and search as you typed, now you have to hit return and the backend does the search
2022-04-08 17:07:31 +0200 <jumper149> Ah, firefox works.
2022-04-08 17:08:00 +0200 <geekosaur> I used chrome
2022-04-08 17:08:19 +0200 <jumper149> I guess there is some problem with qutebrowser/QtWebEngine
2022-04-08 17:09:07 +0200edroedr
2022-04-08 17:10:29 +0200cdman(~dcm@user/dmc/x-4369397) (Quit: Leaving)
2022-04-08 17:10:44 +0200 <janus> jumper149: i am the one who did these changes
2022-04-08 17:10:57 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net)
2022-04-08 17:11:01 +0200 <janus> jumper149: probably it breaks in qutebrower because i used top-level await
2022-04-08 17:11:35 +0200 <janus> jumper149: i could try and adapt it to working on older browsers, what kinda configuration are you exactly using?
2022-04-08 17:11:37 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-04-08 17:11:48 +0200 <jumper149> janus: Should I open an issue for qutebrowser?
2022-04-08 17:12:10 +0200Guest89(~Guest89@2a01:41e1:4454:c00:c143:656:2260:f5bd)
2022-04-08 17:12:12 +0200napping(~brandon@65.128.49.110)
2022-04-08 17:12:25 +0200 <jumper149> janus: https://github.com/jumper149/dotfiles/tree/master/.config/qutebrowser
2022-04-08 17:12:42 +0200 <janus> i think the qutebrowser people are already aware that they are lagging behind.. i was just not realizing how many people browse hackage with weird browsers
2022-04-08 17:13:00 +0200 <janus> just had a user complain that it doesn't work on Elinks, so i am working on a patch such that it will
2022-04-08 17:13:37 +0200 <jumper149> janus: Actually Hackage was one of my favorite sites to browse with qutebrowser :D
2022-04-08 17:13:57 +0200 <janus> so essentially, i am planning to have a separate /packages/noscript-search endpoint, then that would be compatible with every single weird browser out there
2022-04-08 17:14:09 +0200 <jumper149> Almost everything is(was?) simple HTML and also Haddock's HTML is very straightforward
2022-04-08 17:14:24 +0200 <geekosaur> mm, /packages still works (if somewhat annoyingly)
2022-04-08 17:14:40 +0200 <geekosaur> thyat is, the ancient interface, which *really* doesn't scale to hackage's current size
2022-04-08 17:15:09 +0200 <janus> the /packages endpoint wasn't changed, i only worked on browse/search
2022-04-08 17:15:51 +0200yauhsien(~yauhsien@61-231-21-149.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
2022-04-08 17:16:12 +0200 <geekosaur> right, I'm just pointing to it as an alternative that works now if people need it
2022-04-08 17:16:37 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:9916:58c:9a05:3071)
2022-04-08 17:16:52 +0200kaph_(~kaph@dynamic-adsl-78-12-162-98.clienti.tiscali.it)
2022-04-08 17:16:56 +0200 <napping> hypertypes looks maybe nice for handling mutually recursive AST types. Any comments before I try it out?
2022-04-08 17:17:19 +0200 <janus> jumper149: the issue with the old browse/search pages is that it was rendering the full list of 19k packages on the server, and then sending that to the client for pagination on the client
2022-04-08 17:18:08 +0200 <janus> jumper149: for people with no javascript, it degraded decently, into a giant table. a server side rendered giant table is what i am to provide with /packages/noscript-search
2022-04-08 17:18:15 +0200 <geekosaur> my poor little laptop was less than amused
2022-04-08 17:18:24 +0200 <jumper149> janus: Ah yeah, I noticed that :D I guess that really did need the improvement
2022-04-08 17:21:20 +0200 <janus> jumper149: so here is what i have been working on last night, as you can see it is just a plain multi-part form with no js: https://github.com/ysangkok/hackage-server/commit/5cd00fdcdfad53ac984d6f2237ae5255276f12f8?w=1#dif…
2022-04-08 17:22:02 +0200 <janus> and it uses <select> to configure the sorting options, which works great in Elinks
2022-04-08 17:22:07 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-04-08 17:23:25 +0200 <jumper149> janus: I'm not sure what is happening on elinks, but maybe I should clarify.
2022-04-08 17:23:47 +0200 <janus> sure, i'd be happy to hear any suggestions
2022-04-08 17:23:48 +0200 <jumper149> janus: On qutebrowser, when I do a search I don't get a single hit.
2022-04-08 17:24:38 +0200 <janus> right, and it is probably because the javascript i have written is a bit too new. Mikolaj (ManOfLetters) had a problem like this
2022-04-08 17:25:14 +0200 <jumper149> Oh, I was just making sure, that got across ^^
2022-04-08 17:25:34 +0200 <janus> so i realize you don't fall into the 'noscript' bucket, i am just trying to explain how i will make sure nobody gets left behind at all. because we had a bug report from a blind user that uses Elinks
2022-04-08 17:27:18 +0200 <janus> it would probably be worthwhile to avoid top-level await too, if that is the only feature that is too new. it only has 84% penetration: https://caniuse.com/?search=top%20level%20await
2022-04-08 17:27:35 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-04-08 17:27:41 +0200DNH(~DNH@2a02:8108:1100:16d8:c02d:dd64:a284:8819) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-04-08 17:27:53 +0200 <jumper149> I can confirm, that the "Advanced Options" also don't currently work on qutebrowser.
2022-04-08 17:28:38 +0200 <jumper149> But I guess the change you mentioned takes care of that.
2022-04-08 17:29:26 +0200 <janus> i think what is happening is that qutebrowser rejects all of browse.js once it sees the top-level await, which is a new syntactical construct
2022-04-08 17:30:01 +0200jmct_(sid160793@id-160793.tinside.irccloud.com) ()
2022-04-08 17:30:20 +0200jmct(sid160793@id-160793.tinside.irccloud.com)
2022-04-08 17:32:13 +0200DNH(~DNH@2a02:8108:1100:16d8:c02d:dd64:a284:8819)
2022-04-08 17:35:56 +0200razetime(~quassel@117.207.16.47)
2022-04-08 17:39:01 +0200lambdabot(~lambdabot@silicon.int-e.eu)
2022-04-08 17:39:01 +0200lambdabot(~lambdabot@silicon.int-e.eu) (Changing host)
2022-04-08 17:39:01 +0200lambdabot(~lambdabot@haskell/bot/lambdabot)
2022-04-08 17:40:30 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:9916:58c:9a05:3071) (Quit: WeeChat 2.8)
2022-04-08 17:41:08 +0200_________(~nobody@user/noodly)
2022-04-08 17:45:36 +0200jumper149(~jumper149@base.felixspringer.xyz) (Ping timeout: 268 seconds)
2022-04-08 17:46:22 +0200jumper149(~jumper149@base.felixspringer.xyz)
2022-04-08 17:48:49 +0200jinsun(~jinsun@user/jinsun) (Read error: Connection reset by peer)
2022-04-08 17:50:08 +0200foul_owl(~kerry@23.82.193.88) (Ping timeout: 260 seconds)
2022-04-08 17:50:49 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl)
2022-04-08 17:51:19 +0200jinsun(~jinsun@user/jinsun)
2022-04-08 17:52:47 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-04-08 17:53:30 +0200jumper149(~jumper149@base.felixspringer.xyz) (Quit: WeeChat 3.3)
2022-04-08 17:57:27 +0200Guest5(~Guest5@ppp079166066114.access.hol.gr)
2022-04-08 17:57:29 +0200jumper149(~jumper149@base.felixspringer.xyz)
2022-04-08 17:57:39 +0200 <shapr> Anyone know enough about hpc to know if I can call it from any old Haskell program and use the results to possibly call it again?
2022-04-08 17:57:58 +0200 <shapr> I want to try hooking code coverage into QuickCheck / Hedgehog
2022-04-08 17:58:35 +0200Guest89(~Guest89@2a01:41e1:4454:c00:c143:656:2260:f5bd) (Quit: Client closed)
2022-04-08 17:59:10 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net) (Remote host closed the connection)
2022-04-08 18:00:59 +0200ec(~ec@gateway/tor-sasl/ec)
2022-04-08 18:02:29 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 18:03:35 +0200CiaoSen(~Jura@p200300c9572d40002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-04-08 18:04:40 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:908b:fdde:9e41:1717)
2022-04-08 18:04:46 +0200 <dsal> Like coverage-oriented fuzzing? That'd be my dream. :)
2022-04-08 18:05:50 +0200foul_owl(~kerry@23.82.193.88)
2022-04-08 18:05:57 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.4.1)
2022-04-08 18:07:12 +0200 <shapr> dsal: yes, last night I was reading https://danluu.com/testing/ and thought it'd be fun to try qc+coverage
2022-04-08 18:07:36 +0200 <shapr> I'll move this to #haskell-in-depth
2022-04-08 18:09:43 +0200odnes(~odnes@5-203-246-201.pat.nym.cosmote.net) (Quit: Leaving)
2022-04-08 18:11:20 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 272 seconds)
2022-04-08 18:14:35 +0200alp_(~alp@user/alp) (Ping timeout: 268 seconds)
2022-04-08 18:16:14 +0200Guest5(~Guest5@ppp079166066114.access.hol.gr) (Quit: Client closed)
2022-04-08 18:17:04 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 18:18:25 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-04-08 18:21:55 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
2022-04-08 18:21:59 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 268 seconds)
2022-04-08 18:22:15 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
2022-04-08 18:24:07 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-04-08 18:24:59 +0200ec(~ec@gateway/tor-sasl/ec)
2022-04-08 18:25:44 +0200alp_(~alp@user/alp)
2022-04-08 18:29:17 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
2022-04-08 18:30:44 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-04-08 18:31:23 +0200rembo10(~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
2022-04-08 18:32:17 +0200rembo10(~rembo10@main.remulis.com)
2022-04-08 18:32:46 +0200DNH(~DNH@2a02:8108:1100:16d8:c02d:dd64:a284:8819) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-04-08 18:33:15 +0200fef(~thedawn@user/thedawn) (Ping timeout: 240 seconds)
2022-04-08 18:33:27 +0200ehammarstrom(~ehammarst@62-20-203-39-no182.tbcn.telia.com) (Ping timeout: 260 seconds)
2022-04-08 18:36:55 +0200cfricke(~cfricke@user/cfricke)
2022-04-08 18:39:53 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-04-08 18:39:53 +0200uncomfy(~uncomfy@27.110.174.130) (Remote host closed the connection)
2022-04-08 18:43:50 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:908b:fdde:9e41:1717) (Quit: WeeChat 2.8)
2022-04-08 18:44:11 +0200MajorBiscuit(~MajorBisc@wlan-145-94-161-127.wlan.tudelft.nl) (Ping timeout: 268 seconds)
2022-04-08 18:46:01 +0200fef(~thedawn@user/thedawn)
2022-04-08 18:47:28 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Read error: Connection reset by peer)
2022-04-08 18:48:00 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-04-08 18:49:03 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds)
2022-04-08 18:58:59 +0200theproffesor(~theprofff@user/theproffesor) (Ping timeout: 268 seconds)
2022-04-08 19:01:55 +0200fef(~thedawn@user/thedawn) (Ping timeout: 240 seconds)
2022-04-08 19:04:43 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-04-08 19:09:14 +0200econo(uid147250@user/econo)
2022-04-08 19:12:33 +0200raym(~raym@user/raym) (Ping timeout: 268 seconds)
2022-04-08 19:14:00 +0200razetime(~quassel@117.207.16.47) (Remote host closed the connection)
2022-04-08 19:14:11 +0200sander(~sander@user/sander) (Quit: So long! :))
2022-04-08 19:14:28 +0200mbuf(~Shakthi@122.164.195.88) (Quit: Leaving)
2022-04-08 19:14:40 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-04-08 19:14:48 +0200fef(~thedawn@user/thedawn)
2022-04-08 19:15:49 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2022-04-08 19:16:07 +0200sander(~sander@user/sander)
2022-04-08 19:16:07 +0200jakalx(~jakalx@base.jakalx.net)
2022-04-08 19:18:45 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-04-08 19:19:40 +0200zeenk(~zeenk@2a02:2f04:a313:d600:8d26:ec9f:3ff6:fc94) (Quit: Konversation terminated!)
2022-04-08 19:20:56 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.4.1)
2022-04-08 19:22:37 +0200Inst(~Liam@c-98-208-218-119.hsd1.fl.comcast.net)
2022-04-08 19:24:51 +0200sander(~sander@user/sander) (Quit: So long! :))
2022-04-08 19:28:19 +0200sander(~sander@user/sander)
2022-04-08 19:40:42 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2022-04-08 19:56:30 +0200chddr1(~Thunderbi@91.226.34.187)
2022-04-08 19:57:30 +0200raym(~raym@user/raym)
2022-04-08 19:58:24 +0200 <Inst> i finally made my first haskell program that does anything!
2022-04-08 19:58:28 +0200chddr(~Thunderbi@91.226.35.164) (Ping timeout: 260 seconds)
2022-04-08 19:58:28 +0200chddr1chddr
2022-04-08 19:58:37 +0200 <Inst> converts a lined wordlist to a 6^6 diceware
2022-04-08 20:00:14 +0200 <Franciman> i'm trying to outperform haskell, instead
2022-04-08 20:00:17 +0200 <Franciman> it's a breeze to do
2022-04-08 20:01:39 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-04-08 20:01:45 +0200vpan(~0@212.117.1.172) (Quit: Leaving.)
2022-04-08 20:06:38 +0200chele(~chele@user/chele) (Remote host closed the connection)
2022-04-08 20:09:19 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 20:10:04 +0200[_](~itchyjunk@user/itchyjunk/x-7353470)
2022-04-08 20:10:07 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2022-04-08 20:11:05 +0200[_][itchyjunk]
2022-04-08 20:11:35 +0200fef(~thedawn@user/thedawn) (Ping timeout: 240 seconds)
2022-04-08 20:12:15 +0200redb(~nmh@136.49.49.211) (Ping timeout: 246 seconds)
2022-04-08 20:12:37 +0200ub(~Thunderbi@p200300ecdf1588f2984ffad2347eabc0.dip0.t-ipconnect.de)
2022-04-08 20:12:41 +0200fef(~thedawn@user/thedawn)
2022-04-08 20:13:12 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-04-08 20:13:40 +0200 <maerwald> what
2022-04-08 20:14:24 +0200 <monochrom> I think the idea is that it is trivial to get better performance by hating laziness.
2022-04-08 20:14:32 +0200 <Inst> haskell isn't high performance
2022-04-08 20:14:37 +0200 <Inst> it's high correctness and high productivity
2022-04-08 20:14:47 +0200 <maerwald> monochrom: hate?
2022-04-08 20:14:59 +0200 <maerwald> ah, you mean *negative production experience*
2022-04-08 20:15:04 +0200 <maerwald> :P
2022-04-08 20:15:10 +0200 <monochrom> discriminating against. refusing to support. or support but second class. etc.
2022-04-08 20:15:25 +0200 <maerwald> well, Idris and Mu work fine with strictness
2022-04-08 20:15:44 +0200 <Inst> btw, maerwald, any thoughts on selling Haskell to middle management?
2022-04-08 20:15:54 +0200 <maerwald> Inst: I never sell haskell to anyone
2022-04-08 20:16:02 +0200 <maerwald> because you need to be all in
2022-04-08 20:16:03 +0200 <Inst> Mu is the best example since Barclays or Standard Chartered (can't remember which) trained all their traders in Haskell
2022-04-08 20:16:09 +0200 <maerwald> they either are already or they are not
2022-04-08 20:16:22 +0200 <Inst> "Control your IT: Haskell for Management" in the business section of a bookstore
2022-04-08 20:16:51 +0200 <maerwald> yes, Standard Charterted talked to GHC devs before they came up with their own compiler
2022-04-08 20:16:52 +0200 <monochrom> Do you know of a way to implement immutable FIFO queue with O(1)-time operations without laziness?
2022-04-08 20:17:03 +0200 <Inst> iirc mu is strict by default
2022-04-08 20:17:06 +0200 <maerwald> it appears there wasn't enough overlap
2022-04-08 20:17:23 +0200 <maerwald> and GHC wasn't able to deliver their needs
2022-04-08 20:17:53 +0200 <maerwald> Inst: https://www.youtube.com/watch?v=A70SN7vFsKU
2022-04-08 20:17:54 +0200 <monochrom> I may jump ship and start to prefer eagerness (in the context of purity) if I know how to do that.
2022-04-08 20:18:15 +0200 <Inst> laziness is just an awesome language feature
2022-04-08 20:18:20 +0200 <Inst> it's not just very practical
2022-04-08 20:18:45 +0200 <maerwald> Inst: some people argue laziness is more interesting for compiler optimization than it is for end-users
2022-04-08 20:18:46 +0200 <Inst> Xie Ningning is cute
2022-04-08 20:19:11 +0200 <maerwald> as a reasoning platform, I agree that laziness can be quite awful beyond simplistic teaching snippets
2022-04-08 20:19:30 +0200 <maerwald> but the topic is somewhat complicated as a whole
2022-04-08 20:20:06 +0200 <Franciman> next time somebody shows me how to have an elegant fix in strict languages
2022-04-08 20:20:07 +0200 <maerwald> I'm not sure eagerness by default is a better choice for a *general purpose* language. But for certain use cases, it very much is.
2022-04-08 20:20:14 +0200 <Franciman> i may start to prefer eagerness
2022-04-08 20:20:48 +0200 <Inst> i'm more wondering if if you roll an educational prelude, whether you'd set up strict
2022-04-08 20:20:55 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 256 seconds)
2022-04-08 20:21:10 +0200 <maerwald> Inst: laziness issues usually happen in complex code, not in small examples
2022-04-08 20:21:25 +0200 <Inst> laziness issues: exploitation of laziness?
2022-04-08 20:21:35 +0200 <maerwald> you don't have complex code when you teach Haskell
2022-04-08 20:21:36 +0200 <Franciman> i mean, fix f = let x = f x in x
2022-04-08 20:21:45 +0200 <Inst> i mean, i get the feeling it'd be better, if you had an educational prelude, to set strict by default, then drop it once you start teaching laziness
2022-04-08 20:22:14 +0200 <Inst> you're saying laziness wouldn't provide an issue
2022-04-08 20:22:16 +0200 <Franciman> i dare you to do better in an eager language
2022-04-08 20:22:32 +0200 <maerwald> laziness is probably much better for teaching... as a high-level concept it's quite cool. It breaks down once you have complex programs and you need to reason about the *exact* behavior (the allocations)
2022-04-08 20:23:32 +0200 <Franciman> as a whole, i probably like optimal evaluation more. I mean, the whole concept of laziness is sparing the useless computations right?
2022-04-08 20:23:38 +0200 <Franciman> well optimal evaluation does it better
2022-04-08 20:23:38 +0200 <maerwald> naive debugging won't help you much there
2022-04-08 20:23:46 +0200 <Franciman> but, optimal evaluation is DAYUMN HARD
2022-04-08 20:24:03 +0200 <monochrom> All of "laziness is easier for beginners", "eagerness is easier for beginners", "no no no, call-by-name is easier for beginners" are prejudiced.
2022-04-08 20:24:28 +0200 <maerwald> but hey, we're complaining on a high-level here. We want haskell to do everything: abstract nonsense and performant complex applications. Shows how much Haskell has spoiled us ;)
2022-04-08 20:24:47 +0200 <Franciman> i wonder if you can have monochrom's favourite task in optimal evaluation
2022-04-08 20:24:53 +0200 <Franciman> O(1)-time operations on a fifo queue
2022-04-08 20:25:13 +0200 <dolio> Doesn't optimal save strictly more work than lazy?
2022-04-08 20:25:21 +0200 <monochrom> An absolute beginner (one without any previous programming exposure) is equally likely to prefer any of the three.
2022-04-08 20:25:36 +0200 <Franciman> dolio: would the same implementation work, hence?
2022-04-08 20:25:51 +0200 <dolio> Presumably.
2022-04-08 20:25:53 +0200 <Franciman> it may trigger different computations
2022-04-08 20:25:53 +0200 <monochrom> And a Haskell beginner who is not a programming beginner is necessarily prejudiced towards whatever the previous language does.
2022-04-08 20:26:04 +0200 <Franciman> yeah
2022-04-08 20:26:11 +0200 <Franciman> it should work
2022-04-08 20:26:17 +0200 <Franciman> maybe it becomes O(0)
2022-04-08 20:26:19 +0200 <Franciman> XD
2022-04-08 20:26:25 +0200 <dolio> If it doesn't avoid unnecessary work, then it's not saving strictly more work.
2022-04-08 20:26:37 +0200 <Franciman> because we don't have an optimal evaluation implementation
2022-04-08 20:26:42 +0200 <Franciman> so it's impossible to implement it
2022-04-08 20:26:43 +0200 <dolio> Or, unnecessary under lazy evaluation.
2022-04-08 20:26:58 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 20:27:11 +0200 <Franciman> wait we have HVM.
2022-04-08 20:27:32 +0200 <monochrom> How do I do optimal evaluation?
2022-04-08 20:27:54 +0200 <Franciman> there is a book by asperti on the subject
2022-04-08 20:28:04 +0200 <monochrom> Yikes. OK.
2022-04-08 20:28:07 +0200 <Franciman> and it hints that optimal evaluation is linked to linear logic
2022-04-08 20:29:25 +0200 <Franciman> http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.465.2149&rep=rep1&type=pdf
2022-04-08 20:29:41 +0200 <monochrom> Thanks.
2022-04-08 20:29:52 +0200 <dolio> It's not terribly clear that there are non-gimmick examples where it's actually meaningfully better.
2022-04-08 20:29:56 +0200 <Franciman> this is an implementation
2022-04-08 20:30:07 +0200 <Franciman> i can't find the book hmm
2022-04-08 20:30:34 +0200 <monochrom> I probably won't be reading the book either.
2022-04-08 20:30:49 +0200 <Franciman> monochrom: https://www.cambridge.org/catalogue/catalogue.asp?isbn=9780521621120
2022-04-08 20:31:38 +0200 <Franciman> ah ok
2022-04-08 20:31:55 +0200 <monochrom> Oh, CUP books are very affordable though.
2022-04-08 20:31:56 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 272 seconds)
2022-04-08 20:32:00 +0200 <Franciman> supercombinators
2022-04-08 20:32:34 +0200coot(~coot@213.134.190.95)
2022-04-08 20:32:48 +0200 <Franciman> as dolio says, it's a controversial subject
2022-04-08 20:33:42 +0200 <dolio> Like, it's good if you want to lambda-encode every data type. However, that's just fixing something you decided to do for philosophical reasons or something.
2022-04-08 20:34:23 +0200 <dolio> In a considerably more complicated way.
2022-04-08 20:34:45 +0200 <Franciman> it would be good for system f to be practically used
2022-04-08 20:34:47 +0200 <Franciman> yes
2022-04-08 20:35:54 +0200 <napping> strictness collapses in a total language. Not sure Idris is good for beginners, but perhaps?
2022-04-08 20:36:10 +0200DNH(~DNH@2a02:8108:1100:16d8:c02d:dd64:a284:8819)
2022-04-08 20:37:36 +0200 <Franciman> dolio: would proof search benefit from it tho?
2022-04-08 20:37:46 +0200 <monochrom> Wait, what does "strictness collapses" mean?
2022-04-08 20:37:48 +0200 <Franciman> i don't think so. So it's not relevant for Theorem Provers either
2022-04-08 20:38:08 +0200 <napping> I mean you can't observe different results between strict and lazy evaluation in a total language
2022-04-08 20:38:12 +0200 <dolio> I don't see the connection.
2022-04-08 20:38:25 +0200ub(~Thunderbi@p200300ecdf1588f2984ffad2347eabc0.dip0.t-ipconnect.de) (Quit: ub)
2022-04-08 20:38:33 +0200 <monochrom> Ah right, but people start to observe time and space consumptions...
2022-04-08 20:38:47 +0200ub(~Thunderbi@p200300ecdf1588f2984ffad2347eabc0.dip0.t-ipconnect.de)
2022-04-08 20:39:12 +0200 <Franciman> the nice thing about laziness is that it allows you to decide wether to mention or to use a term
2022-04-08 20:39:13 +0200 <dolio> Right, that's exactly why it's simplistic to say that 'data' should be eager and 'codata' is for lazy stuff.
2022-04-08 20:39:35 +0200 <Franciman> so you can mention infinitely looping things
2022-04-08 20:39:42 +0200 <Franciman> and evaluate just a bit of them
2022-04-08 20:39:56 +0200 <napping> If you postulate beginning programs wouldn't have a preference, your beginners are writing small enough programs to not care about such operational concerns
2022-04-08 20:39:58 +0200 <Franciman> that's intriguing... Composing infinitely looping things, in a way that actually won't loop forever
2022-04-08 20:40:36 +0200 <Franciman> o1lo0lol1o[m]: why is it a simplistic view?
2022-04-08 20:40:38 +0200 <Franciman> ops
2022-04-08 20:40:39 +0200 <monochrom> OK yeah. I don't think Idris is difficult for beginners.
2022-04-08 20:40:40 +0200 <Franciman> sorry
2022-04-08 20:40:42 +0200 <Franciman> dolio: ^
2022-04-08 20:41:17 +0200 <dolio> Because just because something is finite doesn't mean it's best for it to be barfed into memory in its entirety immediately.
2022-04-08 20:41:35 +0200 <o1lo0lol1o[m]> Franciman: Pff, who you calling simplistic!
2022-04-08 20:41:42 +0200 <monochrom> haha
2022-04-08 20:41:45 +0200 <Franciman> :)
2022-04-08 20:41:49 +0200redb(~nmh@136.49.49.211)
2022-04-08 20:42:17 +0200 <napping> yes, 2^2^2^2^2^2^2^2 is trivially total, but you shouldn't eagerly evaluate it
2022-04-08 20:42:18 +0200theproffesor(~theprofff@user/theproffesor)
2022-04-08 20:42:28 +0200 <Franciman> dolio: but categorical semantics are cleaner that way
2022-04-08 20:42:41 +0200 <Franciman> i mean that's where the simpistic view is coming from
2022-04-08 20:43:03 +0200fr33domlover(~fr33@5.102.204.220) (Ping timeout: 246 seconds)
2022-04-08 20:43:20 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-04-08 20:43:35 +0200 <Franciman> well. I'll be leaving for the night
2022-04-08 20:43:39 +0200 <Franciman> have a nice lazy time!
2022-04-08 20:44:54 +0200 <dolio> No, it comes from people conflating data in total languages with superficially similar definitions in eager partial languages, and similarly with codata.
2022-04-08 20:45:00 +0200 <napping> and sometimes a useful trick in total programming - "no, don't evaluate *forever*, just check if it returns a result before 2^2^2^2^2^2^2^2 steps"
2022-04-08 20:45:40 +0200ub(~Thunderbi@p200300ecdf1588f2984ffad2347eabc0.dip0.t-ipconnect.de) (Quit: ub)
2022-04-08 20:46:12 +0200redb(~nmh@136.49.49.211) (Ping timeout: 246 seconds)
2022-04-08 20:46:50 +0200geranim0(~geranim0@modemcable242.171-178-173.mc.videotron.ca)
2022-04-08 20:46:50 +0200bob(~geranim0@modemcable242.171-178-173.mc.videotron.ca)
2022-04-08 20:47:06 +0200bob(~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Read error: Connection reset by peer)
2022-04-08 20:47:36 +0200 <monochrom> "Example 3: Suppose to represent an array as a function, considering the index as an argument. The following code contains a mergesort algorithm for this representation of arrays." :(
2022-04-08 20:48:17 +0200 <monochrom> (It's from the technical report on optimal evaluation, "The Bologna Optimal Higher-order Machine".
2022-04-08 20:49:07 +0200 <monochrom> So yeah gimmick example that presupposes a very stubborn philosophy...
2022-04-08 20:49:23 +0200 <dolio> Yeah.
2022-04-08 20:49:58 +0200redb(~nmh@136.49.49.211)
2022-04-08 20:54:55 +0200redb(~nmh@136.49.49.211) (Ping timeout: 268 seconds)
2022-04-08 20:56:05 +0200 <dolio> That's a common thing to fixate on. Minimizataion of the number of building blocks to the exclusion of all else.
2022-04-08 21:00:01 +0200 <dolio> Like the complaints people with a Python philosophy make here, where there are two (or more) ways to write something, and you need to choose which is nicest in each case.
2022-04-08 21:00:21 +0200 <monochrom> Even Turing recognized "no no of course you'd better build special hardware adders instead of a Turing adder machine"...
2022-04-08 21:06:53 +0200 <monochrom> "Tartaglia’s triangle (also and improperly known as Pascal’s triangle)." Haha, sounds like the Italians are reminding us "this was an Italian achievement, not a French achievement!"
2022-04-08 21:07:47 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 21:08:10 +0200 <monochrom> But more seriously, "We just remark the use of the function “eval” to “force” the explicit evaluation of each row. This is needed in order to share this computation at later steps." You know what, I heard of a dual issue or two in lazy evaluation...
2022-04-08 21:11:09 +0200redb(~nmh@136.49.49.211)
2022-04-08 21:12:12 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 240 seconds)
2022-04-08 21:12:15 +0200epolanski(uid312403@id-312403.helmsley.irccloud.com)
2022-04-08 21:12:29 +0200Henson(~kvirc@107-179-133-201.cpe.teksavvy.com)
2022-04-08 21:12:56 +0200 <monochrom> The overall thesis being that, for each evaluation order, there is a use case, even in toy examples, that requires hand annotation to nudge the computer away from dumb work. None is fully automatic.
2022-04-08 21:15:15 +0200redb(~nmh@136.49.49.211) (Ping timeout: 246 seconds)
2022-04-08 21:17:25 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 21:18:05 +0200 <dolio> Yeah, my "production experience" is that you don't get something good from not thinking about the problem, regardless of default evaluation order.
2022-04-08 21:23:17 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 268 seconds)
2022-04-08 21:27:58 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 21:31:46 +0200redb(~nmh@136.49.49.211)
2022-04-08 21:32:03 +0200nun13(~nun@61.140.162.8) (Ping timeout: 246 seconds)
2022-04-08 21:32:41 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 248 seconds)
2022-04-08 21:41:55 +0200fef(~thedawn@user/thedawn) (Ping timeout: 240 seconds)
2022-04-08 21:42:17 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 21:42:53 +0200vicfred(~vicfred@user/vicfred)
2022-04-08 21:43:26 +0200vicfred(~vicfred@user/vicfred) (Remote host closed the connection)
2022-04-08 21:44:26 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-04-08 21:45:01 +0200vicfred(~vicfred@user/vicfred)
2022-04-08 21:47:20 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 268 seconds)
2022-04-08 21:47:56 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Ping timeout: 272 seconds)
2022-04-08 21:48:43 +0200phma_(~phma@2001:5b0:210d:6f38:47d2:1a57:a8ac:4c26)
2022-04-08 21:48:45 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2022-04-08 21:50:03 +0200phma(~phma@2001:5b0:210d:afb8:c88d:676:78f3:7b6d) (Read error: Connection reset by peer)
2022-04-08 21:50:44 +0200Topsi1(~Tobias@dyndsl-095-033-091-154.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2022-04-08 21:52:29 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 21:52:43 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net)
2022-04-08 21:52:53 +0200redb(~nmh@136.49.49.211) (Ping timeout: 268 seconds)
2022-04-08 21:55:53 +0200Henson(~kvirc@107-179-133-201.cpe.teksavvy.com) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/)
2022-04-08 21:55:53 +0200 <maerwald> dolio: lazy evaulation is harder to reason about in complex cases
2022-04-08 21:56:13 +0200 <maerwald> I don't know many who disagree with that
2022-04-08 21:56:54 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 246 seconds)
2022-04-08 21:57:35 +0200rekahsoft(~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com)
2022-04-08 21:58:04 +0200 <maerwald> https://docs.idris-lang.org/en/v0.9.18.1/faq/faq.html#why-does-idris-use-eager-evaluation-rather-t…
2022-04-08 22:00:08 +0200acidjnk(~acidjnk@p200300d0c7049f91e010d86dcc64fbcb.dip0.t-ipconnect.de)
2022-04-08 22:02:21 +0200rekahsoft(~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com) (Remote host closed the connection)
2022-04-08 22:02:43 +0200rekahsoft(~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com)
2022-04-08 22:03:06 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
2022-04-08 22:05:38 +0200cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection)
2022-04-08 22:06:13 +0200chddr(~Thunderbi@91.226.34.187) (Ping timeout: 240 seconds)
2022-04-08 22:06:32 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 22:09:27 +0200redb(~nmh@136.49.49.211)
2022-04-08 22:10:54 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 246 seconds)
2022-04-08 22:13:21 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds)
2022-04-08 22:13:42 +0200redb(~nmh@136.49.49.211) (Ping timeout: 246 seconds)
2022-04-08 22:15:20 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-04-08 22:15:21 +0200slack1256(~slack1256@191.125.227.86)
2022-04-08 22:17:05 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 22:18:41 +0200 <slack1256> Is there a haskell-cafe like for stack and stack lts?
2022-04-08 22:19:59 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2022-04-08 22:21:12 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
2022-04-08 22:21:37 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 256 seconds)
2022-04-08 22:22:44 +0200Lord_of_Life_Lord_of_Life
2022-04-08 22:25:14 +0200dextaa7(~dextaa@user/dextaa)
2022-04-08 22:25:22 +0200redb(~nmh@136.49.49.211)
2022-04-08 22:28:41 +0200dextaa(~dextaa@user/dextaa) (Ping timeout: 248 seconds)
2022-04-08 22:28:41 +0200dextaa7dextaa
2022-04-08 22:29:45 +0200redb(~nmh@136.49.49.211) (Ping timeout: 248 seconds)
2022-04-08 22:31:08 +0200redb(~nmh@136.49.49.211)
2022-04-08 22:32:02 +0200gabriel_sevecek(~gabriel@188-167-229-200.dynamic.chello.sk) (Quit: WeeChat 3.5)
2022-04-08 22:33:03 +0200Guest27(~Guest27@2601:281:d47f:1590::a504)
2022-04-08 22:34:27 +0200 <Guest27> Trying to get `cabal v2-install` to dynamically link. `cabal v2-build` does it successfully but passing `--enable-executable-dynamic` to `install` still results in a static executable being built and symlinked
2022-04-08 22:35:21 +0200 <sclv> known bug with install iirc
2022-04-08 22:35:37 +0200redb(~nmh@136.49.49.211) (Ping timeout: 248 seconds)
2022-04-08 22:35:41 +0200 <sclv> treats those flags as not applying properly
2022-04-08 22:36:34 +0200 <Guest27> Is there another way to get them to apply? Having a `<pkg>.cabal` and `cabal.project` file in the root directory seems to break cabal
2022-04-08 22:37:04 +0200 <sclv> just use build and symlink by hand?
2022-04-08 22:37:24 +0200 <Guest27> Yee I'll just do that
2022-04-08 22:37:30 +0200gabriel_sevecek(~gabriel@188-167-229-200.dynamic.chello.sk)
2022-04-08 22:38:33 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds)
2022-04-08 22:39:04 +0200 <jumper149> In the base Haddock it says, that `Word` has the same size as `Int`. So I guess they should be coercible? How can I cast one to the other?
2022-04-08 22:40:01 +0200ubert(~Thunderbi@p200300ecdf1588f2bfd6f68985df9e03.dip0.t-ipconnect.de) (Remote host closed the connection)
2022-04-08 22:40:14 +0200michalz(~michalz@185.246.204.122) (Remote host closed the connection)
2022-04-08 22:40:17 +0200 <geekosaur> :t fromIntegral
2022-04-08 22:40:18 +0200 <lambdabot> (Integral a, Num b) => a -> b
2022-04-08 22:40:40 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-04-08 22:42:22 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 22:42:52 +0200 <jumper149> geekosaur: That does work :) Do you know why this works, but `toEnum` doesn't?
2022-04-08 22:44:17 +0200[_](~itchyjunk@user/itchyjunk/x-7353470)
2022-04-08 22:44:53 +0200 <geekosaur> not offhand
2022-04-08 22:44:56 +0200 <Guest27> :t toEnum
2022-04-08 22:44:57 +0200 <lambdabot> Enum a => Int -> a
2022-04-08 22:45:09 +0200 <geekosaur> toEnum does have restrictions though
2022-04-08 22:45:35 +0200 <geekosaur> you'd use fromEnum to go the other way
2022-04-08 22:45:57 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2022-04-08 22:46:57 +0200 <geekosaur> or did you mean something other than a type error for "doesn't"?
2022-04-08 22:47:13 +0200deadmarshal_(~deadmarsh@95.38.116.104)
2022-04-08 22:49:20 +0200redb(~nmh@136.49.49.211)
2022-04-08 22:51:39 +0200deadmarshal_(~deadmarsh@95.38.116.104) (Ping timeout: 256 seconds)
2022-04-08 22:51:56 +0200 <geekosaur> (also note that de facto Int is one bit shorter than Word)
2022-04-08 22:51:56 +0200 <geekosaur> > 2^63 :: Int
2022-04-08 22:51:56 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2022-04-08 22:51:58 +0200 <lambdabot> -9223372036854775808
2022-04-08 22:53:35 +0200 <int-e> > Seq.length $ iterate (\a -> a <> a) (Seq.singleton ()) !! 63
2022-04-08 22:53:37 +0200 <lambdabot> -9223372036854775808
2022-04-08 22:53:41 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2022-04-08 22:53:45 +0200 <monochrom> toEnum probably has bound checks that fromIntegral doesn't.
2022-04-08 22:54:01 +0200 <monochrom> To a large extent Enum requires bound checks.
2022-04-08 22:54:34 +0200 <monochrom> Also note that "same size" means same number of bits, therefore ironically not range-safe.
2022-04-08 22:55:45 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Excess Flood)
2022-04-08 22:55:47 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2022-04-08 22:55:50 +0200allbery_bgeekosaur
2022-04-08 22:57:39 +0200phma_phma
2022-04-08 23:00:09 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 256 seconds)
2022-04-08 23:01:06 +0200dextaa(~dextaa@user/dextaa) (Read error: Connection reset by peer)
2022-04-08 23:03:14 +0200dextaa(~dextaa@user/dextaa)
2022-04-08 23:05:20 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-04-08 23:05:27 +0200hgolden(~hgolden2@cpe-172-251-233-141.socal.res.rr.com)
2022-04-08 23:06:27 +0200redb(~nmh@136.49.49.211) (Ping timeout: 260 seconds)
2022-04-08 23:08:02 +0200Guest27(~Guest27@2601:281:d47f:1590::a504) (Ping timeout: 250 seconds)
2022-04-08 23:09:21 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds)
2022-04-08 23:10:58 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-04-08 23:14:55 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 23:17:52 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
2022-04-08 23:21:51 +0200DNH(~DNH@2a02:8108:1100:16d8:c02d:dd64:a284:8819) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-04-08 23:23:29 +0200redb(~nmh@136.49.49.211)
2022-04-08 23:23:43 +0200coot(~coot@213.134.190.95) (Ping timeout: 260 seconds)
2022-04-08 23:25:51 +0200neurocyte8614492(~neurocyte@IP-212232093103.dynamic.medianet-world.de)
2022-04-08 23:25:51 +0200neurocyte8614492(~neurocyte@IP-212232093103.dynamic.medianet-world.de) (Changing host)
2022-04-08 23:25:51 +0200neurocyte8614492(~neurocyte@user/neurocyte)
2022-04-08 23:27:36 +0200DNH(~DNH@2a02:8108:1100:16d8:c02d:dd64:a284:8819)
2022-04-08 23:29:26 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-04-08 23:31:33 +0200redb(~nmh@136.49.49.211) (Ping timeout: 268 seconds)
2022-04-08 23:39:38 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 23:39:42 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-04-08 23:40:14 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-04-08 23:41:54 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Ping timeout: 246 seconds)
2022-04-08 23:43:09 +0200deadmarshal_(~deadmarsh@95.38.117.122)
2022-04-08 23:43:15 +0200wyrd(~wyrd@gateway/tor-sasl/wyrd) (Ping timeout: 240 seconds)
2022-04-08 23:44:55 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 256 seconds)
2022-04-08 23:46:01 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-04-08 23:46:08 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-04-08 23:46:29 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-04-08 23:48:16 +0200deadmarshal_(~deadmarsh@95.38.117.122) (Ping timeout: 272 seconds)
2022-04-08 23:50:03 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds)
2022-04-08 23:50:10 +0200wyrd(~wyrd@gateway/tor-sasl/wyrd)
2022-04-08 23:50:35 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2022-04-08 23:51:28 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-04-08 23:53:07 +0200acidjnk(~acidjnk@p200300d0c7049f91e010d86dcc64fbcb.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-04-08 23:53:23 +0200sandersndr
2022-04-08 23:53:29 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
2022-04-08 23:56:17 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2022-04-08 23:59:53 +0200redb(~nmh@136.49.49.211)