2022/03/27

2022-03-27 00:03:34 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 272 seconds)
2022-03-27 00:04:31 +0100justsomeguy(~justsomeg@user/justsomeguy)
2022-03-27 00:07:17 +0100yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 00:13:02 +0100deadmarshal_(~deadmarsh@95.38.230.121)
2022-03-27 00:13:04 +0100yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
2022-03-27 00:17:17 +0100deadmarshal_(~deadmarsh@95.38.230.121) (Ping timeout: 240 seconds)
2022-03-27 00:18:12 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 240 seconds)
2022-03-27 00:29:45 +0100Pickchea(~private@user/pickchea) (Quit: Leaving)
2022-03-27 00:31:14 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-03-27 00:32:11 +0100Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Ping timeout: 256 seconds)
2022-03-27 00:32:19 +0100gurkenglas(~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de)
2022-03-27 00:33:07 +0100Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net)
2022-03-27 00:34:37 +0100acidjnk(~acidjnk@p200300d0c7049f68c1d0bc0d753b520f.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-03-27 00:35:16 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-03-27 00:42:26 +0100alp(~alp@user/alp) (Ping timeout: 245 seconds)
2022-03-27 00:47:36 +0100mvk(~mvk@2607:fea8:5cc3:7e00::7980)
2022-03-27 00:52:56 +0100rawley(~rawley@216-197-141-102.nbfr.hsdb.sasknet.sk.ca)
2022-03-27 00:57:11 +0100gurkenglas(~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de) (Read error: Connection reset by peer)
2022-03-27 00:57:23 +0100machinedgod(~machinedg@24.105.81.50)
2022-03-27 00:59:20 +0100DNH(~DNH@8.44.0.63)
2022-03-27 01:01:29 +0100gurkenglas(~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de)
2022-03-27 01:05:05 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-03-27 01:14:12 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Ping timeout: 240 seconds)
2022-03-27 01:14:26 +0100azimut_(~azimut@gateway/tor-sasl/azimut)
2022-03-27 01:14:38 +0100raehik(~raehik@82.21.176.157)
2022-03-27 01:16:15 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2022-03-27 01:17:35 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
2022-03-27 01:19:48 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2022-03-27 01:20:45 +0100kaph_(~kaph@net-109-116-124-149.cust.vodafonedsl.it) (Read error: Connection reset by peer)
2022-03-27 01:24:15 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
2022-03-27 01:26:40 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2022-03-27 01:27:02 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2022-03-27 01:27:46 +0100AlexNoo_(~AlexNoo@178.34.150.116)
2022-03-27 01:27:57 +0100AlexNoo(~AlexNoo@178.34.150.116) (Read error: Connection reset by peer)
2022-03-27 01:30:28 +0100wroathe(~wroathe@ee4.ips.PaulBunyan.net)
2022-03-27 01:30:28 +0100wroathe(~wroathe@ee4.ips.PaulBunyan.net) (Changing host)
2022-03-27 01:30:28 +0100wroathe(~wroathe@user/wroathe)
2022-03-27 01:31:55 +0100justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 260 seconds)
2022-03-27 01:32:15 +0100raehik(~raehik@82.21.176.157) (Ping timeout: 256 seconds)
2022-03-27 01:32:19 +0100lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-27 01:33:57 +0100zyklotomic(~ethan@res388d-128-61-91-192.res.gatech.edu) (Ping timeout: 256 seconds)
2022-03-27 01:35:36 +0100zyklotomic(~ethan@r4-128-61-94-5.res.gatech.edu)
2022-03-27 01:35:42 +0100epolanski(uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2022-03-27 01:37:24 +0100rawley(~rawley@216-197-141-102.nbfr.hsdb.sasknet.sk.ca) (Read error: Connection reset by peer)
2022-03-27 01:37:33 +0100rawley_(~rawley@216-197-141-102.nbfr.hsdb.sasknet.sk.ca)
2022-03-27 01:38:17 +0100rawley_(~rawley@216-197-141-102.nbfr.hsdb.sasknet.sk.ca) (Remote host closed the connection)
2022-03-27 01:38:42 +0100rawley_(~rawley@216-197-141-102.nbfr.hsdb.sasknet.sk.ca)
2022-03-27 01:39:02 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-03-27 01:40:19 +0100pnotequalnp(~kevin@user/pnotequalnp) (Ping timeout: 260 seconds)
2022-03-27 01:42:56 +0100Tuplanolla(~Tuplanoll@91-159-69-98.elisa-laajakaista.fi) (Quit: Leaving.)
2022-03-27 01:47:44 +0100merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-03-27 01:48:06 +0100chenqisu1(~chenqisu1@183.217.201.88)
2022-03-27 01:50:13 +0100cyphase(~cyphase@user/cyphase) (Ping timeout: 268 seconds)
2022-03-27 01:54:36 +0100cyphase(~cyphase@user/cyphase)
2022-03-27 01:55:51 +0100DNH(~DNH@8.44.0.63) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-03-27 03:06:32 +0200Jeanne-Kamikaze(~Jeanne-Ka@142.147.89.202)
2022-03-27 03:15:47 +0200aliosablack(~chomwitt@2a02:587:dc18:da00:eb71:868b:3400:4636) (Ping timeout: 260 seconds)
2022-03-27 03:17:25 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 240 seconds)
2022-03-27 03:22:07 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
2022-03-27 03:26:42 +0200Maxdamantus(~Maxdamant@user/maxdamantus) (Ping timeout: 272 seconds)
2022-03-27 03:27:19 +0200Maxdamantus(~Maxdamant@user/maxdamantus)
2022-03-27 03:28:37 +0200rawley_(~rawley@216-197-141-102.nbfr.hsdb.sasknet.sk.ca) (Quit: Leaving)
2022-03-27 03:28:56 +0200rawley(~rawley@216-197-141-102.nbfr.hsdb.sasknet.sk.ca)
2022-03-27 03:29:50 +0200rawley(~rawley@216-197-141-102.nbfr.hsdb.sasknet.sk.ca) (Client Quit)
2022-03-27 03:30:03 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 03:30:06 +0200rawley(~rawley@216-197-141-102.nbfr.hsdb.sasknet.sk.ca)
2022-03-27 03:31:00 +0200mvk(~mvk@2607:fea8:5cc3:7e00::7980) (Ping timeout: 240 seconds)
2022-03-27 03:33:10 +0200rustacean(~quassel@117.254.34.143)
2022-03-27 03:33:29 +0200rustacean(~quassel@117.254.34.143) (Client Quit)
2022-03-27 03:33:43 +0200razetime(~quassel@117.254.34.143)
2022-03-27 03:34:26 +0200alp(~alp@user/alp)
2022-03-27 03:34:37 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2022-03-27 03:37:09 +0200vglfr(~vglfr@37.73.58.115)
2022-03-27 03:38:35 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2022-03-27 03:40:08 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-03-27 03:40:14 +0200rekahsoft(~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com)
2022-03-27 03:41:13 +0200rekahsoft(~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com) (Remote host closed the connection)
2022-03-27 03:41:18 +0200xkuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2022-03-27 03:41:33 +0200rekahsoft(~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com)
2022-03-27 03:43:10 +0200gurkenglas(~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de) (Ping timeout: 272 seconds)
2022-03-27 03:45:10 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-27 03:47:52 +0200rekahsoft(~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com) (Remote host closed the connection)
2022-03-27 03:47:57 +0200xff0x(~xff0x@i121-117-52-147.s41.a013.ap.plala.or.jp) (Ping timeout: 256 seconds)
2022-03-27 03:50:26 +0200zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-03-27 03:51:05 +0200rekahsoft(~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com)
2022-03-27 03:51:19 +0200rekahsoft(~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com) (Remote host closed the connection)
2022-03-27 03:51:44 +0200rekahsoft(~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com)
2022-03-27 03:52:24 +0200zaquest(~notzaques@5.130.79.72)
2022-03-27 03:55:57 +0200joo-_(~joo-_@fsf/member/joo--) (Ping timeout: 252 seconds)
2022-03-27 03:57:34 +0200joo-_(~joo-_@80-62-117-54-mobile.dk.customer.tdc.net)
2022-03-27 03:57:34 +0200joo-_(~joo-_@80-62-117-54-mobile.dk.customer.tdc.net) (Changing host)
2022-03-27 03:57:34 +0200joo-_(~joo-_@fsf/member/joo--)
2022-03-27 04:02:13 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2022-03-27 04:04:06 +0200wroathe(~wroathe@ee4.ips.PaulBunyan.net)
2022-03-27 04:04:06 +0200wroathe(~wroathe@ee4.ips.PaulBunyan.net) (Changing host)
2022-03-27 04:04:06 +0200wroathe(~wroathe@user/wroathe)
2022-03-27 04:04:13 +0200vglfr(~vglfr@37.73.58.115) (Ping timeout: 268 seconds)
2022-03-27 04:10:14 +0200vglfr(~vglfr@37.73.58.115)
2022-03-27 04:10:57 +0200 <razetime> hi, i'm trying to install a package with cabal but get this weird error:
2022-03-27 04:10:57 +0200 <razetime> cabal: Error: some packages failed to install:
2022-03-27 04:10:57 +0200 <razetime> ghc-lib-parser-8.10.7.20220219-7xoqX1liclfEDk8lJQn5pT failed during the
2022-03-27 04:10:57 +0200 <razetime> configure step. The exception was:
2022-03-27 04:10:57 +0200 <razetime> ExitFailure 1
2022-03-27 04:10:57 +0200 <razetime> ormolu-0.1.4.1-IQBEtLLThqGE3isZmjbrfL depends on ormolu-0.1.4.1 which failed
2022-03-27 04:10:59 +0200 <razetime> to install.
2022-03-27 04:18:01 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Read error: Connection reset by peer)
2022-03-27 04:18:07 +0200awschnap(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-27 04:20:36 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
2022-03-27 04:24:49 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-03-27 04:25:06 +0200AlexNoo__(~AlexNoo@94.233.240.35)
2022-03-27 04:25:13 +0200xff0x(~xff0x@i121-117-52-147.s41.a013.ap.plala.or.jp)
2022-03-27 04:25:17 +0200Katarushisu(~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Read error: Connection reset by peer)
2022-03-27 04:26:12 +0200razetime(~quassel@117.254.34.143) (Ping timeout: 240 seconds)
2022-03-27 04:26:37 +0200AlexZenon(~alzenon@178.34.150.116) (Ping timeout: 240 seconds)
2022-03-27 04:26:56 +0200razetime(~quassel@117.254.34.170)
2022-03-27 04:27:34 +0200Katarushisu(~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net)
2022-03-27 04:27:39 +0200Alex_test(~al_test@178.34.150.116) (Ping timeout: 250 seconds)
2022-03-27 04:28:17 +0200vglfr(~vglfr@37.73.58.115) (Ping timeout: 240 seconds)
2022-03-27 04:28:17 +0200AlexNoo_(~AlexNoo@178.34.150.116) (Ping timeout: 240 seconds)
2022-03-27 04:30:28 +0200AlexZenon(~alzenon@94.233.240.35)
2022-03-27 04:31:34 +0200Alex_test(~al_test@94.233.240.35)
2022-03-27 04:39:14 +0200harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2022-03-27 04:40:24 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 04:41:41 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-03-27 04:41:42 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-03-27 04:41:42 +0200finn_elijaFinnElija
2022-03-27 04:42:36 +0200wyrd(~wyrd@gateway/tor-sasl/wyrd) (Quit: Lost terminal)
2022-03-27 04:44:36 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2022-03-27 04:54:47 +0200alp(~alp@user/alp) (Ping timeout: 268 seconds)
2022-03-27 04:55:57 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2022-03-27 04:58:53 +0200wroathe(~wroathe@user/wroathe)
2022-03-27 05:01:17 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2022-03-27 05:01:23 +0200deadmarshal_(~deadmarsh@95.38.230.121)
2022-03-27 05:02:36 +0200kaph(~kaph@net-109-116-124-149.cust.vodafonedsl.it)
2022-03-27 05:06:46 +0200 <DigitalKiwi> razetime: is ormolu the package you want to install or something else
2022-03-27 05:07:00 +0200 <razetime> it is the package i want to install
2022-03-27 05:08:14 +0200cdman(~dcm@user/dmc/x-4369397)
2022-03-27 05:08:27 +0200 <DigitalKiwi> nix-shell -p ormolu
2022-03-27 05:08:28 +0200 <DigitalKiwi> [nix-shell:~]$ ormolu --version
2022-03-27 05:08:30 +0200 <DigitalKiwi> ormolu 0.1.4.1 UNKNOWN UNKNOWN
2022-03-27 05:08:32 +0200 <DigitalKiwi> using ghc-lib-parser 8.10.7.20210828
2022-03-27 05:09:54 +0200_dmc_(~dcm@27.2.216.148)
2022-03-27 05:13:11 +0200cdman(~dcm@user/dmc/x-4369397) (Ping timeout: 256 seconds)
2022-03-27 05:17:37 +0200Hash(~Hash@hey.howstoned.ru) (Ping timeout: 240 seconds)
2022-03-27 05:18:14 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-03-27 05:23:01 +0200rekahsoft(~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com) (Ping timeout: 240 seconds)
2022-03-27 05:24:21 +0200wyrd(~wyrd@gateway/tor-sasl/wyrd)
2022-03-27 05:25:05 +0200Jeanne-Kamikaze(~Jeanne-Ka@142.147.89.202) (Quit: Leaving)
2022-03-27 05:26:12 +0200 <DigitalKiwi> razetime: when was your last `cabal update`?
2022-03-27 05:26:32 +0200 <razetime> about a minute before i ran cabal install ormolu
2022-03-27 05:27:42 +0200 <ProfSimm> How does Haskell disambiguate these: a -b as in "apply -b to function a" vs "subtract b from a"
2022-03-27 05:36:29 +0200 <dsal> `a -b` is "call the function (-) on `a` and `b`"
2022-03-27 05:37:35 +0200 <ProfSimm> dsal: what about the other case, where I was trying to pass -b to a
2022-03-27 05:37:47 +0200 <dsal> That's not what that does, though.
2022-03-27 05:37:47 +0200 <ProfSimm> dsal: for example print -5
2022-03-27 05:37:56 +0200 <dsal> > print (-5)
2022-03-27 05:37:57 +0200 <lambdabot> <IO ()>
2022-03-27 05:38:00 +0200 <ProfSimm> Sure but
2022-03-27 05:38:03 +0200 <dsal> % print (-5)
2022-03-27 05:38:03 +0200 <yahb> dsal: -5
2022-03-27 05:38:04 +0200 <ProfSimm> Isn't this error prone
2022-03-27 05:38:06 +0200 <DigitalKiwi> lol weird i get ormolu-0.4.0.0 with cabal
2022-03-27 05:38:26 +0200 <dsal> It's not error prone in the sense that it'll cause runtime problems. It's not ambiguous.
2022-03-27 05:38:30 +0200 <ProfSimm> %print -5
2022-03-27 05:38:51 +0200 <dsal> There's a GHC extension to make it work a little more like you'd expect, but then that'd break some other things.
2022-03-27 05:38:55 +0200 <dsal> % print -5
2022-03-27 05:38:55 +0200 <yahb> dsal: ; <interactive>:28:1: error:; * No instance for (Num (() -> IO ())) arising from a use of `it'; (maybe you haven't applied a function to enough arguments?); * In the first argument of `print', namely `it'; In a stmt of an interactive GHCi command: print it
2022-03-27 05:39:09 +0200 <ProfSimm> Hm
2022-03-27 05:39:31 +0200 <ProfSimm> dsal: why have such an extension
2022-03-27 05:39:47 +0200 <dsal> Because people keep trying to do the syntactic thing that you're trying to do and it can work in many cases.
2022-03-27 05:40:08 +0200 <ProfSimm> dsal: in that case how do they do the other variant
2022-03-27 05:40:12 +0200 <ProfSimm> a - b
2022-03-27 05:40:53 +0200 <dsal> When do you want to call `(-) a b` ? That's almost every time I use `(-)`. I'm having a little trouble relating.
2022-03-27 05:41:14 +0200 <ProfSimm> OK
2022-03-27 05:41:16 +0200 <ProfSimm> thanks
2022-03-27 05:41:46 +0200 <dsal> This is the extension: https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/negative_literals.html
2022-03-27 05:43:07 +0200 <boxscape_> ProfSimm: be clear (though maybe it is already), even with the extension, `a - b` is still parsed as `(-) a b`, just `a -b` is parsed as `a (-b)`
2022-03-27 05:43:12 +0200 <boxscape_> s/be/to be
2022-03-27 05:43:34 +0200 <dsal> It's OK to demand clarity of me.
2022-03-27 05:45:35 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 05:46:58 +0200Topsi(~Tobias@dyndsl-095-033-022-251.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2022-03-27 05:48:55 +0200ProfSimm(~ProfSimm@87.227.196.109) (Remote host closed the connection)
2022-03-27 05:49:43 +0200 <abastro[m]> Tbh quite ambiguous with `a-b`
2022-03-27 05:50:04 +0200 <boxscape_> that's parsed as `(-) a b` also
2022-03-27 05:50:13 +0200 <abastro[m]> Oh thats nice
2022-03-27 05:50:20 +0200 <abastro[m]> At cost of parsing overhead
2022-03-27 05:50:29 +0200 <abastro[m]> Hm actually, haskell is hard to parse right
2022-03-27 05:50:40 +0200 <boxscape_> I think so yeah
2022-03-27 05:50:42 +0200 <abastro[m]> I think it is one of problems of haskell
2022-03-27 05:52:07 +0200 <dsal> > 1+5
2022-03-27 05:52:09 +0200 <lambdabot> 6
2022-03-27 05:52:21 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 250 seconds)
2022-03-27 05:52:25 +0200 <dsal> > "a"<>"b"
2022-03-27 05:52:27 +0200 <lambdabot> "ab"
2022-03-27 05:53:00 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds)
2022-03-27 05:56:34 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-03-27 06:01:14 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds)
2022-03-27 06:01:21 +0200vglfr(~vglfr@46.96.151.207)
2022-03-27 06:02:45 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-03-27 06:04:35 +0200stiell(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds)
2022-03-27 06:06:57 +0200stiell(~stiell@gateway/tor-sasl/stiell)
2022-03-27 06:07:02 +0200 <abastro[m]> That parsing error message is rather poor
2022-03-27 06:08:57 +0200 <boxscape_> % % (proc a -> (| id (\x -> returnA -< x) |) 4 5 6) "foo" -- update, I asked yesterday whether this is a bug, because the command seems to be getting more arguments than it requires - I now think it isn't, turns out commands just get a stack of arguments, and I suppose more values can be added onto that stack
2022-03-27 06:08:57 +0200 <yahb> boxscape_: ; <interactive>:34:1: error: parse error on input `%'
2022-03-27 06:09:00 +0200 <boxscape_> whoops
2022-03-27 06:09:04 +0200 <boxscape_> % (proc a -> (| id (\x -> returnA -< x) |) 4 5 6) "foo"
2022-03-27 06:09:04 +0200 <yahb> boxscape_: 4
2022-03-27 06:12:25 +0200vysn(~vysn@user/vysn)
2022-03-27 06:14:05 +0200nicbk(~nicbk@user/nicbk)
2022-03-27 06:15:27 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 260 seconds)
2022-03-27 06:15:55 +0200deadmarshal_(~deadmarsh@95.38.230.121) (Ping timeout: 260 seconds)
2022-03-27 06:16:26 +0200vglfr(~vglfr@46.96.151.207) (Ping timeout: 272 seconds)
2022-03-27 06:19:07 +0200_dmc_(~dcm@27.2.216.148) (Changing host)
2022-03-27 06:19:07 +0200_dmc_(~dcm@user/dmc/x-4369397)
2022-03-27 06:19:22 +0200_dmc_(~dcm@user/dmc/x-4369397) (Quit: Leaving)
2022-03-27 06:19:49 +0200cdman(~dcm@user/dmc/x-4369397)
2022-03-27 06:20:39 +0200lambdap2(~lambdap@static.167.190.119.168.clients.your-server.de) (Quit: lambdap2)
2022-03-27 06:21:15 +0200lambdap2(~lambdap@static.167.190.119.168.clients.your-server.de)
2022-03-27 06:22:08 +0200nate1(~nate@98.45.167.61)
2022-03-27 06:22:31 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-27 06:22:35 +0200pnotequalnp(~kevin@user/pnotequalnp)
2022-03-27 06:25:34 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 06:28:07 +0200dyeplexer(~dyeplexer@user/dyeplexer)
2022-03-27 06:29:28 +0200_dmc_(~dcm@27.2.216.148)
2022-03-27 06:29:28 +0200_dmc_(~dcm@27.2.216.148) (Changing host)
2022-03-27 06:29:28 +0200_dmc_(~dcm@user/dmc/x-4369397)
2022-03-27 06:30:22 +0200rawley(~rawley@216-197-141-102.nbfr.hsdb.sasknet.sk.ca) (Remote host closed the connection)
2022-03-27 06:30:25 +0200_dmc_(~dcm@user/dmc/x-4369397) (Remote host closed the connection)
2022-03-27 06:36:35 +0200lumberjack123(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-03-27 06:39:57 +0200chenqisu1(~chenqisu1@183.217.201.88) (Ping timeout: 240 seconds)
2022-03-27 06:42:45 +0200HotblackDesiato_(~HotblackD@gateway/tor-sasl/hotblackdesiato) (Remote host closed the connection)
2022-03-27 06:43:00 +0200HotblackDesiato(~HotblackD@gateway/tor-sasl/hotblackdesiato)
2022-03-27 06:48:01 +0200lumberjack123(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-03-27 06:51:15 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-03-27 06:54:06 +0200pgib(~textual@173.38.117.75) (Ping timeout: 245 seconds)
2022-03-27 06:59:30 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 272 seconds)
2022-03-27 07:00:57 +0200Guest2747(~Guest27@2601:281:d47f:1590::6b90)
2022-03-27 07:09:15 +0200nicbk(~nicbk@user/nicbk) (Quit: nicbk)
2022-03-27 07:15:58 +0200nate1(~nate@98.45.167.61) (Ping timeout: 272 seconds)
2022-03-27 07:16:34 +0200sloorush(~sloorush@136.233.9.99)
2022-03-27 07:26:55 +0200sloorush(~sloorush@136.233.9.99) (Ping timeout: 256 seconds)
2022-03-27 07:28:21 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection)
2022-03-27 07:29:48 +0200vysn(~vysn@user/vysn) (Ping timeout: 240 seconds)
2022-03-27 07:29:59 +0200Guest2747(~Guest27@2601:281:d47f:1590::6b90) (Quit: Client closed)
2022-03-27 07:32:39 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 252 seconds)
2022-03-27 07:33:30 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-03-27 07:35:29 +0200Everything(~Everythin@37.115.210.35)
2022-03-27 07:41:53 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-03-27 07:45:02 +0200jdm(jesse@c-68-62-216-212.hsd1.al.comcast.net)
2022-03-27 07:47:23 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds)
2022-03-27 07:48:15 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-03-27 07:49:24 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-03-27 07:50:15 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-03-27 07:51:48 +0200awschnap(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-03-27 07:53:54 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-27 07:54:28 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 07:57:30 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-27 07:59:13 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2022-03-27 08:00:16 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 08:05:37 +0200pnotequalnp(~kevin@user/pnotequalnp) (Ping timeout: 240 seconds)
2022-03-27 08:06:19 +0200YoungFrog(~youngfrog@2a02:a03f:c21b:f900:d813:4914:1c90:9409) (Remote host closed the connection)
2022-03-27 08:06:38 +0200YoungFrog(~youngfrog@2a02:a03f:c21b:f900:84e3:4a12:bce1:8082)
2022-03-27 08:09:19 +0200kaph(~kaph@net-109-116-124-149.cust.vodafonedsl.it) (Ping timeout: 260 seconds)
2022-03-27 08:11:15 +0200Pickchea(~private@user/pickchea)
2022-03-27 08:13:48 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-03-27 08:14:05 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-03-27 08:19:23 +0200vglfr(~vglfr@46.96.151.207)
2022-03-27 08:22:51 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds)
2022-03-27 08:23:19 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds)
2022-03-27 08:24:23 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-03-27 08:36:07 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-27 08:36:54 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 08:37:27 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-27 08:40:17 +0200leah2(~leah@vuxu.org) (Ping timeout: 252 seconds)
2022-03-27 08:41:43 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2022-03-27 08:45:00 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-03-27 08:45:14 +0200lagash(lagash@lagash.shelltalk.net) (Ping timeout: 252 seconds)
2022-03-27 08:48:03 +0200lagooned(~lagooned@108-208-149-42.lightspeed.hstntx.sbcglobal.net)
2022-03-27 08:49:15 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-03-27 08:52:01 +0200mtjm(~mutantmel@2604:a880:2:d0::208b:d001) (Remote host closed the connection)
2022-03-27 08:53:05 +0200mtjm(~mutantmel@2604:a880:2:d0::208b:d001)
2022-03-27 08:53:40 +0200kaph(~kaph@net-109-116-124-149.cust.vodafonedsl.it)
2022-03-27 09:04:02 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2022-03-27 09:04:43 +0200dextaa_(~dextaa@user/dextaa)
2022-03-27 09:07:50 +0200AlexZenon_2(~alzenon@94.233.240.35)
2022-03-27 09:09:29 +0200AlexZenon(~alzenon@94.233.240.35) (Ping timeout: 256 seconds)
2022-03-27 09:10:50 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Remote host closed the connection)
2022-03-27 09:10:57 +0200pacc(~dylan@c-98-212-49-222.hsd1.il.comcast.net)
2022-03-27 09:11:16 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-03-27 09:11:59 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-27 09:12:13 +0200vysn(~vysn@user/vysn)
2022-03-27 09:15:49 +0200Midjak(~Midjak@82.66.147.146)
2022-03-27 09:17:17 +0200pacc(~dylan@c-98-212-49-222.hsd1.il.comcast.net) (Quit: WeeChat 3.0)
2022-03-27 09:21:48 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2022-03-27 09:23:31 +0200acidjnk(~acidjnk@pd9e0b763.dip0.t-ipconnect.de)
2022-03-27 09:23:52 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 09:25:57 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2022-03-27 09:27:15 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds)
2022-03-27 09:27:53 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-03-27 09:28:58 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
2022-03-27 09:40:34 +0200chenqisu1(~chenqisu1@183.217.201.88)
2022-03-27 09:42:36 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 240 seconds)
2022-03-27 09:43:47 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-03-27 09:47:20 +0200 <joel135> do you know some unexpected way of implementing division with remainder in pure lambda calculus?
2022-03-27 09:47:20 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:47:35 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:47:36 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:47:50 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:47:51 +0200Dorkside(~dorkside@208.190.197.222) (Read error: Connection reset by peer)
2022-03-27 09:48:05 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:48:06 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:48:19 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:48:19 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:48:32 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:48:33 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:48:46 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:48:46 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:48:55 +0200lumberjack123(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-03-27 09:48:59 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:49:00 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:49:13 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:49:13 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:49:26 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:49:26 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:49:39 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:49:39 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:49:53 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:49:54 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:50:08 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:50:09 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:50:23 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:50:24 +0200Dorkside(~dorkside@208.190.197.222) (Read error: Connection reset by peer)
2022-03-27 09:50:28 +0200 <joel135> (mostly interested in the remainder part, but i figure the quotient shouldn't be much harder)
2022-03-27 09:50:36 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:50:37 +0200Dorkside(~dorkside@208.190.197.222) (Read error: Connection reset by peer)
2022-03-27 09:50:50 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:50:50 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:51:03 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:51:03 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:51:04 +0200Tuplanolla(~Tuplanoll@91-159-69-98.elisa-laajakaista.fi)
2022-03-27 09:51:16 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:51:17 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:51:31 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:51:32 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:51:45 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:51:46 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:52:04 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:52:04 +0200Dorkside(~dorkside@208.190.197.222) (Read error: Connection reset by peer)
2022-03-27 09:52:18 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:52:19 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:52:32 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:52:33 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:52:46 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:52:46 +0200Dorkside(~dorkside@208.190.197.222) (Read error: Connection reset by peer)
2022-03-27 09:52:59 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:52:59 +0200Dorkside(~dorkside@208.190.197.222) (Read error: Connection reset by peer)
2022-03-27 09:53:13 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:53:14 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:53:28 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:53:29 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:53:42 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:53:42 +0200Dorkside(~dorkside@208.190.197.222) (Read error: Connection reset by peer)
2022-03-27 09:53:55 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:53:55 +0200Dorkside(~dorkside@208.190.197.222) (Read error: Connection reset by peer)
2022-03-27 09:54:08 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:54:09 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:54:21 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:54:21 +0200Dorkside(~dorkside@208.190.197.222) (Read error: Connection reset by peer)
2022-03-27 09:54:34 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:54:34 +0200Dorkside(~dorkside@208.190.197.222) (Read error: Connection reset by peer)
2022-03-27 09:54:42 +0200 <joel135> maybe i should give mendler encoding another go
2022-03-27 09:54:47 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:54:48 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:54:58 +0200 <boxscape_> % :t \f xs ys z -> foldr (uncurry f) z $ zip xs ys
2022-03-27 09:54:58 +0200 <yahb> boxscape_: (a -> b1 -> b2 -> b2) -> [a] -> [b1] -> b2 -> b2
2022-03-27 09:55:00 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:55:01 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:55:02 +0200 <boxscape_> is there a function like this in hackage?
2022-03-27 09:55:14 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:55:14 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:55:19 +0200deadmarshal_(~deadmarsh@95.38.230.121)
2022-03-27 09:55:32 +0200 <boxscape_> I guess it might not cross the Fairbairn threshold
2022-03-27 09:55:33 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:55:33 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:55:47 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:55:48 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:56:01 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:56:02 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:56:16 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:56:17 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:56:30 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:56:30 +0200Dorkside(~dorkside@208.190.197.222) (Read error: Connection reset by peer)
2022-03-27 09:56:43 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:56:43 +0200Dorkside(~dorkside@208.190.197.222) (Read error: Connection reset by peer)
2022-03-27 09:56:56 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:56:57 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:57:10 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:57:11 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:57:14 +0200gabriel_sevecek(~gabriel@188-167-229-200.dynamic.chello.sk)
2022-03-27 09:57:25 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:57:26 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:57:39 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:57:40 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:57:53 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:57:54 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:58:07 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:58:07 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:58:21 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:58:21 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:58:34 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:58:34 +0200Dorkside(~dorkside@208.190.197.222) (Read error: Connection reset by peer)
2022-03-27 09:58:47 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:58:47 +0200Dorkside(~dorkside@208.190.197.222) (Read error: Connection reset by peer)
2022-03-27 09:59:00 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:59:00 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:59:13 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:59:13 +0200Dorkside(~dorkside@208.190.197.222) (Read error: Connection reset by peer)
2022-03-27 09:59:27 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:59:28 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:59:41 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:59:42 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 09:59:55 +0200deadmarshal_(~deadmarsh@95.38.230.121) (Ping timeout: 260 seconds)
2022-03-27 09:59:56 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 09:59:57 +0200Dorkside(~dorkside@208.190.197.222) (Read error: Connection reset by peer)
2022-03-27 10:00:11 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 10:00:12 +0200Dorkside(~dorkside@208.190.197.222) (Read error: Connection reset by peer)
2022-03-27 10:00:26 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 10:00:27 +0200Dorkside(~dorkside@208.190.197.222) (Read error: Connection reset by peer)
2022-03-27 10:00:41 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 10:00:41 +0200Dorkside(~dorkside@208.190.197.222) (Read error: Connection reset by peer)
2022-03-27 10:00:54 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 10:00:55 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 10:01:16 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 10:01:16 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 10:01:29 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 10:01:30 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 10:01:42 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 10:01:43 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 10:01:56 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-03-27 10:01:57 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 10:01:58 +0200Dorkside(~dorkside@208.190.197.222) (Read error: Connection reset by peer)
2022-03-27 10:02:12 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 10:02:13 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 10:02:26 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 10:02:27 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 10:02:45 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 10:02:45 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 10:03:00 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 10:03:01 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 10:03:13 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 10:03:13 +0200Dorkside(~dorkside@208.190.197.222) (Read error: Connection reset by peer)
2022-03-27 10:03:27 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 10:03:27 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 10:03:39 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 10:03:39 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 10:03:52 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 10:03:53 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 10:04:06 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 10:04:06 +0200Dorkside(~dorkside@208.190.197.222) (Read error: Connection reset by peer)
2022-03-27 10:04:19 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 10:04:19 +0200Dorkside(~dorkside@208.190.197.222) (Remote host closed the connection)
2022-03-27 10:04:32 +0200Dorkside(~dorkside@208.190.197.222)
2022-03-27 10:05:39 +0200leah2(~leah@vuxu.org)
2022-03-27 10:07:34 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-03-27 10:10:22 +0200aliosablack(~chomwitt@2a02:587:dc18:da00:e2ec:eb52:4039:9bfe)
2022-03-27 10:12:31 +0200 <tomsmeding> periodic reminder that ghcup is great, just updated my haskell installation on a machine I haven't touched in a while, `ghcup tui` and we roll
2022-03-27 10:14:25 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 256 seconds)
2022-03-27 10:15:15 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-03-27 10:19:54 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-03-27 10:20:00 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-03-27 10:21:48 +0200leah2(~leah@vuxu.org) (Ping timeout: 240 seconds)
2022-03-27 10:24:59 +0200Batzy(~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-03-27 10:27:23 +0200Batzy(~quassel@user/batzy)
2022-03-27 10:27:27 +0200vglfr(~vglfr@46.96.151.207) (Ping timeout: 260 seconds)
2022-03-27 10:34:08 +0200 <energizer> if a,b are types then "either a or b" is another type. sometimes people say that's "addition", i guess because the cardinalities match up or something
2022-03-27 10:35:13 +0200 <energizer> but types are kinda like sets too, so isn't it more like "union"; and also types are supposedly like propositions so isn't it more like "or"
2022-03-27 10:35:25 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 240 seconds)
2022-03-27 10:36:31 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-03-27 10:36:46 +0200 <energizer> so why is it + instead of ∪ or |
2022-03-27 10:36:48 +0200 <abastro[m]> Which is why ppl use the term `Tagged union` as well
2022-03-27 10:37:25 +0200 <abastro[m]> Btw iirc in boolean logic, OR was using notation `+`
2022-03-27 10:38:01 +0200leah2(~leah@vuxu.org)
2022-03-27 10:38:25 +0200 <energizer> can i take two types and add them together?
2022-03-27 10:39:29 +0200 <tomsmeding> energizer: what's "either Int or In"
2022-03-27 10:39:35 +0200 <tomsmeding> *Int
2022-03-27 10:39:41 +0200 <tomsmeding> That's Int + Int, not Int, right?
2022-03-27 10:39:41 +0200 <energizer> that's just Int
2022-03-27 10:39:50 +0200 <tomsmeding> Which is why it is the disjoint union, not the union
2022-03-27 10:40:08 +0200 <tomsmeding> Ah, if you say that's Int, then indeed you're talking about union, but then those are not sum types
2022-03-27 10:40:15 +0200 <energizer> + is disjoint union and | is regular union?
2022-03-27 10:40:27 +0200 <tomsmeding> Sum types do a disjoint union, also (in imperative programming land) a tagged union
2022-03-27 10:40:49 +0200 <tomsmeding> + in type theory is disjoint union, | in boolean logic is union :p
2022-03-27 10:41:07 +0200 <energizer> is there a plain union in type theory?
2022-03-27 10:41:14 +0200 <tomsmeding> Some languages, e.g. python and typescript, have actual union types
2022-03-27 10:41:41 +0200 <tomsmeding> Not the basic type theory I know, but I wouldn't be surprised if someone found an encoding for union in TT
2022-03-27 10:42:35 +0200 <tomsmeding> If union is \cup, then the cardinalities are weird though; #(a \cup b) is not really expressible in terms of #a and #b
2022-03-27 10:42:51 +0200 <tomsmeding> So the "algebraic" data types analogy doesn't hold for them
2022-03-27 10:44:01 +0200 <tomsmeding> (c.f. abastro[m]'s remark: in boolean logic, union (OR) is saturating addition: 1+1=1)
2022-03-27 10:44:36 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 252 seconds)
2022-03-27 10:44:58 +0200 <energizer> isnt it just #a + #b - #(a∩b)
2022-03-27 10:45:11 +0200acidjnk(~acidjnk@pd9e0b763.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-03-27 10:45:17 +0200 <abastro[m]> Yes, saturating addition
2022-03-27 10:45:20 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-03-27 10:47:02 +0200 <abastro[m]> Anyway notation usage of math is quite liberal
2022-03-27 10:47:09 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 10:48:28 +0200 <tomsmeding> energizer: yes indeed, but #(a \cap b) is not a really simple operation
2022-03-27 10:49:10 +0200 <boxscape_> the main problem with union types AFAIK is that type inference is hard
2022-03-27 10:49:20 +0200 <boxscape_> ...as with all forms of subtyping
2022-03-27 10:49:25 +0200 <boxscape_> (okay maybe not literally all)
2022-03-27 10:49:37 +0200 <energizer> does that refer to global type inference?
2022-03-27 10:50:28 +0200 <boxscape_> I haven't actually heard the term "global type inference" before but I suspect if global and local type inference exist it's hard for both of them, I don't see a reason why they would be different here
2022-03-27 10:51:22 +0200 <energizer> iirc mypy only cares about one function at a time
2022-03-27 10:52:06 +0200 <energizer> tomsmeding: is #a + #b - #(a∩b) somehow a representation of saturating addition?
2022-03-27 10:52:57 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
2022-03-27 10:53:39 +0200 <abastro[m]> Apparently many ppl do not care much about type inference
2022-03-27 10:53:41 +0200 <tomsmeding> energizer: yes
2022-03-27 10:53:52 +0200 <tomsmeding> Thing is that saturating addition of integers is easy
2022-03-27 10:53:58 +0200 <abastro[m]> I've heard many ppl saying that it is better to be enforced to specify types
2022-03-27 10:54:02 +0200 <tomsmeding> But saturating addition of sets is... kinda weird
2022-03-27 10:54:10 +0200 <boxscape_> energizer judging by https://stackoverflow.com/questions/4304003/what-does-no-global-type-inference-mean-regarding-scala it does sound like local inference might be fine with subtyping, though I guess there probably isn't a single definition of "local" inference
2022-03-27 10:54:17 +0200 <tomsmeding> You can define it, and it works, but it's not super simple to work with
2022-03-27 10:54:52 +0200 <abastro[m]> Local inference is possible with subtyping but hard and also limited iirc
2022-03-27 10:55:02 +0200 <abastro[m]> Got bitten a lot by that
2022-03-27 10:55:06 +0200 <boxscape_> I see
2022-03-27 10:55:56 +0200 <tomsmeding> Also union types are, in some sense, not really compositional: where a * b and a + b are defined in terms of a and b, a \cup b is defined in terms of a, b _and_ a \cap b
2022-03-27 10:56:02 +0200 <abastro[m]> `((_.foo) compose (bar))` and type errors go broke
2022-03-27 10:56:26 +0200 <tomsmeding> And type theory is otherwise very compositional
2022-03-27 10:57:02 +0200 <boxscape_> tomsmeding doesn't that depend on how you define your primitives? As in, you could say union is primitive, and sum types are union + a \cap b
2022-03-27 10:57:41 +0200 <tomsmeding> Of course
2022-03-27 10:58:10 +0200 <tomsmeding> But disjoint union is very nice, and in fact not even primitive in TT: it's a sigma type over a boolean
2022-03-27 10:58:20 +0200 <boxscape_> hm that's fair
2022-03-27 10:58:53 +0200 <abastro[m]> But then more complex one is primitive
2022-03-27 10:59:01 +0200 <abastro[m]> Namely, sigma and pi
2022-03-27 10:59:04 +0200 <boxscape_> what is "complexity"
2022-03-27 10:59:26 +0200 <abastro[m]> Idk, more symbols
2022-03-27 10:59:35 +0200 <abastro[m]> You need to introduce a binding
2022-03-27 10:59:36 +0200 <tomsmeding> abastro[m]: more complex maybe, but also a very small set
2022-03-27 10:59:37 +0200 <boxscape_> though in any case that doesn't matter if you need sigma and pi anyway for other reasons
2022-03-27 10:59:48 +0200 <abastro[m]> Well yea
2022-03-27 11:00:33 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-03-27 11:00:35 +0200 <boxscape_> your compiler will be less complex overall if you have fewer primitives
2022-03-27 11:01:27 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 256 seconds)
2022-03-27 11:01:31 +0200 <abastro[m]> That was my illusion but type checking and inference of dependent languages told me otherwise
2022-03-27 11:01:47 +0200 <tomsmeding> Type theory is, in basis, math
2022-03-27 11:02:13 +0200 <tomsmeding> It's math chosen such that it has a nice correspondence with programming, but it's still math
2022-03-27 11:02:22 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-03-27 11:02:31 +0200 <boxscape_> abastro[m] yeah I was being unclear in that - I didn't mean if you have a smaller set of primitives, I meant if you have a strict subset of primitives
2022-03-27 11:02:43 +0200 <tomsmeding> Your compiler will be simpler if it only supports * and +, but then it wouldn't support dependently typed languages
2022-03-27 11:03:21 +0200 <tomsmeding> Your compiler will be simpler with fewer prinitives _assuming that you must implement a dependently typed language_
2022-03-27 11:03:39 +0200 <tomsmeding> Also what boxscape_ just said lol
2022-03-27 11:04:44 +0200yushyin(NwWjaFh18p@mail.karif.server-speed.net) (Quit: WeeChat 3.4)
2022-03-27 11:04:44 +0200noctuks(pS9vLLhgiV@user/noctux) (Quit: WeeChat 3.4)
2022-03-27 11:04:44 +0200sviermsung(owJr4HCxlX@user/s4msung) (Quit: sviermsung)
2022-03-27 11:05:37 +0200gurkenglas(~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de)
2022-03-27 11:07:05 +0200noctuks(9wxBRvrIcP@user/noctux)
2022-03-27 11:07:06 +0200s4msung(iMiZICJOVw@user/s4msung)
2022-03-27 11:07:07 +0200yushyin(klVu03SvEu@mail.karif.server-speed.net)
2022-03-27 11:08:12 +0200 <energizer> found a paper that says untagged union is denoted \vee b
2022-03-27 11:08:21 +0200 <energizer> s/b//
2022-03-27 11:11:01 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-27 11:11:05 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-03-27 11:11:09 +0200 <abastro[m]> Oh, I see
2022-03-27 11:11:32 +0200 <abastro[m]> Indeed strict subset is easier to implement
2022-03-27 11:11:35 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-27 11:12:26 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 11:12:36 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Remote host closed the connection)
2022-03-27 11:13:01 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-03-27 11:15:16 +0200 <abastro[m]> I wonder how type theory survived in programming where set theory became dominant in math
2022-03-27 11:16:48 +0200 <Maxdamantus> Presumably by being computable.
2022-03-27 11:16:53 +0200 <Maxdamantus> Which is important for computers.
2022-03-27 11:16:53 +0200 <[exa]> +1 ^
2022-03-27 11:17:19 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2022-03-27 11:17:39 +0200 <Maxdamantus> "became dominant in math", it already was dominant.
2022-03-27 11:17:58 +0200 <Maxdamantus> type theory arose as an alternative solution to problems in type theory.
2022-03-27 11:18:19 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 11:18:35 +0200 <Maxdamantus> the non-alternative solution was ZFC, which is still set theory.
2022-03-27 11:18:57 +0200 <tomsmeding> Disjoint union is also much more useful in programming than union I think: think of tree structures. Almost all of programming is dealing with tree structures, and trees are necessarily inductive disjoint unions, not set-theory unions
2022-03-27 11:19:14 +0200 <Maxdamantus> (in particular, problems raised by Bertrand Russell in the early 1900s. he was the one that started "type theory")
2022-03-27 11:19:33 +0200 <abastro[m]> <del>Type theory to solve problems in type theory</del>
2022-03-27 11:19:46 +0200 <Maxdamantus> er, meant to say "problems in set theory"
2022-03-27 11:20:01 +0200 <energizer> tomsmeding: ehh hammer/nail
2022-03-27 11:20:03 +0200 <abastro[m]> sorry..
2022-03-27 11:20:19 +0200 <abastro[m]> Sometimes I be that pedant
2022-03-27 11:21:15 +0200 <Maxdamantus> In programming, using "sets" is something extra. Related to what tomsmeding is saying, in programming you would normally go for an array/list as the computationally simple thing.
2022-03-27 11:21:37 +0200 <Maxdamantus> It's only in special cases that you actually want set behaviour, where you want your members to be deduplicated.
2022-03-27 11:22:36 +0200 <Maxdamantus> (naturally in Haskell, you can have a list of values of any type, but if you want a set, you need to demand a constraint, `Ord a`)
2022-03-27 11:22:51 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-03-27 11:23:11 +0200 <energizer> what does it have to do with ordering?
2022-03-27 11:23:20 +0200 <boxscape_> technically Eq a is enough
2022-03-27 11:23:25 +0200 <boxscape_> but Ord a allows you to make it more efficient
2022-03-27 11:23:43 +0200ProfSimm(~ProfSimm@87.227.196.109)
2022-03-27 11:24:05 +0200 <abastro[m]> So Russel was not great enough in his reputation to turn entire mathematics towards TT
2022-03-27 11:24:10 +0200 <boxscape_> (easier to search for duplicate values if you can make a binary search tree)
2022-03-27 11:24:11 +0200 <Maxdamantus> Sure, there could be different sorts of constraints, but you're always going to have an extra constraint that is not required for lists.
2022-03-27 11:24:47 +0200 <energizer> lists are in an order, which is odd
2022-03-27 11:24:52 +0200 <Maxdamantus> abastro[m]: well, I don't think Russell is the only one involved in the push for TT.
2022-03-27 11:25:07 +0200 <[exa]> why would entire mathematics need type theory?
2022-03-27 11:25:10 +0200 <abastro[m]> (Java has hashCode for every classes - hm)
2022-03-27 11:25:39 +0200 <[exa]> that would be just grossly impractical
2022-03-27 11:25:48 +0200 <abastro[m]> Precision
2022-03-27 11:25:54 +0200 <Maxdamantus> Because it's computable.
2022-03-27 11:26:01 +0200 <abastro[m]> That as well
2022-03-27 11:26:09 +0200 <tomsmeding> energizer: reminder that programming existed before type theory got any significant influence there :p
2022-03-27 11:26:14 +0200 <[exa]> good luck expressing basic calculus with that :D
2022-03-27 11:26:19 +0200 <Maxdamantus> You don't have to rely as much on people carefully reviewing proofs.
2022-03-27 11:26:29 +0200 <abastro[m]> (I think you could still deal with uncomputable objects in TT but anyway)
2022-03-27 11:26:51 +0200 <abastro[m]> Idk, basic calculus does not seem that hard to express
2022-03-27 11:26:56 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 252 seconds)
2022-03-27 11:27:22 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-03-27 11:27:23 +0200 <abastro[m]> Possibly you could use concepts from manifolds
2022-03-27 11:27:23 +0200 <[exa]> abastro[m]: even the most basic theorems there require reaching to infinity and assuming whatever happens there
2022-03-27 11:27:28 +0200 <abastro[m]> Manifold analysis*
2022-03-27 11:27:30 +0200 <tomsmeding> I mean, the `union` keyword in C is a bloody disjoint union
2022-03-27 11:27:47 +0200 <tomsmeding> It just misses a tag to be a proper sum type
2022-03-27 11:28:13 +0200 <abastro[m]> Reaching to infinity? Im quite sure it is doable
2022-03-27 11:28:21 +0200 <energizer> forall (e : real), exists (d : real), forall x ... this isnt hard
2022-03-27 11:28:30 +0200 <Maxdamantus> tomsmeding: `union` in C would usually be considered a non-disjoint union.
2022-03-27 11:28:33 +0200 <abastro[m]> Ye
2022-03-27 11:28:36 +0200 <Maxdamantus> tomsmeding: since it doesn't include a tag.
2022-03-27 11:28:41 +0200chenqisu1(~chenqisu1@183.217.201.88) (Quit: Leaving)
2022-03-27 11:28:46 +0200 <abastro[m]> Problem is with topology, rather.
2022-03-27 11:29:00 +0200 <Maxdamantus> tomsmeding: `union { int a; int b; }` is not very useful.
2022-03-27 11:29:03 +0200 <[exa]> abastro[m]: what's the type of a real that is a product of 2 such limits?
2022-03-27 11:29:18 +0200 <[exa]> (-> can you then type reals?)
2022-03-27 11:29:24 +0200 <abastro[m]> You have "extended reals"
2022-03-27 11:29:31 +0200 <abastro[m]> Which includes infinity
2022-03-27 11:29:37 +0200 <tomsmeding> Hm, good point, I messed up there
2022-03-27 11:29:58 +0200 <abastro[m]> Instead compromises product and such
2022-03-27 11:30:43 +0200 <abastro[m]> IIRC quite huge parts of math is formalized in Coq and Lean
2022-03-27 11:30:45 +0200 <[exa]> abastro[m]: I expect you will find many surprising truths about the computability of real numbers
2022-03-27 11:31:32 +0200 <abastro[m]> I mean, you can either represent computable real numbers or deal with uncomputables
2022-03-27 11:31:41 +0200 <abastro[m]> Which is quite doable actually
2022-03-27 11:31:51 +0200 <abastro[m]> Just restrict evaluating the term
2022-03-27 11:32:04 +0200DNH(~DNH@2a09:bac0:48::82b:7a48)
2022-03-27 11:33:29 +0200 <[exa]> that sounds much like "let's take rational numbers and pretend they are real"
2022-03-27 11:33:48 +0200 <joel135> does someone have a copy of "mendler 1987 recursive types and type constraints in second-order lambda calculus" ?
2022-03-27 11:34:43 +0200 <[exa]> joel135: you mean this? https://core.ac.uk/download/pdf/81989173.pdf
2022-03-27 11:34:44 +0200 <abastro[m]> Well you do know how real number is defined from quotients right?
2022-03-27 11:35:03 +0200 <abastro[m]> You can do that and sacrifice a bit of compitability
2022-03-27 11:35:16 +0200 <[exa]> wait what
2022-03-27 11:35:49 +0200 <boxscape_> you can define computable real numbers in terms of limits of rational numbers, i.e. Cauchy sequences
2022-03-27 11:35:55 +0200 <joel135> it is not the same article but maybe it will do :)
2022-03-27 11:36:01 +0200 <abastro[m]> Acrually I found this
2022-03-27 11:36:03 +0200 <abastro[m]> https://www.cs.umd.edu/~rrand/vqc/Real.html
2022-03-27 11:36:21 +0200 <abastro[m]> They found that cauchy seq is not good enough, so gone for axiomatic formulation
2022-03-27 11:37:02 +0200 <boxscape_> fair enough
2022-03-27 11:37:23 +0200zer0bitz_(~zer0bitz@dsl-hkibng32-54fbf8-224.dhcp.inet.fi)
2022-03-27 11:37:26 +0200 <abastro[m]> Yea I mean they could use cauchy seq ofc
2022-03-27 11:37:37 +0200 <abastro[m]> But it was slightly cumbersome they say
2022-03-27 11:37:49 +0200 <boxscape_> riht
2022-03-27 11:37:57 +0200 <boxscape_> s/h/gh/
2022-03-27 11:38:17 +0200zer0bitz(~zer0bitz@dsl-hkibng32-54fbf8-224.dhcp.inet.fi) (Ping timeout: 240 seconds)
2022-03-27 11:38:30 +0200 <energizer> in the big theorem provers they use much more abstract math that has undergraduate-level material as a very very very special case
2022-03-27 11:38:33 +0200 <abastro[m]> Can I ask what is s/h/gh
2022-03-27 11:38:52 +0200 <energizer> it means substitute, in place of h, gh
2022-03-27 11:39:05 +0200 <abastro[m]> Oh, interesting
2022-03-27 11:39:07 +0200 <energizer> because boxscape_ did a typo
2022-03-27 11:39:19 +0200 <abastro[m]> I learned a new chat expression
2022-03-27 11:39:23 +0200 <energizer> it's the syntax from sed
2022-03-27 11:39:38 +0200 <boxscape_> fun fact discord even supports it
2022-03-27 11:39:45 +0200 <boxscape_> i.e. will actually edit your last message
2022-03-27 11:40:02 +0200 <joel135> you can try this in your terminal "echo foobar| sed 's/foo/chocolate /'"
2022-03-27 11:40:10 +0200 <abastro[m]> Oh wow
2022-03-27 11:40:44 +0200 <abastro[m]> I hope it's not regex
2022-03-27 11:41:06 +0200 <boxscape_> I haven't seen people use regex in IRC for that
2022-03-27 11:41:10 +0200 <boxscape_> but they sure do in sed
2022-03-27 11:41:20 +0200 <abastro[m]> Oh nooooooo
2022-03-27 11:41:42 +0200 <[exa]> luckily people here interpret regex flawlessly right? :D
2022-03-27 11:41:56 +0200 <boxscape_> of course
2022-03-27 11:42:03 +0200 <[exa]> abastro[m]: you're invited to try proving the bolzano-weierstrass theorem on that structure
2022-03-27 11:42:54 +0200 <abastro[m]> I don't think B-W would be hard even
2022-03-27 11:42:57 +0200 <joel135> see also http://www.paultaylor.eu/ASD/analysis
2022-03-27 11:43:20 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-03-27 11:44:12 +0200 <ProfSimm> dsal: thanks for the link. It's odd Haskell overlooked this problem when making their syntax
2022-03-27 11:44:36 +0200 <abastro[m]> Okay it does take some space in coq stdlib
2022-03-27 11:45:35 +0200zer0bitz(~zer0bitz@dsl-hkibng32-54fbf8-224.dhcp.inet.fi)
2022-03-27 11:45:43 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-27 11:46:43 +0200 <Maxdamantus> I usually treat my s/// lines as actual regex.
2022-03-27 11:47:00 +0200 <Maxdamantus> eg, I'll often use \< and \> as word delimeters.
2022-03-27 11:47:15 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds)
2022-03-27 11:47:58 +0200 <abastro[m]> https://github.com/coq/coq/blob/master/theories/Reals/Rtopology.v
2022-03-27 11:48:09 +0200 <Maxdamantus> $ grep 's/.*\(\\<\|\\>\)' ~/irclogs/Libera/#haskell.log
2022-03-27 11:48:09 +0200 <Maxdamantus> 17:19 < Maxdamantus> s/\<their\>/they're/
2022-03-27 11:48:10 +0200zer0bitz__(~zer0bitz@dsl-hkibng32-54fbf8-224.dhcp.inet.fi)
2022-03-27 11:48:14 +0200 <Maxdamantus> Maybe I'm the only one.
2022-03-27 11:49:07 +0200zer0bitz_(~zer0bitz@dsl-hkibng32-54fbf8-224.dhcp.inet.fi) (Ping timeout: 260 seconds)
2022-03-27 11:49:16 +0200 <boxscape_> you even bother to escape the <>s
2022-03-27 11:49:44 +0200 <Maxdamantus> Of course, otherwise it would require a literal less than and greater than sign.
2022-03-27 11:50:16 +0200 <Maxdamantus> s/\<a //; s/\<sign\>/signs/
2022-03-27 11:50:30 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl)
2022-03-27 11:50:40 +0200 <boxscape_> I usually set up my tools to make me escape literals when I want to search for them
2022-03-27 11:50:42 +0200deadmarshal_(~deadmarsh@95.38.230.121)
2022-03-27 11:50:58 +0200 <Maxdamantus> Wait, you mean in my grep command?
2022-03-27 11:51:16 +0200 <boxscape_> no
2022-03-27 11:51:33 +0200 <boxscape_> but I would just assume other people's brains are set up the way I set up my tools when convenient
2022-03-27 11:51:37 +0200 <boxscape_> to save myself some characters
2022-03-27 11:51:55 +0200 <Maxdamantus> `s/<a//` and `s/\<a//` mean something quite different in sed.
2022-03-27 11:51:55 +0200zer0bitz(~zer0bitz@dsl-hkibng32-54fbf8-224.dhcp.inet.fi) (Ping timeout: 260 seconds)
2022-03-27 11:52:06 +0200 <Maxdamantus> \< is a leading word delimeter.
2022-03-27 11:52:10 +0200 <Maxdamantus> < is just a less than sign.
2022-03-27 11:52:28 +0200 <boxscape_> right I don't know that you can change it in sed but e.g. in vim I have it the other way around
2022-03-27 11:52:54 +0200 <Maxdamantus> Oh, so you've selected ereg or PCRE or something.
2022-03-27 11:53:16 +0200 <boxscape_> alas, there's no setting for it, it requires a plugin
2022-03-27 11:53:41 +0200 <Maxdamantus> Personally, I find it annoying that some tools (eg, `less`) use different syntaxes.
2022-03-27 11:53:58 +0200 <boxscape_> understandable
2022-03-27 11:54:26 +0200 <abastro[m]> Price to pay with composability
2022-03-27 11:55:14 +0200 <Maxdamantus> imo the breg syntax is more logical anyway.
2022-03-27 11:56:07 +0200 <abastro[m]> Hm I guess I am weird for not using these utilities
2022-03-27 11:56:43 +0200 <Maxdamantus> I've always suspected that if people prefer the symbols to be treated as special by default (ie, without requiring a backslash), it's just because they initially used regexes that did that, eg, ones in popular programming languages like JS.
2022-03-27 11:57:30 +0200DNH(~DNH@2a09:bac0:48::82b:7a48) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-03-27 11:57:41 +0200 <Maxdamantus> I would even like it if breg went further and made it so '.' matches a literal dot while '\.' matches any byte. similarly, '*' should match an asterisk.
2022-03-27 11:58:15 +0200 <Maxdamantus> but too late for that, and those are the only exceptions you need to remember afaict.
2022-03-27 11:58:51 +0200 <abastro[m]> Well I don't see difference of the characters by rendering
2022-03-27 11:59:10 +0200 <boxscape_> does matrix remove backslashes?
2022-03-27 11:59:24 +0200 <boxscape_> \. . <- this is two dots without a backslash?
2022-03-27 11:59:24 +0200 <Maxdamantus> Oh, there's also ^ $ []
2022-03-27 11:59:39 +0200 <Maxdamantus> 22:59:24 < boxscape_> \. . <- this is two dots without a backslash?
2022-03-27 11:59:50 +0200 <Maxdamantus> Oh, nvm. I'm not on Matrix.
2022-03-27 12:00:07 +0200 <Maxdamantus> (I thought you were wondering if your Matrix connection did something)
2022-03-27 12:00:23 +0200 <abastro[m]> Yes, matrix removes backslash
2022-03-27 12:00:28 +0200 <boxscape_> interesting
2022-03-27 12:00:46 +0200 <abastro[m]> Can't blame matrix, right
2022-03-27 12:03:35 +0200dsrt^(~dsrt@96-91-136-49-static.hfc.comcastbusiness.net)
2022-03-27 12:05:35 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
2022-03-27 12:08:00 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-03-27 12:09:42 +0200 <[exa]> is there some nice haskell library one could use for syntax highlighting? (i.e., it tells me some meta information about what each piece of a given source code string is, and has support for at least some languages so that I don't need to write the definitions myself)
2022-03-27 12:10:02 +0200DNH(~DNH@8.43.122.72)
2022-03-27 12:12:50 +0200bcoppens_bcoppens
2022-03-27 12:13:59 +0200 <[exa]> whew, there's skylighting
2022-03-27 12:16:39 +0200rustacean(~quassel@117.254.34.170)
2022-03-27 12:16:48 +0200razetime(~quassel@117.254.34.170) (Ping timeout: 272 seconds)
2022-03-27 12:18:25 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-03-27 12:19:28 +0200califax(~califax@user/califx)
2022-03-27 12:21:06 +0200dsrt^(~dsrt@96-91-136-49-static.hfc.comcastbusiness.net) (Remote host closed the connection)
2022-03-27 12:21:31 +0200dsrt^(~dsrt@96-91-136-49-static.hfc.comcastbusiness.net)
2022-03-27 12:21:37 +0200dsrt^(~dsrt@96-91-136-49-static.hfc.comcastbusiness.net) (Remote host closed the connection)
2022-03-27 12:22:32 +0200 <Franciman> [exa]: there are also tree-sitter bindings
2022-03-27 12:23:26 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-03-27 12:26:36 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
2022-03-27 12:27:51 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2022-03-27 12:27:52 +0200 <sshine> [exa], I'd go with tree-sitter just because it seems like a great project.
2022-03-27 12:31:18 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 252 seconds)
2022-03-27 12:31:20 +0200 <[exa]> hm yeah that looks cool
2022-03-27 12:31:35 +0200 <[exa]> is it somehow easily accessible from hackage?
2022-03-27 12:32:35 +0200 <sshine> except for the tree-sitter package saying "We strongly recommend against depending on this library at this time", hmm... ;)
2022-03-27 12:32:47 +0200 <sshine> and hasn't been updated in two years.
2022-03-27 12:33:12 +0200xkuru(~xkuru@user/xkuru)
2022-03-27 12:33:20 +0200 <sshine> it feels like a group of people had a hope two years ago, but abandoned it.
2022-03-27 12:33:45 +0200 <sshine> where/how do you plan to display syntax-highlighted code?
2022-03-27 12:34:52 +0200 <sshine> my guess is that most syntax-highlighting happens in javascript nowadays.
2022-03-27 12:34:55 +0200 <[exa]> I'm not really after syntax highlighting, just trying to get a decent set of code tokenizers for free
2022-03-27 12:35:00 +0200 <sshine> ah!
2022-03-27 12:35:16 +0200 <[exa]> (related to a problem that I was trying to solve here repeatedly several times already, haha)
2022-03-27 12:35:31 +0200 <sshine> ah, didn't catch the general problem.
2022-03-27 12:35:46 +0200 <[exa]> technically I'm just trying to cut the code (and possibly other stuff) into separate tokens and whitespace
2022-03-27 12:36:13 +0200 <sshine> is it a variable set of syntaxes you want to tokenize?
2022-03-27 12:36:32 +0200 <sshine> it's possible that writing your own crude tokenizers is cheap if you don't need the syntax trees.
2022-03-27 12:37:31 +0200gehmehgeh(~user@user/gehmehgeh)
2022-03-27 12:38:26 +0200 <sshine> I like the approach of tree-sitter because it tries to solve a problem across languages and provide FFI, so there's one place to put a parser, rather than to write a parser in each language for each language.
2022-03-27 12:38:48 +0200 <sshine> I'm surprised the tree-sitter package isn't in use.
2022-03-27 12:39:05 +0200 <sshine> it might be, and the warning is just a scare tactic. ;)
2022-03-27 12:39:13 +0200 <abastro[m]> Wouldn't writing own tokenizer be quite a burden
2022-03-27 12:39:31 +0200 <[exa]> the higher-level goal is that I have a nice diff&patch&diff3 tool here that is able to reasonably merge diffs with messed up whitespace and tokenization (think an effortless git merge of source formatted by hindent into source formatted by ormolu), and I'm struggling to get a generic way of parsing many interesting text formats easily (ranging from .txt to markdown, latex, CSVs all the way to normal
2022-03-27 12:39:37 +0200 <[exa]> programming)
2022-03-27 12:39:54 +0200 <sshine> also, eh, the tree-sitter package is littered with 'Ptr' types... seems very shallowly embedded.
2022-03-27 12:41:03 +0200 <[exa]> I was trying to come up with some kinda user-specifiable regex tokenizer but it's not as easy as one would expect, notably given the opinions hardcoded in current regex libraries
2022-03-27 12:41:52 +0200 <sshine> so... a whitespace remover that doesn't break programs for arbitrary syntaxes?
2022-03-27 12:41:56 +0200 <[exa]> then I thought it would be nice to have a runtime lexer library, literally flex that you can load directly into haskell
2022-03-27 12:42:16 +0200 <[exa]> and today I woke up remembering about them syntax highlighters
2022-03-27 12:42:56 +0200 <[exa]> unfortunately apparently this is okay for syntax highlighters: tokenize ... "int a = 5;" ==> [[(DataTypeTok,"int"),(NormalTok," a "),(OperatorTok,"="), ...]
2022-03-27 12:43:04 +0200 <sshine> so... I played around a lot with syntax highlighting in gedit and vim many years ago, and I remember that most syntax-highlighting libraries do things with regex and simple state machines, not lexing.
2022-03-27 12:43:08 +0200 <[exa]> so yeah the search continues!
2022-03-27 12:45:25 +0200 <[exa]> I mostly wanted to avoid problems from e.g. not recognizing the spaces in strings as actual content, and recognizing "actually required" spacing like the haskell "function application space"
2022-03-27 12:47:16 +0200 <[exa]> like, I guess most people would probably do with a simple C-like tokenizer, but that's a highly simplifying assumption (similar to the assumption of current difftools, "code is just lines")
2022-03-27 12:48:04 +0200 <[exa]> actually would it be possible to use vim as a library for this?
2022-03-27 12:51:43 +0200 <[exa]> tree-sitter has no distinction for whitespace either I see :(
2022-03-27 12:52:06 +0200 <sshine> sounds like it wouldn't be able to construct syntax tree for whitespace-sensitive languages then...
2022-03-27 12:52:36 +0200gurkenglas(~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
2022-03-27 12:52:54 +0200 <[exa]> it does (it can do python) but the whitespace is marked very implicitly
2022-03-27 12:53:23 +0200 <[exa]> "1 + 2" seems to parse into: operator expression "1 + 2" that contains left operand "1" and right operand "2"
2022-03-27 12:54:07 +0200 <sshine> ah, and you want whitespace tokens.
2022-03-27 12:54:13 +0200 <[exa]> the " + " in the middle can be kinda deduced but man, is the whitespace significant?
2022-03-27 12:54:22 +0200 <[exa]> (is it even whitespace there?)
2022-03-27 12:54:38 +0200 <[exa]> ok nvm as I said, The Search Continues! :]
2022-03-27 12:55:56 +0200 <sshine> any interest in adding a reference to #haskell-beginners in #haskell's topic again? it was removed some years ago because the channel's topic was consistently used for advertising for a particular book, I believe. but it isn't any more.
2022-03-27 12:58:40 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-27 12:59:09 +0200 <abastro[m]> Used for advertising??
2022-03-27 13:00:32 +0200eotdlt^(~eotdlt@96-91-136-49-static.hfc.comcastbusiness.net)
2022-03-27 13:00:48 +0200 <[exa]> sshine: I thought it is here mainly as a spillover for "ok let's move this to -beginners" for longer conversations here
2022-03-27 13:00:56 +0200 <sshine> so on freenode, I think #haskell-beginners was registered by bitemyapp, and he put a link to buy his book in the topic. I remember the day when the reference to the channel was removed because it seemed partisan, or something.
2022-03-27 13:01:33 +0200 <sshine> [exa], it is here for whatever :) I see some pretty advanced stuff going on in #haskell-beginners, since it's mostly a self-assessment thing whether you're a beginner.
2022-03-27 13:02:09 +0200 <sshine> [exa], but I think the one thing that the channel does is let people ask how to get the nth element of a list, because the name implies all questions are allowed.
2022-03-27 13:02:44 +0200 <sshine> [exa], nobody would frown at such questions here, but psychology, meh. :)
2022-03-27 13:02:54 +0200 <[exa]> yeah
2022-03-27 13:03:07 +0200 <[exa]> like, there's still plenty of space in the topic right?
2022-03-27 13:03:08 +0200 <sshine> the reference used to be there
2022-03-27 13:06:22 +0200AlexZenon(~alzenon@94.233.240.35)
2022-03-27 13:08:03 +0200AlexZenon_2(~alzenon@94.233.240.35) (Ping timeout: 256 seconds)
2022-03-27 13:08:42 +0200acidjnk(~acidjnk@p200300d0c7049f825551b1368b4030e6.dip0.t-ipconnect.de)
2022-03-27 13:13:09 +0200benin(~benin@183.82.24.110) (Quit: The Lounge - https://thelounge.chat)
2022-03-27 13:22:02 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-03-27 13:24:03 +0200ProfSimm(~ProfSimm@87.227.196.109) (Remote host closed the connection)
2022-03-27 13:25:19 +0200gurkenglas(~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de)
2022-03-27 13:30:12 +0200 <abastro[m]> Sometimes `!! n` is useful tho
2022-03-27 13:36:27 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Ping timeout: 260 seconds)
2022-03-27 13:39:00 +0200 <sm> a good article on [Infinite] Category Theory: https://news.ycombinator.com/item?id=30809385
2022-03-27 13:40:50 +0200DNH(~DNH@8.43.122.72) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-03-27 13:42:35 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2022-03-27 13:42:48 +0200gurkenglas(~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de) (Ping timeout: 252 seconds)
2022-03-27 13:43:13 +0200 <sm> AFAIK #haskell-beginners never managed to separate itself from #haskell - there was no real difference in content - so it just created fragmentation. The concept seems good but I think to succeed it would need a clear scope different from #haskell's and some strong leadership/curation.
2022-03-27 13:43:49 +0200 <sm> (I haven't been hanging out there, so if things have changed let us know)
2022-03-27 13:44:30 +0200acidjnk(~acidjnk@p200300d0c7049f825551b1368b4030e6.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-03-27 13:45:17 +0200ProfSimm(~ProfSimm@87.227.196.109)
2022-03-27 13:45:36 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-03-27 13:46:23 +0200 <DigitalKiwi> that's the great part about #haskell is you never know if it's a beginner or advanced phd thesis level question you're going to get sniped by
2022-03-27 13:47:06 +0200AlexNoo__AlexNoo
2022-03-27 13:47:18 +0200 <hpc> yeah, i like having everything in one place
2022-03-27 13:47:30 +0200 <hpc> you're getting the whole community that way too
2022-03-27 13:47:56 +0200 <DigitalKiwi> and then you never have to be like "is this a beginner question or not"
2022-03-27 13:48:10 +0200 <DigitalKiwi> and you don't have to move lol
2022-03-27 13:48:23 +0200 <hpc> and more people answer questions
2022-03-27 13:48:42 +0200 <hpc> sometimes the best answers come from the people who don't normally answer "beginner questions"
2022-03-27 13:49:03 +0200 <hpc> because the question might accidentally touch on some really neat more advanced concept
2022-03-27 13:49:35 +0200 <sm> I often wished for a channel more... focussed on my needs as a haskell learner/new practitioner. Trouble is there's a wide variety of haskellers and typs of "beginner"
2022-03-27 13:49:59 +0200 <DigitalKiwi> and a lot of times something's out of left field or something like the answerer might have some knowledge about the topic but be beginner in haskell
2022-03-27 13:50:50 +0200 <sm> is someone wanting to chat about category theory a beginner ? in a sense, yes
2022-03-27 13:52:02 +0200 <DigitalKiwi> sm: you have to make #haskell the channel you want! what i mean is you have to ask questions. learning by osmosis isn't so good here. i've tried lol. i think that's probably partly because of the wide variety of topics that everyone asks. if you try to learn from their questions you will get lost
2022-03-27 13:52:45 +0200 <sm> maybe several beginner channels could work
2022-03-27 13:52:58 +0200 <sm> but, that requires organisation
2022-03-27 13:54:02 +0200 <sm> and really it would require chasing beginners out of here, which won't happen
2022-03-27 13:54:25 +0200 <DigitalKiwi> don't the scary phd questions do that enough ;D
2022-03-27 13:55:17 +0200 <sm> apparently not :)
2022-03-27 13:57:18 +0200smthinks a better next step would be a clearer overview/roadmap to existing channels
2022-03-27 13:57:51 +0200zer0bitz(~zer0bitz@dsl-hkibng32-54fbf8-224.dhcp.inet.fi)
2022-03-27 13:58:44 +0200 <sm> that would help folks wanting a more focussed chat find the right place
2022-03-27 14:00:41 +0200zer0bitz__(~zer0bitz@dsl-hkibng32-54fbf8-224.dhcp.inet.fi) (Ping timeout: 272 seconds)
2022-03-27 14:02:10 +0200 <sm> in matrix, the #haskell-space:matrix.org helps. In IRC I expect there's a wiki page, but out of date
2022-03-27 14:10:38 +0200 <sm> some current matrix "members" counts, for what they're worth: #haskell:libera.chat 2487, #haskell:matrix.org 1791, #haskell-space:matrix.org 255
2022-03-27 14:15:02 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-03-27 14:16:04 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-03-27 14:23:37 +0200zer0bitz(~zer0bitz@dsl-hkibng32-54fbf8-224.dhcp.inet.fi) (Ping timeout: 240 seconds)
2022-03-27 14:23:58 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-03-27 14:24:15 +0200rustaceanrazetime
2022-03-27 14:25:07 +0200razetime(~quassel@117.254.34.170) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-03-27 14:25:22 +0200razetime(~quassel@117.254.34.170)
2022-03-27 14:26:30 +0200zer0bitz(~zer0bitz@dsl-hkibng32-54fbf8-224.dhcp.inet.fi)
2022-03-27 14:30:08 +0200zer0bitz_(~zer0bitz@dsl-hkibng32-54fbf8-224.dhcp.inet.fi)
2022-03-27 14:32:56 +0200zer0bitz(~zer0bitz@dsl-hkibng32-54fbf8-224.dhcp.inet.fi) (Ping timeout: 260 seconds)
2022-03-27 14:33:01 +0200zer0bitz__(~zer0bitz@dsl-hkibng32-54fbf8-224.dhcp.inet.fi)
2022-03-27 14:34:11 +0200Digit(~user@user/digit) (Ping timeout: 256 seconds)
2022-03-27 14:36:46 +0200zer0bitz_(~zer0bitz@dsl-hkibng32-54fbf8-224.dhcp.inet.fi) (Ping timeout: 272 seconds)
2022-03-27 14:36:48 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2022-03-27 14:37:10 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-27 14:37:42 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 14:38:39 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2022-03-27 14:40:04 +0200cdman(~dcm@user/dmc/x-4369397) (Quit: Leaving)
2022-03-27 14:42:27 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2022-03-27 14:49:59 +0200razetime(~quassel@117.254.34.170) (Read error: Connection reset by peer)
2022-03-27 14:50:33 +0200zer0bitz(~zer0bitz@dsl-hkibng32-54fbf8-224.dhcp.inet.fi)
2022-03-27 14:52:16 +0200Digit(~user@user/digit)
2022-03-27 14:52:36 +0200zer0bitz__(~zer0bitz@dsl-hkibng32-54fbf8-224.dhcp.inet.fi) (Ping timeout: 272 seconds)
2022-03-27 14:52:38 +0200CiaoSen(~Jura@p200300c95735b0002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-03-27 14:52:39 +0200joo-_(~joo-_@fsf/member/joo--) (Ping timeout: 252 seconds)
2022-03-27 14:53:23 +0200CATS(apic@brezn3.muc.ccc.de)
2022-03-27 14:54:25 +0200joo-_(~joo-_@87-49-146-72-mobile.dk.customer.tdc.net)
2022-03-27 14:54:25 +0200joo-_(~joo-_@87-49-146-72-mobile.dk.customer.tdc.net) (Changing host)
2022-03-27 14:54:25 +0200joo-_(~joo-_@fsf/member/joo--)
2022-03-27 14:58:09 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
2022-03-27 15:05:55 +0200razetime(~quassel@117.254.34.170)
2022-03-27 15:09:48 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-03-27 15:11:26 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-27 15:13:22 +0200bahamas(~lucian@84.232.140.158)
2022-03-27 15:16:10 +0200Everything(~Everythin@37.115.210.35) (Quit: leaving)
2022-03-27 15:19:00 +0200joo-_(~joo-_@fsf/member/joo--) (Ping timeout: 240 seconds)
2022-03-27 15:20:56 +0200joo-_(~joo-_@87-49-146-56-mobile.dk.customer.tdc.net)
2022-03-27 15:20:56 +0200joo-_(~joo-_@87-49-146-56-mobile.dk.customer.tdc.net) (Changing host)
2022-03-27 15:20:56 +0200joo-_(~joo-_@fsf/member/joo--)
2022-03-27 15:21:46 +0200hololeap(~hololeap@user/hololeap) (Remote host closed the connection)
2022-03-27 15:23:14 +0200hololeap(~hololeap@user/hololeap)
2022-03-27 15:34:22 +0200zer0bitz_(~zer0bitz@dsl-hkibng32-54fbf8-224.dhcp.inet.fi)
2022-03-27 15:35:55 +0200zer0bitz(~zer0bitz@dsl-hkibng32-54fbf8-224.dhcp.inet.fi) (Ping timeout: 260 seconds)
2022-03-27 15:43:08 +0200cdman(~dcm@user/dmc/x-4369397)
2022-03-27 15:54:47 +0200DNH(~DNH@8.43.122.72)
2022-03-27 16:01:06 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-03-27 16:11:05 +0200bahamas(~lucian@84.232.140.158) (Ping timeout: 256 seconds)
2022-03-27 16:16:03 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-03-27 16:16:14 +0200CiaoSen(~Jura@p200300c95735b0002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2022-03-27 16:18:57 +0200justsomeguy(~justsomeg@user/justsomeguy)
2022-03-27 16:23:50 +0200gurkenglas(~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de)
2022-03-27 16:38:43 +0200 <janus> sm: i think lower volume channels like #haskell-in-depth may be better for beginners, since you'd only get one answer
2022-03-27 16:39:33 +0200 <[exa]> b...b...but
2022-03-27 16:39:38 +0200 <[exa]> answer polymorphism!
2022-03-27 16:47:49 +0200 <abastro[m]> Ad-hoc polymorphic answers?
2022-03-27 16:50:34 +0200bahamas(~lucian@84.232.140.158)
2022-03-27 16:53:25 +0200DNH(~DNH@8.43.122.72) (Ping timeout: 240 seconds)
2022-03-27 16:54:17 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-03-27 16:57:00 +0200bahamas(~lucian@84.232.140.158) (Ping timeout: 240 seconds)
2022-03-27 17:04:57 +0200AlexZenon_2(~alzenon@94.233.240.35)
2022-03-27 17:06:37 +0200AlexZenon(~alzenon@94.233.240.35) (Ping timeout: 256 seconds)
2022-03-27 17:10:15 +0200DigitalKiwi(~kiwi@2604:a880:400:d0::12fc:5001) (Quit: quite.)
2022-03-27 17:12:55 +0200 <dsal> ProfSimm: it's odd that you think it was overlooked and not a conscious decision.
2022-03-27 17:13:39 +0200cdman(~dcm@user/dmc/x-4369397) (Quit: Leaving)
2022-03-27 17:18:18 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2022-03-27 17:20:28 +0200 <ProfSimm> dsal: I'm writing a language which has very similar application chain to haskell's, so I have the same problem with unary minus
2022-03-27 17:20:41 +0200 <ProfSimm> dsal: and frankly it's making me rethink my entire life.
2022-03-27 17:20:54 +0200 <ProfSimm> dsal: but that's just me being perfectionist.
2022-03-27 17:20:59 +0200 <geekosaur> unary minus has always been a problem
2022-03-27 17:21:09 +0200 <ProfSimm> dsal: but this is why I wonder about Haskell
2022-03-27 17:21:17 +0200 <geekosaur> different languages have different solutions, and they all have weird pain points
2022-03-27 17:21:19 +0200 <abastro[m]> Whh
2022-03-27 17:21:33 +0200 <dsal> It depends on what you consider perfect. Special cases are blemishes.
2022-03-27 17:21:48 +0200 <ProfSimm> geekosaur: unary minus is not a problem when you have no application chain like Haskell I think.
2022-03-27 17:21:49 +0200 <geekosaur> makes me wish everyone had gone with the solutionof just choosing a different operator character (at least one uses ~ instead of -)
2022-03-27 17:21:57 +0200 <ProfSimm> geekosaur: for example in most language you need () around params, so
2022-03-27 17:22:02 +0200 <ProfSimm> foo (-5) is not an issue
2022-03-27 17:22:14 +0200 <ProfSimm> In haskell though foo -5 vs foo - 5 is a problem
2022-03-27 17:22:42 +0200 <geekosaur> it makesit more obvious, but there are still weird corner cases, they're just less common in many languages
2022-03-27 17:22:43 +0200 <ProfSimm> geekosaur: math notation sucks
2022-03-27 17:22:47 +0200img(~img@user/img)
2022-03-27 17:23:25 +0200 <ProfSimm> dsal: I'm thinking of maybe only allowing bare identifiers outside parens in the chain
2022-03-27 17:23:38 +0200 <dsal> Adding lots of punctuation all the time just so you don't have to add punctuation that one rare time doesn't seem like a good trade-off.
2022-03-27 17:23:44 +0200 <ProfSimm> dsal: so you need to write: foo bar (12) baz ("text") something somethin qux
2022-03-27 17:24:17 +0200 <ProfSimm> dsal: well
2022-03-27 17:25:14 +0200 <ProfSimm> dsal: I implemented the 'no space' trick from the plugin you linked me to, try this (no quotes): foo - 5, foo -5 here: https://www.coltram.com/proto/
2022-03-27 17:25:21 +0200 <ProfSimm> dsal: it seems too subtle doesn't it
2022-03-27 17:26:35 +0200 <ProfSimm> dsal: I can also cover the case of foo-5 being binary minus (currently parsed as unary)
2022-03-27 17:26:44 +0200 <ProfSimm> But I don't like 'blemishes'
2022-03-27 17:27:05 +0200 <dsal> I've never used it because it's never mattered to me. I don't have enough negative literals in my code to justify such a special case.
2022-03-27 17:27:21 +0200 <ProfSimm> dsal curious
2022-03-27 17:27:40 +0200 <dsal> I'm a somewhat positive person.
2022-03-27 17:27:42 +0200 <ProfSimm> dsal: you don't recall sometimes writing "something -1" and then cursing why it doesn't work like you expected?
2022-03-27 17:27:51 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-03-27 17:28:19 +0200 <dsal> Sure. Part of every day I write code the compiler tells me something stupid I did.
2022-03-27 17:28:31 +0200 <hpc> i am more of the "i don't care if it works, don't write 'something -1'" kind of person
2022-03-27 17:28:59 +0200 <ProfSimm> hpc: I'm curious why. Isn't it a pretty common think to pass a number to a function
2022-03-27 17:29:02 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds)
2022-03-27 17:29:04 +0200 <ProfSimm> thing*
2022-03-27 17:29:20 +0200 <ProfSimm> hpc: how do you write it
2022-03-27 17:30:36 +0200 <hpc> with parens, or i try to dodge the use of negative literals
2022-03-27 17:30:56 +0200eddiemundo(~eddiemund@2001:470:69fc:105::a80)
2022-03-27 17:31:05 +0200 <hpc> this isn't a problem unique to haskell, haskell is just one of the few languages that doesn't try to guess what you mean
2022-03-27 17:31:10 +0200 <ProfSimm> hpc: it makes it sound like it's consciously on your mind to avoid the situation
2022-03-27 17:31:17 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4)
2022-03-27 17:31:18 +0200 <hpc> C also has this issue with *
2022-03-27 17:31:27 +0200 <hpc> C++ has this issue with all sorts of operators
2022-03-27 17:31:32 +0200 <hpc> it's a pretty common thing
2022-03-27 17:31:34 +0200 <ProfSimm> hpc: oh what's the issue with C
2022-03-27 17:31:48 +0200 <hpc> are you multiplying, or are you dereferencing
2022-03-27 17:32:10 +0200 <hpc> the ambiguity happens when you're also doing a type cast at the same time
2022-03-27 17:32:15 +0200 <hpc> (abc) *def
2022-03-27 17:32:32 +0200 <ProfSimm> hpc: I was thinking about introducing the concept of left/right "bias" on the operator, depending on surrounding whitespace: foo-5 (no bias) foo - 5 (no bias) foo- 5 (left bias) foo -5 (right bias), and using the bias to resolve conflicts. What do you think?
2022-03-27 17:32:35 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2022-03-27 17:33:24 +0200 <ProfSimm> hpc: it plays with whitespace which feels dangerous, but it's very intuitive to a human being
2022-03-27 17:33:29 +0200 <hpc> it's reasonable, i think
2022-03-27 17:33:42 +0200 <hpc> or for extra fun, what if you always needed spaces
2022-03-27 17:33:53 +0200 <hpc> foo-5 isn't subtraction, it's a single name
2022-03-27 17:34:12 +0200 <ProfSimm> hpc: I've considered it, especially since I wanted dash in names. But I suspect it'll be annoying to people
2022-03-27 17:34:12 +0200 <hpc> now you can be like powershell :P
2022-03-27 17:35:20 +0200 <ProfSimm> hpc: my decision against it was consistency. I require space around - and +, fine, but what about / and * ? What about exponentiation ^? And finally, what about operators like comma, semicolon, colon and so on
2022-03-27 17:35:41 +0200 <abastro[m]> `let n = -1 in f n`
2022-03-27 17:35:43 +0200 <ProfSimm> hpc: if there'll be rule I prefer it be one rule for all operators
2022-03-27 17:36:53 +0200 <ProfSimm> hpc: interestingly, whitespace "bias" would resolve the C example you gave me: foo* bar vs foo *bar
2022-03-27 17:37:05 +0200 <ProfSimm> hpc: thanks for the feedback I might actually do it
2022-03-27 17:37:13 +0200zyklotomic(~ethan@r4-128-61-94-5.res.gatech.edu) (Ping timeout: 256 seconds)
2022-03-27 17:37:43 +0200 <abastro[m]> I wonder what happens in C if you do `i---j`
2022-03-27 17:37:44 +0200 <geekosaur> whitespace bias is already a thing in ghc9.x
2022-03-27 17:38:03 +0200 <ProfSimm> geekosaur: oh is it. Where can I read about it/
2022-03-27 17:38:13 +0200 <geekosaur> C uses LTM so it should be i-- - j
2022-03-27 17:38:39 +0200 <abastro[m]> Confuusssing
2022-03-27 17:38:58 +0200 <ProfSimm> My parser would resolve this to subtract(i, neg(neg(j)))
2022-03-27 17:39:06 +0200zyklotomic(~ethan@res380d-128-61-83-1.res.gatech.edu)
2022-03-27 17:39:15 +0200 <geekosaur> GHC is now more sensitive to whitespace between infix operators and their arguments, requiring it in some cases where it was not previously necessary as the result of the whitespace-sensitive operator parsing proposal. It also affects the usage of !,``~`` and @ as BangPatterns, irrefutable patterns and type applications respectively. This means that expressions that were parsed as visible type applications in previous versions when the @ was
2022-03-27 17:39:15 +0200 <geekosaur> surrounded by whitespace will now be parsed as an operator application. For more details see the migration guide on the wiki.
2022-03-27 17:39:22 +0200 <geekosaur> per the release notes
2022-03-27 17:39:45 +0200 <geekosaur> this subsumes a bunch of ad hoc rules used by various other extensions
2022-03-27 17:40:04 +0200 <ProfSimm> geekosaur: niccccee, this kinda supports me going in this direction myself
2022-03-27 17:40:26 +0200bahamas(~lucian@84.232.140.158)
2022-03-27 17:42:01 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-03-27 17:42:25 +0200rawley(~rawley@216-197-141-102.nbfr.hsdb.sasknet.sk.ca)
2022-03-27 17:44:42 +0200 <ProfSimm> Long live significant whitespace i guess
2022-03-27 17:46:03 +0200eldritch(~eldritch@user/eldritch) (Quit: bye)
2022-03-27 17:46:03 +0200glider(~glider@user/glider) (Quit: ZNC - https://znc.in)
2022-03-27 17:46:03 +0200anderson(~ande@user/anderson) (Quit: bye)
2022-03-27 17:47:25 +0200alp(~alp@user/alp)
2022-03-27 17:49:52 +0200 <maerwald> yeah, I love it when a whitespaces changes the meaning of my program :D
2022-03-27 17:50:10 +0200 <maerwald> it's the dark matter of programming
2022-03-27 17:50:34 +0200lagash(lagash@lagash.shelltalk.net)
2022-03-27 17:50:57 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2022-03-27 17:51:25 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2022-03-27 17:55:55 +0200boxscape_(~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-03-27 17:56:24 +0200anderson(~ande@user/anderson)
2022-03-27 17:56:46 +0200 <ProfSimm> maerwald: butletsfaceiteverylanguagereliesonwhitespaceinsomeway
2022-03-27 17:57:40 +0200 <dsal> This is not a perl channel.
2022-03-27 17:58:23 +0200 <hpc> hey, even perl has acme::bleach
2022-03-27 17:58:34 +0200 <geekosaur> that's an empty program in Whitespace }:>
2022-03-27 17:58:42 +0200 <dsal> haha. all comments
2022-03-27 17:59:06 +0200 <dsal> The best thing about programming is that any statement about programming is false.
2022-03-27 18:00:22 +0200 <ProfSimm> dsal: why
2022-03-27 18:00:30 +0200 <ProfSimm> dsal: all my statements are true :P
2022-03-27 18:01:15 +0200 <dsal> My language only supports unary logic.
2022-03-27 18:01:30 +0200eldritch_(~eldritch@user/eldritch)
2022-03-27 18:01:53 +0200 <ProfSimm> dsal: in my language every single value can be true or false independently of its contents
2022-03-27 18:02:10 +0200 <ProfSimm> you can have true 0 false 0, true "true", false "true" and so on
2022-03-27 18:02:21 +0200 <ProfSimm> lots of fun
2022-03-27 18:02:48 +0200 <geekosaur> snobol
2022-03-27 18:03:00 +0200 <geekosaur> where it's success/failure instead of true/false
2022-03-27 18:03:07 +0200glider(~glider@user/glider)
2022-03-27 18:03:43 +0200 <ProfSimm> geekosaur: oh it does that what i described?
2022-03-27 18:04:20 +0200 <dsal> But for the most part, when someone says "programming languages do X", there's a counterexample of a programming language that does not do X.
2022-03-27 18:04:59 +0200 <dsal> I like languages that go all-in on boolean blindness by making it so that you can treat everything as a boolean.
2022-03-27 18:05:38 +0200 <ProfSimm> dsal: that;s what I did, but maybe not as typically done
2022-03-27 18:05:51 +0200 <ProfSimm> dsal: everything is a boolean.
2022-03-27 18:06:13 +0200 <ProfSimm> dsal: but it's more of a replacement for returning result or throwing exception.
2022-03-27 18:06:18 +0200 <ProfSimm> It calls one of two continuations
2022-03-27 18:06:22 +0200 <ProfSimm> then or else
2022-03-27 18:08:05 +0200 <dsal> So, Either?
2022-03-27 18:08:13 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-03-27 18:08:49 +0200 <ProfSimm> dsal: in a way yes, but the integration with the syntax and every value makes it take on a different flavor
2022-03-27 18:08:55 +0200 <dsal> Either is much less of a problem for boolean blindness
2022-03-27 18:08:57 +0200 <monochrom> Haha that reminds me. Robert Harper critiqued boolean blindness, right? And then in his textbook, he went on to explain parametricity in System F by adding only one type: boolean. >:)
2022-03-27 18:09:23 +0200 <ProfSimm> dsal: for example this is if/then/else and ternary, no need for dedicated operators: if & then | else
2022-03-27 18:09:49 +0200 <ProfSimm> dsal: this is also chaining actions and handling errors: do1 & do2 & do3 & do4 | handleError
2022-03-27 18:10:21 +0200 <ProfSimm> dsal: basicaly an entire method is a single expression, like Haskell, but booleans do the flow control
2022-03-27 18:11:02 +0200 <ProfSimm> It gets very interesting honestly
2022-03-27 18:11:17 +0200 <ProfSimm> I like when things fit together and 5 things end up being 1 thing
2022-03-27 18:11:21 +0200 <ProfSimm> simplification
2022-03-27 18:14:00 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds)
2022-03-27 18:14:24 +0200 <ProfSimm> I think having booleans as distinct values may be an error
2022-03-27 18:14:54 +0200 <ProfSimm> in machine code you almost never use such values. Sometimes you "jump if zero" or "not zero"
2022-03-27 18:15:04 +0200 <ProfSimm> But way more often you directly jump from a comparison operation etc.
2022-03-27 18:15:07 +0200 <ProfSimm> No boolean values
2022-03-27 18:15:26 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-03-27 18:16:28 +0200`2jt(~jtomas@210.red-88-24-179.staticip.rima-tde.net)
2022-03-27 18:16:32 +0200 <ProfSimm> if (x > 0 && x < 10) print("x in range"); else print("x not in range"); ----> x > 0 & x < 10 & print("x in range") | print ("x not in range")
2022-03-27 18:16:47 +0200 <geekosaur> looks like bash scripting
2022-03-27 18:16:54 +0200 <ProfSimm> Probably
2022-03-27 18:17:17 +0200 <geekosaur> [ x > 0 && x < 10] && echo x in range || echo x not in range
2022-03-27 18:17:36 +0200 <ProfSimm> geekosaur: yeah. In Lua they also use && and || as ternary
2022-03-27 18:18:00 +0200 <ProfSimm> geekosaur: there's a gotcha though, if "echo x in range" returns falsy value, your "else" will run
2022-03-27 18:18:09 +0200 <geekosaur> that's not ternary, it's just how && and || associate
2022-03-27 18:18:14 +0200 <ProfSimm> geekosaur: in my case there's no such danger because all values are true by default
2022-03-27 18:18:47 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 250 seconds)
2022-03-27 18:18:50 +0200 <ProfSimm> geekosaur: I knot it's not ternary, but my point is it's used as such
2022-03-27 18:19:03 +0200 <ProfSimm> geekosaur: but consider: 1 && 0 || 2
2022-03-27 18:19:14 +0200 <ProfSimm> Here you may hope to see 0 as a result, but you'll see 2
2022-03-27 18:19:41 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-03-27 18:19:43 +0200 <ProfSimm> In my lang, 1 & 0 | 2 will produce 0
2022-03-27 18:19:49 +0200 <ProfSimm> Because 0 is not "falsey"
2022-03-27 18:20:09 +0200 <ProfSimm> You have to explicitly write "x != 0"
2022-03-27 18:21:11 +0200 <ProfSimm> You can turn any value at all into false with not: !"something" ---> becomes a falsey string "something"
2022-03-27 18:21:35 +0200 <hpc> so every value has a completely independent truthiness attached to it?
2022-03-27 18:21:48 +0200 <ProfSimm> hpc: yes, and it's true for all by default
2022-03-27 18:21:50 +0200 <hpc> neat
2022-03-27 18:21:52 +0200 <geekosaur> again this sounds like snobol/icon
2022-03-27 18:21:59 +0200infinity0(~infinity0@occupy.ecodis.net) (Ping timeout: 256 seconds)
2022-03-27 18:22:03 +0200 <ProfSimm> geekosaur: where can I see examples of snobo
2022-03-27 18:22:06 +0200 <ProfSimm> Sounds curious
2022-03-27 18:22:10 +0200 <geekosaur> success/failure is distinct from boolean false/true
2022-03-27 18:22:17 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-03-27 18:22:41 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 250 seconds)
2022-03-27 18:22:43 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-03-27 18:22:43 +0200 <geekosaur> you might find icon more approachable as snobol was from the punched card days
2022-03-27 18:23:03 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2022-03-27 18:23:04 +0200 <geekosaur> https://en.wikipedia.org/wiki/Icon_(programming_language)
2022-03-27 18:24:21 +0200vysn(~vysn@user/vysn) (Remote host closed the connection)
2022-03-27 18:24:37 +0200Teacup(~teacup@user/teacup) (Quit: Teacup)
2022-03-27 18:24:37 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-03-27 18:24:49 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-03-27 18:25:27 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 18:25:30 +0200gurkenglas(~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de) (Ping timeout: 252 seconds)
2022-03-27 18:25:50 +0200 <ProfSimm> hpc: technically !something wraps something in not(something). What not does is swap then -> else and else -> then for the value. Every other interface is proxied transparently through not to something.
2022-03-27 18:26:16 +0200 <ProfSimm> But it works as if there's a boolean attached to every value.
2022-03-27 18:26:26 +0200 <ProfSimm> Internally every value is true, unless wrapped in odd number of "nots"
2022-03-27 18:28:11 +0200 <ProfSimm> geekosaur: I don't understand icon, says a < b will return b, if b is bigger. what does if (a<b) mean then
2022-03-27 18:30:31 +0200 <ProfSimm> I think i get it
2022-03-27 18:30:48 +0200 <geekosaur> a < b fails if b is not bigger. if looks only at success/failure
2022-03-27 18:30:48 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2022-03-27 18:30:48 +0200Vajb(~Vajb@2001:999:62:aa00:7f5a:4f10:c894:3813)
2022-03-27 18:31:13 +0200Teacup(~teacup@user/teacup)
2022-03-27 18:32:19 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-03-27 18:32:29 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2022-03-27 18:32:42 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-03-27 18:32:45 +0200 <geekosaur> this allows a < b to produce b if it'sbigger, which allows chaining comparisons (e.g. if 3 < x < 10)
2022-03-27 18:33:23 +0200 <geekosaur> (sorry, network around here sucks)
2022-03-27 18:35:44 +0200 <ProfSimm> geekosaur: got it
2022-03-27 18:36:06 +0200 <ProfSimm> geekosaur: seems similar indeed. But FAIL can't carry information it seems
2022-03-27 18:36:13 +0200 <geekosaur> no, it can't
2022-03-27 18:36:28 +0200 <geekosaur> internally failing is the same as producing &fail
2022-03-27 18:36:35 +0200 <ProfSimm> In my case I use "falsey" values to carry error information (or other information for the else case as needed)
2022-03-27 18:36:35 +0200vglfr(~vglfr@88.155.46.233)
2022-03-27 18:37:11 +0200 <geekosaur> hm, actually I'm not certain of that, it may be possible toextract information from a fail. I'm not an icon wizard
2022-03-27 18:37:19 +0200 <ProfSimm> :)
2022-03-27 18:37:33 +0200 <ProfSimm> geekosaur: it's full of languages in the 80s that do things I do
2022-03-27 18:37:49 +0200 <ProfSimm> geekosaur: either I'm about to learn why they failed... or we branched onto a dark timeline since
2022-03-27 18:38:17 +0200 <geekosaur> I still think if the current version of icon (unicon) had been around earlier, it might have prevented the rise of perl
2022-03-27 18:38:42 +0200 <ProfSimm> geekosaur: for a new language to rise now it needs a killer app
2022-03-27 18:38:53 +0200 <geekosaur> that said, icon uses snobol-like patterns insteadof regexes so perl might still have won solely because of that
2022-03-27 18:39:36 +0200 <geekosaur> the world needed something better than shell scripting. unicon andperl both offered that… but unicon came too late and earlier versions of icon didn't really fill the need
2022-03-27 18:39:56 +0200 <maerwald> what's wrong with shell
2022-03-27 18:40:32 +0200 <geekosaur> generally once you reach around 10 lines of shell you're either beating your head against a wall or making a major mistake :)
2022-03-27 18:41:05 +0200 <geekosaur> everything being a string with (back then) limited manipulation ability didn't help
2022-03-27 18:41:27 +0200 <geekosaur> these days bash and zsh both offer advenced programming features, but they didn't back then
2022-03-27 18:42:08 +0200 <geekosaur> no arrays (well, zsh had simple ones on a par with (t)csh), limited number handling,etc.
2022-03-27 18:42:25 +0200 <geekosaur> you could fake arrays even in bourne shell with some evil eval tricks, but still
2022-03-27 18:42:41 +0200 <hpc> the current bash arrays are not much better :P
2022-03-27 18:42:56 +0200 <ProfSimm> What did "bash" mean
2022-03-27 18:42:58 +0200 <ProfSimm> Batch shell?
2022-03-27 18:43:05 +0200 <maerwald> who needs arrays, just pick some delimiter and hope it works
2022-03-27 18:43:05 +0200 <geekosaur> "bourne-again shell"
2022-03-27 18:43:10 +0200 <ProfSimm> oh
2022-03-27 18:43:22 +0200 <geekosaur> reference to unix shell history
2022-03-27 18:44:24 +0200 <hpc> you get a similar sort of history with vim
2022-03-27 18:44:31 +0200 <hpc> vi improved
2022-03-27 18:44:50 +0200aliosablack(~chomwitt@2a02:587:dc18:da00:e2ec:eb52:4039:9bfe) (Quit: Leaving)
2022-03-27 18:45:04 +0200 <hpc> vi is visual editor, because its predecessor was ed
2022-03-27 18:45:20 +0200 <hpc> or maybe sed?
2022-03-27 18:45:47 +0200 <hpc> you would print out your program on paper, and then use ed/sed to make individual line edits without being able to actually see the file on the computer
2022-03-27 18:46:12 +0200 <geekosaur> vi was visual ex, ex was enhanced ed
2022-03-27 18:46:22 +0200 <hpc> ah, right
2022-03-27 18:46:50 +0200gurkenglas(~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de)
2022-03-27 18:46:51 +0200 <hpc> back in those days, just catting out a file was enough to make your network connection chug
2022-03-27 18:47:03 +0200 <hpc> and that's assuming your teletype wasn't an actual typewriter
2022-03-27 18:49:03 +0200boxscape_(~boxscape_@p4ff0b60b.dip0.t-ipconnect.de)
2022-03-27 18:51:36 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 245 seconds)
2022-03-27 18:52:45 +0200 <monochrom> Quite remarkable that coding style guides of those days were obsessed with using magic numbers to express "we mean to say that each function should fit on one page".
2022-03-27 18:52:46 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-03-27 18:54:08 +0200DigitalKiwi(~kiwi@159.223.106.6)
2022-03-27 18:57:05 +0200ss-(~ss-@187.83.249.216.dyn.smithville.net)
2022-03-27 18:58:01 +0200 <ProfSimm> monochrom: they should gzipped the code and printed it in base64
2022-03-27 18:58:31 +0200 <monochrom> Wait, the irony of the person who changed ghcup from written-in-bash to written-in-Haskell asking "what's wrong with shell?" hahaha
2022-03-27 18:58:58 +0200bahamas(~lucian@84.232.140.158) (Ping timeout: 272 seconds)
2022-03-27 19:00:29 +0200 <hpc> monochrom: that's the beauty of those old spooled printers, a page was as long as you wanted it to be :P
2022-03-27 19:01:30 +0200 <ss-> I've got a stack project where some files have a preprocessor run over them with {-# OPTIONS_GHC -F -pgmF=myPreprocessor #-}. everything works as expected, except that when I get a compile error with stack build, it points to a randomly-numbered temporary file e.g. ghc_42.hspp rather than the original module. I don't mind the line numbers being off
2022-03-27 19:01:30 +0200 <ss-> (though the preprocessor does preserve line numbers), but is there an easy way to get the original file name to show up in error messages?
2022-03-27 19:02:19 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 250 seconds)
2022-03-27 19:03:31 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-03-27 19:04:34 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-27 19:05:35 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 19:07:14 +0200 <geekosaur> ss-, the preprocessor would need to add LINE pragmas specifying the original file name and ideally line number
2022-03-27 19:07:21 +0200 <geekosaur> otherwise ghc has no idea
2022-03-27 19:07:49 +0200 <geekosaur> ProfSimm, you've never had to debug from a memory image printout
2022-03-27 19:08:31 +0200 <geekosaur> my first year of college, I did. (only once. after that I got myself a COBOL compiler I could use at home with a more sensible debugging environment)
2022-03-27 19:10:05 +0200 <ss-> geekosaur oh, got it! thanks!
2022-03-27 19:10:29 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2022-03-27 19:14:06 +0200mc47(~mc47@xmonad/TheMC47)
2022-03-27 19:15:23 +0200ss-(~ss-@187.83.249.216.dyn.smithville.net) (Quit: Client closed)
2022-03-27 19:16:21 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Quit: WeeChat 3.4.1)
2022-03-27 19:16:32 +0200razetime(~quassel@117.254.34.170) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-03-27 19:17:17 +0200vglfr(~vglfr@88.155.46.233) (Ping timeout: 256 seconds)
2022-03-27 19:18:23 +0200gehmehgeh(~user@user/gehmehgeh)
2022-03-27 19:24:12 +0200dextaa_(~dextaa@user/dextaa) (Remote host closed the connection)
2022-03-27 19:24:24 +0200jbox(~jbox@user/jbox)
2022-03-27 19:24:33 +0200Teacup(~teacup@user/teacup) (Remote host closed the connection)
2022-03-27 19:24:48 +0200Teacup(~teacup@user/teacup)
2022-03-27 19:25:08 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-03-27 19:26:05 +0200nautical(~nautical@2601:602:900:1630::7cbb) (Quit: WeeChat 3.4)
2022-03-27 19:26:39 +0200jbox(~jbox@user/jbox) (Read error: Connection reset by peer)
2022-03-27 19:27:12 +0200kosmikus(~kosmikus@nullzig.kosmikus.org) (Quit: Lost terminal)
2022-03-27 19:29:50 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 19:30:11 +0200eotdlt^(~eotdlt@96-91-136-49-static.hfc.comcastbusiness.net) (Remote host closed the connection)
2022-03-27 19:31:09 +0200mrmonday(~robert@what.i.hope.is.not.a.tabernaevagant.es) (Quit: .)
2022-03-27 19:31:15 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
2022-03-27 19:33:04 +0200mrmonday(~robert@what.i.hope.is.not.a.tabernaevagant.es)
2022-03-27 19:33:30 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-03-27 19:35:52 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2022-03-27 19:37:16 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net)
2022-03-27 19:42:22 +0200nattiestnate(~nate@202.138.250.62)
2022-03-27 19:44:01 +0200infinity0(~infinity0@occupy.ecodis.net)
2022-03-27 19:47:01 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds)
2022-03-27 19:49:06 +0200chomwitt(~chomwitt@2a02:587:dc18:da00:e2ec:eb52:4039:9bfe)
2022-03-27 19:49:22 +0200mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-03-27 19:52:15 +0200Vajb(~Vajb@2001:999:62:aa00:7f5a:4f10:c894:3813) (Read error: Connection reset by peer)
2022-03-27 19:52:49 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-03-27 19:55:44 +0200Guest98(~Guest98@82.212.116.123)
2022-03-27 19:57:57 +0200vglfr(~vglfr@88.155.46.233)
2022-03-27 19:59:27 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
2022-03-27 19:59:31 +0200dextaa_(~dextaa@user/dextaa)
2022-03-27 19:59:48 +0200Sgeo(~Sgeo@user/sgeo)
2022-03-27 20:00:07 +0200ddb(~ddb@2607:5300:203:9993::196) (Quit: WeeChat 3.4)
2022-03-27 20:05:11 +0200deadmarshal_(~deadmarsh@95.38.230.121) (Ping timeout: 260 seconds)
2022-03-27 20:25:30 +0200Teacup(~teacup@user/teacup) (Remote host closed the connection)
2022-03-27 20:27:21 +0200 <maerwald> monochrom: xD
2022-03-27 20:29:51 +0200boxscape_(~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2022-03-27 20:32:46 +0200Teacup(~teacup@user/teacup)
2022-03-27 20:33:04 +0200dyeplexer(~dyeplexer@user/dyeplexer) (Remote host closed the connection)
2022-03-27 20:34:58 +0200simendsjo(~user@84.211.91.241)
2022-03-27 20:36:40 +0200bahamas(~lucian@84.232.140.158)
2022-03-27 20:42:03 +0200kaph(~kaph@net-109-116-124-149.cust.vodafonedsl.it) (Ping timeout: 260 seconds)
2022-03-27 20:44:12 +0200`2jt(~jtomas@210.red-88-24-179.staticip.rima-tde.net) (Remote host closed the connection)
2022-03-27 20:44:35 +0200`2jt(~jtomas@210.red-88-24-179.staticip.rima-tde.net)
2022-03-27 20:48:29 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Ping timeout: 250 seconds)
2022-03-27 20:50:22 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-03-27 20:50:27 +0200econo(uid147250@user/econo)
2022-03-27 20:53:27 +0200justOkay(~justache@user/justache) (Read error: Connection reset by peer)
2022-03-27 20:54:24 +0200justOkay(~justache@user/justache)
2022-03-27 20:55:20 +0200pera(~pera@user/pera)
2022-03-27 20:56:11 +0200CodeKiwi(~kiwi@137.184.156.191)
2022-03-27 20:57:16 +0200danso(~danso@danso.ca)
2022-03-27 20:58:24 +0200rond_(~rond_@90.254.208.190)
2022-03-27 20:59:15 +0200simendsjo(~user@84.211.91.241) (Ping timeout: 268 seconds)
2022-03-27 20:59:48 +0200 <danso> is there a standard way of running an action only for a Left value, as in `\ f act -> \case { Left l -> f l >> act ; Right _ -> act }`
2022-03-27 20:59:52 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-03-27 21:00:07 +0200boxscape_(~boxscape_@p4ff0b60b.dip0.t-ipconnect.de)
2022-03-27 21:00:29 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-27 21:01:14 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 21:02:11 +0200gehmehgeh(~user@user/gehmehgeh) (Remote host closed the connection)
2022-03-27 21:02:32 +0200 <Rembane> danso: There's left from Control.Arrow and first from Data.Bifunctor.
2022-03-27 21:02:56 +0200gehmehgeh(~user@user/gehmehgeh)
2022-03-27 21:06:02 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Ping timeout: 268 seconds)
2022-03-27 21:08:31 +0200dextaa_(~dextaa@user/dextaa) (Remote host closed the connection)
2022-03-27 21:10:00 +0200 <danso> thanks, will investigate.
2022-03-27 21:10:48 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-03-27 21:12:55 +0200solrize(~solrize@user/solrize)
2022-03-27 21:13:49 +0200 <danso> Rembane, i'm not sure that is what i mean. left/first returns an Either l r
2022-03-27 21:14:04 +0200 <danso> my function does something with the Left value, then discards it
2022-03-27 21:15:04 +0200hololeap(~hololeap@user/hololeap) (Remote host closed the connection)
2022-03-27 21:16:26 +0200hololeap(~hololeap@user/hololeap)
2022-03-27 21:16:46 +0200 <geekosaur> either (\l -> f l) (const ()) >> act
2022-03-27 21:16:50 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-27 21:17:38 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 21:17:39 +0200 <Rembane> danso: Oh, then use geekosaur's solution.
2022-03-27 21:17:58 +0200 <geekosaur> uh rught, I rearranged that after. either f (const ()) >> act
2022-03-27 21:19:00 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-03-27 21:19:05 +0200 <Rembane> I wonder if void . left act would do the same thing.
2022-03-27 21:19:12 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-27 21:20:35 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
2022-03-27 21:20:50 +0200acidjnk(~acidjnk@p200300d0c7049f8284fff18517a389b2.dip0.t-ipconnect.de)
2022-03-27 21:22:53 +0200 <danso> there might not be an idiomatic way of doing it. the type i want is (l -> IO ()) -> IO () -> Either l () -> IO ()
2022-03-27 21:23:39 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-03-27 21:24:02 +0200 <Rembane> danso: EitherT might help you there.
2022-03-27 21:25:02 +0200dextaa_(~dextaa@user/dextaa)
2022-03-27 21:33:47 +0200bahamas(~lucian@84.232.140.158) (Ping timeout: 268 seconds)
2022-03-27 21:34:27 +0200wolfshappen(~waff@irc.furworks.de) (Read error: Connection reset by peer)
2022-03-27 21:35:15 +0200alp(~alp@user/alp) (Ping timeout: 252 seconds)
2022-03-27 21:36:38 +0200 <[exa]> "acting on Left value" sounds a tiny bit like `catch` to me
2022-03-27 21:37:55 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2022-03-27 21:39:06 +0200 <[exa]> (from Control.Monad.Catch, with `e~SomeException => Left e a` not the IO one)
2022-03-27 21:39:16 +0200 <[exa]> (s/Left/Either/ whoops)
2022-03-27 21:40:00 +0200jgeerds(~jgeerds@55d4548e.access.ecotel.net)
2022-03-27 21:40:59 +0200boxscape_12(~boxscape_@p4ff0b60b.dip0.t-ipconnect.de)
2022-03-27 21:41:02 +0200boxscape_12(~boxscape_@p4ff0b60b.dip0.t-ipconnect.de) (Client Quit)
2022-03-27 21:42:05 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-03-27 21:42:37 +0200CodeKiwi(~kiwi@137.184.156.191) (Ping timeout: 240 seconds)
2022-03-27 21:44:36 +0200rawley(~rawley@216-197-141-102.nbfr.hsdb.sasknet.sk.ca) (Ping timeout: 252 seconds)
2022-03-27 21:47:48 +0200michalz(~michalz@185.246.204.119)
2022-03-27 21:47:54 +0200justsomeguy(~justsomeg@user/justsomeguy)
2022-03-27 21:48:01 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-27 21:48:04 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-03-27 21:48:16 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-27 21:49:32 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-27 21:50:08 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 21:53:52 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-03-27 21:56:07 +0200CodeKiwi(~kiwi@137.184.156.191)
2022-03-27 21:59:55 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2022-03-27 22:00:05 +0200 <maerwald> danso: either f (\_ -> pure ())?
2022-03-27 22:00:07 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-03-27 22:00:29 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
2022-03-27 22:02:35 +0200jakalx(~jakalx@base.jakalx.net)
2022-03-27 22:03:49 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-27 22:04:24 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 22:09:24 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-03-27 22:09:33 +0200rond_(~rond_@90.254.208.190) (Quit: Client closed)
2022-03-27 22:09:36 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
2022-03-27 22:11:03 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2022-03-27 22:11:33 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 22:12:01 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-27 22:12:07 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
2022-03-27 22:12:39 +0200vglfr(~vglfr@88.155.46.233) (Ping timeout: 252 seconds)
2022-03-27 22:13:14 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 22:13:47 +0200Lord_of_Life_Lord_of_Life
2022-03-27 22:15:37 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Ping timeout: 240 seconds)
2022-03-27 22:17:09 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-03-27 22:18:28 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
2022-03-27 22:18:41 +0200pavonia(~user@user/siracusa)
2022-03-27 22:18:44 +0200unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
2022-03-27 22:19:58 +0200 <unit73e> hey. finally got xp3 extract working with the dumbest method. just use drop and take in a bytearray many times... not very efficient but apparently xp3 segments can be any range, including intersect with other ranges.
2022-03-27 22:20:27 +0200 <unit73e> hopefully it doesn't exaust memory in large files
2022-03-27 22:21:54 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-27 22:24:10 +0200DigitalKiwi(~kiwi@159.223.106.6) (Quit: quite.)
2022-03-27 22:24:46 +0200wolfshappen(~waff@irc.furworks.de)
2022-03-27 22:25:14 +0200CodeKiwiDigitalKiwi
2022-03-27 22:27:55 +0200zer0bitz_(~zer0bitz@dsl-hkibng32-54fbf8-224.dhcp.inet.fi) (Ping timeout: 256 seconds)
2022-03-27 22:28:24 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-03-27 22:29:24 +0200merijn(~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
2022-03-27 22:30:02 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 22:33:52 +0200Pickchea(~private@user/pickchea)
2022-03-27 22:35:55 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-03-27 22:36:25 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
2022-03-27 22:38:15 +0200deadmarshal_(~deadmarsh@95.38.230.121)
2022-03-27 22:40:00 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 272 seconds)
2022-03-27 22:43:10 +0200deadmarshal_(~deadmarsh@95.38.230.121) (Ping timeout: 272 seconds)
2022-03-27 22:43:21 +0200 <hololeap> lets say you build a library with -O2 and install it globally, then build an executable which uses dynamic linking. would the -O2 potentially affect the executable's performance?
2022-03-27 22:45:41 +0200 <hololeap> I would think it would, but I just wanted to double check
2022-03-27 22:47:31 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-03-27 22:48:21 +0200 <geekosaur> the shared object includes an abi hash which includes among other things optimization level, so (a) when you build the executable you have to specify you want the -O2 version of the library or it'll build it again with -O1 (cabal / stack default) (2) it'll only use that shared library, not one with a different optimization level
2022-03-27 22:48:50 +0200 <sm> if building with cabal or stack, I had the impression they would always build deps optimised, and only your project's local packages, or the packages you requested on the command line, would be affected
2022-03-27 22:49:05 +0200 <geekosaur> this is one of the reasons we don't usually build shared; it doesn't gain you anything with ghc, since abi hashes have to match or bad things happen
2022-03-27 22:50:12 +0200 <hololeap> right, but the optimization level of the library will affect performance when you eventually use it
2022-03-27 22:50:21 +0200 <geekosaur> with cabal you can stick a stanza like "package *\n optimization: 2" in your cabal.project
2022-03-27 22:51:02 +0200 <hololeap> it's probably such an obvious question that it's difficult to answer
2022-03-27 22:51:19 +0200 <geekosaur> and if you don't do that or the equivalent, it'll go for -O1, look and see no cached build at -O1,and build it all over again
2022-03-27 22:51:27 +0200 <sm> this is haskell tooling, nothing is obvious :)
2022-03-27 22:51:56 +0200 <hpc> sufficiently researched nuance is indistinguishable from obvious
2022-03-27 22:52:06 +0200AlexZenon_2AlexZenon
2022-03-27 22:52:28 +0200 <hololeap> hypothetically, this isn't using cabal-v2, so there is no chance that it will rebuild the library
2022-03-27 22:53:05 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-27 22:53:38 +0200 <napping> hololeap: I think the sticky point is that ghc can't actually produce an single executable that would be capable of using either the O1 or O2 version of the library, so it's not exactly a change. But yes, executable and library built with -O2 ought to be faster than executable and library built from the same source with -O1
2022-03-27 22:53:42 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 22:54:50 +0200 <hololeap> oh, sorry, I didn't mean to imply that the executable could be linked to both -O1 and -O2. I just wanted to confirm that -O2 on the library will affect performance on the executable
2022-03-27 22:54:58 +0200rawley(~rawley@216-197-141-102.nbfr.hsdb.sasknet.sk.ca)
2022-03-27 22:55:00 +0200 <hololeap> ok
2022-03-27 22:55:35 +0200 <hpc> is testing it infeasible?
2022-03-27 22:56:00 +0200 <hololeap> no, I just wanted a general response, because like sm said, haskell is full of surprises
2022-03-27 22:56:17 +0200 <geekosaur> -O2 will affect it but may do so oddly because of laziness
2022-03-27 22:56:49 +0200 <geekosaur> like, of an optimized portion forces a thunk that was generated by lower optimization code, it'll confuse your timings
2022-03-27 22:57:43 +0200 <geekosaur> which is another reason to build everything at the same optimization level: it can be *really* hard to tell. (plus -O2 doesn't often make much of a runtime difference over -O1)
2022-03-27 22:57:57 +0200DigitalKiwi(~kiwi@137.184.156.191) (Quit: quite.)
2022-03-27 22:58:17 +0200 <hololeap> without any flags, does it default to -O0?
2022-03-27 22:58:36 +0200DigitalKiwi(~kiwi@137.184.156.191)
2022-03-27 22:58:42 +0200 <hololeap> I would like to use -O2 on everything, but I've got limited ram on this system
2022-03-27 22:58:51 +0200 <hololeap> so I was just curious
2022-03-27 23:02:40 +0200 <sclv> without any flags we default to O1 and that's what's recommended.
2022-03-27 23:02:56 +0200 <hololeap> ok, good
2022-03-27 23:03:16 +0200 <sclv> only certain very specific packages will benefit significantly from O2, and often at an undesired cost not only in compilation time but generated binary size
2022-03-27 23:03:32 +0200 <sclv> and it may even be that the blowup in binary size hurts caches in a way that undercuts the optimization
2022-03-27 23:05:24 +0200 <hololeap> I noticed that aeson has a 'fast' flag
2022-03-27 23:06:46 +0200 <hololeap> if flag(fast); ghc-options: -O0; else; ghc-options: -O2
2022-03-27 23:07:25 +0200 <hololeap> I guess they took that out in v2
2022-03-27 23:08:15 +0200 <hololeap> but I take that to mean that they decided -O2 was worth it most of the time for that lib
2022-03-27 23:08:35 +0200 <sclv> i imagine fast was for development, but they decided they could just pass it manually
2022-03-27 23:08:41 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-03-27 23:09:00 +0200 <hololeap> I'm more curious about the -O2 by default
2022-03-27 23:09:19 +0200 <sclv> well something like aeson it really matters for because it really relies on pervasive inlining
2022-03-27 23:09:42 +0200 <sclv> O2 is basically about how much you try to expand and inline, so it especially especially matters when there's fusion stuff happening
2022-03-27 23:10:12 +0200 <hololeap> I see
2022-03-27 23:11:02 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-03-27 23:11:35 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 23:16:44 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
2022-03-27 23:20:36 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2022-03-27 23:22:09 +0200tremon(~tremon@83-84-18-241.cable.dynamic.v4.ziggo.nl)
2022-03-27 23:23:15 +0200michalz(~michalz@185.246.204.119) (Remote host closed the connection)
2022-03-27 23:23:56 +0200Axman6(~Axman6@user/axman6) (Ping timeout: 260 seconds)
2022-03-27 23:26:19 +0200cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
2022-03-27 23:30:40 +0200rawley(~rawley@216-197-141-102.nbfr.hsdb.sasknet.sk.ca) (Remote host closed the connection)
2022-03-27 23:30:53 +0200cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Read error: Connection reset by peer)
2022-03-27 23:30:57 +0200rawley(~rawley@216-197-141-102.nbfr.hsdb.sasknet.sk.ca)
2022-03-27 23:35:58 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2022-03-27 23:38:55 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
2022-03-27 23:40:33 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-27 23:41:06 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-03-27 23:42:19 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-03-27 23:42:32 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-27 23:42:39 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-03-27 23:42:55 +0200wyrd(~wyrd@gateway/tor-sasl/wyrd) (Ping timeout: 240 seconds)
2022-03-27 23:43:20 +0200perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Ping timeout: 272 seconds)
2022-03-27 23:43:33 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-27 23:44:45 +0200 <sm> possible addition for https://www.extrema.is/articles/haskell-books, tcard: https://www.reddit.com/r/haskell/comments/tpsbti/new_early_access_book_functional_programming_for
2022-03-27 23:48:35 +0200 <tcard> sm: Thank you! With the current policy, however, I only put books that are complete in the index. Early access books are not in the index.
2022-03-27 23:49:00 +0200 <sm> oops, gotcha
2022-03-27 23:49:25 +0200alp(~alp@user/alp)
2022-03-27 23:49:52 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-03-27 23:49:54 +0200wyrd(~wyrd@gateway/tor-sasl/wyrd)
2022-03-27 23:50:02 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 23:50:07 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net)
2022-03-27 23:50:14 +0200lavaman(~lavaman@c-174-63-118-52.hsd1.ma.comcast.net) (Remote host closed the connection)
2022-03-27 23:50:22 +0200 <sm> slightly unfortunate for discovery of WIP books
2022-03-27 23:51:55 +0200 <tcard> Indeed. I agree. There are drawbacks to including WIP books as well, and it was a difficult decision to make.
2022-03-27 23:52:10 +0200 <sm> oh, this one's not freely readable, I didn't notice. That makes it a bit less important to discover early
2022-03-27 23:52:27 +0200 <tcard> It looks really good, though! :)
2022-03-27 23:52:54 +0200 <sm> yup it looks fun
2022-03-27 23:58:46 +0200yauhsien_(~yauhsien@61-231-25-68.dynamic-ip.hinet.net)
2022-03-27 23:58:46 +0200yauhsien(~yauhsien@61-231-25-68.dynamic-ip.hinet.net) (Read error: Connection reset by peer)
2022-03-27 23:59:45 +0200cosimone(~user@93-44-187-176.ip98.fastwebnet.it)