2024/03/31

2024-03-31 00:11:06 +0000qqq(~qqq@92.43.167.61) (Quit: Lost terminal)
2024-03-31 00:16:11 +0000rvalue(~rvalue@user/rvalue) (Ping timeout: 264 seconds)
2024-03-31 00:17:10 +0000random-jellyfish(~developer@user/random-jellyfish) (Ping timeout: 268 seconds)
2024-03-31 00:19:59 +0000sadie_(~sadie@c-76-155-235-153.hsd1.co.comcast.net) (Remote host closed the connection)
2024-03-31 00:22:05 +0000Batzy(~quassel@user/batzy)
2024-03-31 00:25:09 +0000rvalue(~rvalue@user/rvalue)
2024-03-31 00:36:12 +0000ddellacosta(~ddellacos@172.58.109.152)
2024-03-31 00:41:00 +0000gmg(~user@user/gehmehgeh) (Quit: Leaving)
2024-03-31 00:46:51 +0000hallucinagen(~prodmezha@138.199.53.244)
2024-03-31 00:49:28 +0000rvalue(~rvalue@user/rvalue) (Read error: Connection reset by peer)
2024-03-31 00:49:50 +0000igemnace(~ian@user/igemnace)
2024-03-31 00:49:56 +0000rvalue(~rvalue@user/rvalue)
2024-03-31 00:56:29 +0000ddellacosta(~ddellacos@172.58.109.152) (Quit: WeeChat 4.2.1)
2024-03-31 01:16:47 +0000hughjfchen(~hughjfche@vmi556545.contaboserver.net) (Ping timeout: 264 seconds)
2024-03-31 01:22:50 +0000fererrorocher(fererroroc@gateway/vpn/protonvpn/fererrorocher)
2024-03-31 01:34:31 +0000dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 260 seconds)
2024-03-31 01:51:35 +0000otto_s(~user@p4ff277a3.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2024-03-31 01:52:39 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-03-31 01:53:03 +0000otto_s(~user@p4ff27abc.dip0.t-ipconnect.de)
2024-03-31 01:58:31 +0000hughjfchen(~hughjfche@vmi556545.contaboserver.net)
2024-03-31 01:59:23 +0000hallucinagen(~prodmezha@138.199.53.244) (Ping timeout: 264 seconds)
2024-03-31 02:04:28 +0000td_(~td@i53870929.versanet.de) (Ping timeout: 268 seconds)
2024-03-31 02:05:04 +0000op_4(~tslil@user/op-4/x-9116473) (Remote host closed the connection)
2024-03-31 02:05:35 +0000op_4(~tslil@user/op-4/x-9116473)
2024-03-31 02:05:58 +0000td_(~td@i53870915.versanet.de)
2024-03-31 02:11:27 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Quit: peterbecich)
2024-03-31 02:11:39 +0000superbil(~superbil@1-34-176-171.hinet-ip.hinet.net) (*.net *.split)
2024-03-31 02:15:40 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-03-31 02:16:42 +0000chiselfuse(~chiselfus@user/chiselfuse) (Remote host closed the connection)
2024-03-31 02:17:21 +0000chiselfuse(~chiselfus@user/chiselfuse)
2024-03-31 02:18:13 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Remote host closed the connection)
2024-03-31 02:19:09 +0000superbil(~superbil@1-34-176-171.hinet-ip.hinet.net)
2024-03-31 02:20:07 +0000ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2024-03-31 02:20:07 +0000califax(~califax@user/califx) (Remote host closed the connection)
2024-03-31 02:20:07 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2024-03-31 02:20:19 +0000ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2024-03-31 02:20:32 +0000califax(~califax@user/califx)
2024-03-31 02:20:33 +0000ChaiTRex(~ChaiTRex@user/chaitrex)
2024-03-31 02:20:35 +0000ec(~ec@gateway/tor-sasl/ec)
2024-03-31 02:20:40 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-03-31 02:22:20 +0000califax(~califax@user/califx) (Remote host closed the connection)
2024-03-31 02:22:21 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2024-03-31 02:22:42 +0000califax(~califax@user/califx)
2024-03-31 02:22:56 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-03-31 02:48:51 +0000pavonia(~user@user/siracusa) (Read error: Connection reset by peer)
2024-03-31 02:49:12 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-31 02:49:17 +0000pavonia(~user@user/siracusa)
2024-03-31 02:54:18 +0000tri_(~tri@172.59.8.159)
2024-03-31 02:57:35 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 264 seconds)
2024-03-31 03:03:29 +0000td_(~td@i53870915.versanet.de) (Ping timeout: 272 seconds)
2024-03-31 03:05:04 +0000td_(~td@i53870929.versanet.de)
2024-03-31 03:15:25 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-31 03:19:19 +0000tri_(~tri@172.59.8.159) (Ping timeout: 272 seconds)
2024-03-31 03:24:48 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-03-31 03:27:14 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Remote host closed the connection)
2024-03-31 03:32:37 +0000aforemny_(~aforemny@2001:9e8:6cf4:d100:2036:993f:679a:6cf6)
2024-03-31 03:32:51 +0000mmhat(~mmh@p200300f1c706a275ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.2.1)
2024-03-31 03:33:54 +0000phma(phma@2001:5b0:215d:ba58:a61a:48b0:3e33:afde) (Read error: Connection reset by peer)
2024-03-31 03:33:59 +0000aforemny(~aforemny@2001:9e8:6cd3:b600:153d:d7c7:d668:8838) (Ping timeout: 260 seconds)
2024-03-31 03:34:47 +0000phma(phma@2001:5b0:215a:b318:a23a:3f03:dc96:3e6d)
2024-03-31 03:49:44 +0000hallucinagen(~prodmezha@149.102.244.68)
2024-03-31 03:50:23 +0000fererrorocher(fererroroc@gateway/vpn/protonvpn/fererrorocher) (Quit: WeeChat 4.2.1)
2024-03-31 04:05:04 +0000zetef(~quassel@5.2.182.99) (Remote host closed the connection)
2024-03-31 04:05:36 +0000califax_(~califax@user/califx)
2024-03-31 04:05:39 +0000califax(~califax@user/califx) (Remote host closed the connection)
2024-03-31 04:06:53 +0000califax_califax
2024-03-31 04:08:44 +0000tri_(~tri@172.59.9.163)
2024-03-31 04:12:00 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 255 seconds)
2024-03-31 04:29:26 +0000igemnace(~ian@user/igemnace) (Quit: WeeChat 4.2.1)
2024-03-31 04:43:51 +0000falafel(~falafel@185.156.46.159)
2024-03-31 04:45:05 +0000falafel(~falafel@185.156.46.159) (Remote host closed the connection)
2024-03-31 04:45:30 +0000falafel(~falafel@185.156.46.159)
2024-03-31 04:54:16 +0000nisstyre(wes@user/nisstyre) (Quit: WeeChat 3.7.1)
2024-03-31 05:10:31 +0000falafel_(~falafel@162.83.249.190)
2024-03-31 05:12:53 +0000falafel(~falafel@185.156.46.159) (Ping timeout: 240 seconds)
2024-03-31 05:15:05 +0000otlesfenrtf^(~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Remote host closed the connection)
2024-03-31 05:18:56 +0000Lycurgus(~georg@user/Lycurgus)
2024-03-31 05:20:13 +0000Pozyomka(~pyon@user/pyon) (Ping timeout: 246 seconds)
2024-03-31 05:25:17 +0000bilegeek(~bilegeek@2600:1008:b09d:de0f:4083:7125:d524:fe72) (Ping timeout: 240 seconds)
2024-03-31 05:27:28 +0000akspecs_akspecs
2024-03-31 05:27:55 +0000akspecs(00cc8321af@2a03:6000:1812:100::11a) (Changing host)
2024-03-31 05:27:55 +0000akspecs(00cc8321af@sourcehut/user/akspecs)
2024-03-31 05:30:03 +0000akspecs(00cc8321af@sourcehut/user/akspecs) (Remote host closed the connection)
2024-03-31 05:30:12 +0000akspecs_(00cc8321af@2a03:6000:1812:100::11a)
2024-03-31 05:30:55 +0000Pozyomka(~pyon@user/pyon)
2024-03-31 05:31:09 +0000akspecs_(00cc8321af@2a03:6000:1812:100::11a) (Remote host closed the connection)
2024-03-31 05:31:17 +0000akspecs(00cc8321af@sourcehut/user/akspecs)
2024-03-31 05:33:56 +0000qqq(~qqq@92.43.167.61)
2024-03-31 05:36:54 +0000Patternmaster(~georg@user/Patternmaster)
2024-03-31 05:39:03 +0000Patternmaster(~georg@user/Patternmaster) (Client Quit)
2024-03-31 05:40:36 +0000Patternmaster(~georg@user/Patternmaster)
2024-03-31 05:53:39 +0000califax(~califax@user/califx) (Remote host closed the connection)
2024-03-31 05:53:57 +0000califax(~califax@user/califx)
2024-03-31 05:55:00 +0000Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2024-03-31 06:00:08 +0000Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-03-31 06:03:03 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-03-31 06:09:20 +0000Sgeo(~Sgeo@user/sgeo)
2024-03-31 06:13:02 +0000ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2024-03-31 06:13:38 +0000ChaiTRex(~ChaiTRex@user/chaitrex)
2024-03-31 06:16:40 +0000ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2024-03-31 06:17:07 +0000ChaiTRex(~ChaiTRex@user/chaitrex)
2024-03-31 06:26:24 +0000hallucinagen(~prodmezha@149.102.244.68) (Read error: Connection reset by peer)
2024-03-31 06:29:48 +0000tri_(~tri@172.59.9.163) (Remote host closed the connection)
2024-03-31 06:30:24 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-31 06:30:45 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-31 06:32:34 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit)
2024-03-31 06:48:14 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2024-03-31 06:55:08 +0000nisstyre(wes@user/nisstyre)
2024-03-31 07:00:01 +0000tt12310(~tt1231@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com) (Quit: The Lounge - https://thelounge.chat)
2024-03-31 07:02:23 +0000falafel_(~falafel@162.83.249.190) (Ping timeout: 264 seconds)
2024-03-31 07:02:31 +0000tt12310(~tt1231@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com)
2024-03-31 07:08:51 +0000pavonia(~user@user/siracusa) (Quit: Bye!)
2024-03-31 07:25:14 +0000jorj(~jorj@user/jorj)
2024-03-31 07:42:49 +0000jorj(~jorj@user/jorj) (Quit: jorj)
2024-03-31 07:47:19 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-31 08:11:18 +0000_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2024-03-31 08:22:17 +0000dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2024-03-31 08:38:51 +0000gmg(~user@user/gehmehgeh)
2024-03-31 08:48:59 +0000fedorafan(~fedorafan@user/fedorafan) (Ping timeout: 260 seconds)
2024-03-31 08:59:43 +0000tzh(~tzh@c-73-164-206-160.hsd1.or.comcast.net) (Quit: zzz)
2024-03-31 09:13:44 +0000dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Remote host closed the connection)
2024-03-31 09:14:07 +0000dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2024-03-31 09:20:53 +0000jespada_(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2024-03-31 09:24:27 +0000jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 260 seconds)
2024-03-31 09:24:27 +0000dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 252 seconds)
2024-03-31 09:39:29 +0000 <Inst> hmmm
2024-03-31 09:39:47 +0000 <Inst> i hope this isn't too stupid for you, but is it possible to build a nix... actually, if you have nix, you don't really need Haskell :)
2024-03-31 09:40:06 +0000 <Inst> the idea of using Nixlang as a basis for an eDSL for web pages
2024-03-31 09:58:27 +0000jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2024-03-31 10:00:32 +0000 <srk> Inst: https://code.tvl.fyi/tree/users/sterni/nix/html/README.md :)
2024-03-31 10:01:18 +0000jespada_(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 252 seconds)
2024-03-31 10:01:46 +0000Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-03-31 10:02:59 +0000 <ncf> #haskell-offtopic
2024-03-31 10:04:51 +0000L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 268 seconds)
2024-03-31 10:05:36 +0000wootehfoot(~wootehfoo@user/wootehfoot)
2024-03-31 10:09:27 +0000 <Inst> well it wasn't off-topic, I was planning to have it done via Haskell, and jeez
2024-03-31 10:16:22 +0000 <ncf> this is a channel about the haskell programming language, not a place to discuss your personal projects that may or may not involve haskell
2024-03-31 10:18:14 +0000jinsun_(~jinsun@user/jinsun)
2024-03-31 10:18:14 +0000jinsunGuest148
2024-03-31 10:18:14 +0000Guest148(~jinsun@user/jinsun) (Killed (copper.libera.chat (Nickname regained by services)))
2024-03-31 10:18:14 +0000jinsun_jinsun
2024-03-31 10:28:15 +0000Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2024-03-31 10:29:12 +0000 <hammond> yeah Inst, you went too far this time.
2024-03-31 10:29:32 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
2024-03-31 10:29:34 +0000 <Inst> okay, i'll be less irritating then
2024-03-31 10:29:37 +0000Lord_of_Life_Lord_of_Life
2024-03-31 10:29:39 +0000 <hammond> xD
2024-03-31 10:34:49 +0000jamesmartinez(uid6451@id-6451.helmsley.irccloud.com)
2024-03-31 10:50:58 +0000paul_j(~user@8.190.187.81.in-addr.arpa) (Remote host closed the connection)
2024-03-31 10:51:37 +0000tri_(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-31 10:52:03 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 255 seconds)
2024-03-31 10:58:49 +0000Square2(~Square@user/square) (Ping timeout: 255 seconds)
2024-03-31 11:03:22 +0000L29Ah(~L29Ah@wikipedia/L29Ah)
2024-03-31 11:07:39 +0000mechap(~mechap@user/mechap)
2024-03-31 11:11:08 +0000_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2024-03-31 11:23:48 +0000Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
2024-03-31 11:41:00 +0000kuribas(~user@ptr-17d51eo5ejgrzwny9lg.18120a2.ip6.access.telenet.be)
2024-03-31 11:41:56 +0000son0p(~ff@152.203.72.114) (Remote host closed the connection)
2024-03-31 11:42:24 +0000mmhat(~mmh@p200300f1c706a275ee086bfffe095315.dip0.t-ipconnect.de)
2024-03-31 11:44:20 +0000kuribas(~user@ptr-17d51eo5ejgrzwny9lg.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
2024-03-31 11:45:49 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-03-31 11:57:11 +0000ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2024-03-31 11:57:13 +0000kuribas(~user@ptr-17d51eo5ejgrzwny9lg.18120a2.ip6.access.telenet.be)
2024-03-31 11:57:39 +0000ChaiTRex(~ChaiTRex@user/chaitrex)
2024-03-31 11:59:01 +0000son0p(~ff@152.203.72.114)
2024-03-31 12:09:27 +0000__monty__(~toonn@user/toonn)
2024-03-31 12:12:08 +0000dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2024-03-31 12:16:49 +0000mjs2600(~mjs2600@c-174-169-225-239.hsd1.vt.comcast.net) (Ping timeout: 268 seconds)
2024-03-31 12:20:43 +0000lisbeths(uid135845@id-135845.lymington.irccloud.com)
2024-03-31 12:44:29 +0000dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 240 seconds)
2024-03-31 12:55:05 +0000 <kuribas> I cannot call wreq without doing any redirects?
2024-03-31 12:58:27 +0000 <kuribas> Well, I can set a redirectCount limit, then catch the exception, that's rather ugly.
2024-03-31 13:10:11 +0000 <jackdk> these days I stick with http-conduit. It's already in the depgraph of basically everything anyway
2024-03-31 13:16:42 +0000mmhat(~mmh@p200300f1c706a275ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2024-03-31 13:17:04 +0000mmhat(~mmh@p200300f1c706a26eee086bfffe095315.dip0.t-ipconnect.de)
2024-03-31 13:21:44 +0000acidjnk_new(~acidjnk@p200300d6e714dc446d52a2431789bf32.dip0.t-ipconnect.de)
2024-03-31 13:23:25 +0000tri_(~tri@ool-18bc2e74.dyn.optonline.net) (Read error: Connection reset by peer)
2024-03-31 13:23:57 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-31 13:27:03 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-31 13:44:39 +0000fererrorocher(fererroroc@gateway/vpn/protonvpn/fererrorocher)
2024-03-31 13:46:08 +0000FragByte(~christian@user/fragbyte) (Ping timeout: 256 seconds)
2024-03-31 13:46:59 +0000FragByte(~christian@user/fragbyte)
2024-03-31 13:55:42 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 260 seconds)
2024-03-31 13:55:49 +0000naso(~naso@202.115.218.139.sta.wbroadband.net.au)
2024-03-31 13:57:30 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-03-31 13:57:40 +0000naso(~naso@202.115.218.139.sta.wbroadband.net.au) (Changing host)
2024-03-31 13:57:40 +0000naso(~naso@user/naso)
2024-03-31 13:57:49 +0000Achylles(~Achylles_@45.182.57.45)
2024-03-31 14:00:14 +0000naso(~naso@user/naso) (Remote host closed the connection)
2024-03-31 14:00:35 +0000naso(~naso@user/naso)
2024-03-31 14:02:40 +0000naso(~naso@user/naso) (Remote host closed the connection)
2024-03-31 14:05:32 +0000halloy6709(~halloy670@202.115.218.139.sta.wbroadband.net.au)
2024-03-31 14:05:42 +0000halloy6709(~halloy670@202.115.218.139.sta.wbroadband.net.au) (Remote host closed the connection)
2024-03-31 14:06:25 +0000naso(~naso@202.115.218.139.sta.wbroadband.net.au)
2024-03-31 14:06:25 +0000naso(~naso@202.115.218.139.sta.wbroadband.net.au) (Changing host)
2024-03-31 14:06:25 +0000naso(~naso@user/naso)
2024-03-31 14:06:49 +0000naso(~naso@user/naso) (Remote host closed the connection)
2024-03-31 14:07:21 +0000nilradical(~nilradica@user/naso)
2024-03-31 14:07:49 +0000Etabeta1(~Etabeta1@176.207.241.56) (Changing host)
2024-03-31 14:07:49 +0000Etabeta1(~Etabeta1@user/Etabeta1)
2024-03-31 14:08:23 +0000nilradical(~nilradica@user/naso) (Remote host closed the connection)
2024-03-31 14:14:45 +0000AchyllesAchylles_
2024-03-31 14:15:00 +0000Achylles_GROUP
2024-03-31 14:16:10 +0000GROUPAchylles_
2024-03-31 14:16:35 +0000chexum_(~quassel@gateway/tor-sasl/chexum)
2024-03-31 14:17:28 +0000chexum(~quassel@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.)
2024-03-31 14:18:50 +0000Achylles_Achylles
2024-03-31 14:32:31 +0000 <haskellbridge> <e​ldritchcookie> people that use stack why?
2024-03-31 14:51:15 +0000nilradical(~nilradica@user/naso)
2024-03-31 14:52:05 +0000jespada_(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2024-03-31 14:52:23 +0000 <duncan> pinned package versions is great
2024-03-31 14:54:04 +0000jespada_(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Client Quit)
2024-03-31 14:55:57 +0000jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 255 seconds)
2024-03-31 14:57:18 +0000chiselfuse(~chiselfus@user/chiselfuse) (Ping timeout: 260 seconds)
2024-03-31 14:57:23 +0000jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2024-03-31 15:04:20 +0000jespada_(~jespada@85.255.232.146)
2024-03-31 15:05:19 +0000r5c4571lh01987(~rscastilh@179.221.142.8)
2024-03-31 15:07:04 +0000Ram-Z(Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df)
2024-03-31 15:07:35 +0000nilradical(~nilradica@user/naso) (Remote host closed the connection)
2024-03-31 15:08:01 +0000jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 272 seconds)
2024-03-31 15:08:02 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 260 seconds)
2024-03-31 15:08:23 +0000op_4(~tslil@user/op-4/x-9116473) (Remote host closed the connection)
2024-03-31 15:08:57 +0000op_4(~tslil@user/op-4/x-9116473)
2024-03-31 15:09:51 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-03-31 15:12:37 +0000igemnace(~ian@user/igemnace)
2024-03-31 15:15:38 +0000doyougnu(~doyougnu@045-046-170-068.res.spectrum.com) (Quit: ZNC 1.8.2 - https://znc.in)
2024-03-31 15:15:55 +0000doyougnu(~doyougnu@045-046-170-068.res.spectrum.com)
2024-03-31 15:16:38 +0000 <geekosaur> eldritchcookie, there are advantages to starting from a known-good set of package versions, as duncan commented. cabal's answer to this is freeze files, but they can go a bit too far as your code may work with multiple stackage snapshots but a freeze file locks you to a single version of every dependency
2024-03-31 15:17:52 +0000waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-03-31 15:17:53 +0000 <int-e> plus there's history
2024-03-31 15:18:16 +0000 <haskellbridge> <e​ldritchcookie> cool
2024-03-31 15:19:00 +0000 <int-e> (cabal-install is pretty different from what it was when stack came around)
2024-03-31 15:25:49 +0000 <geekosaur> (thankfully)
2024-03-31 15:26:04 +0000 <geekosaur> cabal 1.x was a mess
2024-03-31 15:26:14 +0000target_i(~target_i@user/target-i/x-6023099)
2024-03-31 15:26:46 +0000jespada_(~jespada@85.255.232.146) (Read error: Connection reset by peer)
2024-03-31 15:27:32 +0000gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2024-03-31 15:28:34 +0000gmg(~user@user/gehmehgeh)
2024-03-31 15:29:21 +0000jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2024-03-31 15:29:59 +0000pavonia(~user@user/siracusa)
2024-03-31 15:48:24 +0000kuribas(~user@ptr-17d51eo5ejgrzwny9lg.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
2024-03-31 15:58:21 +0000kuribas(~user@ptr-17d51eo5ejgrzwny9lg.18120a2.ip6.access.telenet.be)
2024-03-31 16:05:09 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-03-31 16:05:21 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-31 16:10:12 +0000r5c4571lh01987(~rscastilh@179.221.142.8) (Remote host closed the connection)
2024-03-31 16:10:50 +0000r5c4571lh01987(~rscastilh@179.221.142.8)
2024-03-31 16:12:25 +0000r5c4571lh01987(~rscastilh@179.221.142.8) (Remote host closed the connection)
2024-03-31 16:19:19 +0000r5c4571lh01987(~rscastilh@179.221.142.8)
2024-03-31 16:20:34 +0000r5c4571lh01987(~rscastilh@179.221.142.8) (Remote host closed the connection)
2024-03-31 16:21:02 +0000igemnace(~ian@user/igemnace) (Read error: Connection reset by peer)
2024-03-31 16:24:28 +0000mmhat(~mmh@p200300f1c706a26eee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.2.1)
2024-03-31 16:25:08 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-03-31 16:25:51 +0000r5c4571lh01987(rscastilho@179.221.142.8)
2024-03-31 16:27:46 +0000zetef(~quassel@5.2.182.99)
2024-03-31 16:30:40 +0000sawilagar(~sawilagar@user/sawilagar)
2024-03-31 16:32:43 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-03-31 16:32:56 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-31 16:35:02 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-03-31 16:36:07 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2024-03-31 16:37:10 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2024-03-31 16:37:13 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 255 seconds)
2024-03-31 16:38:35 +0000igemnace(~ian@user/igemnace)
2024-03-31 16:39:03 +0000rvalue(~rvalue@user/rvalue) (Read error: Connection reset by peer)
2024-03-31 16:39:33 +0000rvalue(~rvalue@user/rvalue)
2024-03-31 16:43:21 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2024-03-31 16:56:26 +0000zetef(~quassel@5.2.182.99) (Remote host closed the connection)
2024-03-31 16:59:56 +0000lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2024-03-31 17:01:46 +0000tzh(~tzh@c-73-164-206-160.hsd1.or.comcast.net)
2024-03-31 17:02:32 +0000Achylles(~Achylles_@45.182.57.45) (Remote host closed the connection)
2024-03-31 17:04:44 +0000 <haskellbridge> <s​m> eldritchcookie: UX, reproducibility focus, modern codebase, stability
2024-03-31 17:05:02 +0000 <haskellbridge> <s​m> eldritchcookie: UX, reproducibility focus, modern codebase, stability, easier to support
2024-03-31 17:06:31 +0000aljazmc(~aljazmc@user/aljazmc)
2024-03-31 17:06:37 +0000econo_(uid147250@id-147250.tinside.irccloud.com)
2024-03-31 17:12:52 +0000 <haskellbridge> <e​ldritchcookie> ok in which way is UX better than cabal-install?
2024-03-31 17:19:10 +0000 <cheater> we already had sandboxes when stack came around, building stack was an unforced error
2024-03-31 17:20:52 +0000 <cheater> is stack being maintained nowadays?
2024-03-31 17:23:54 +0000YoungFrog(~youngfrog@2a02:a03f:c9db:fc00:dc64:8456:22b9:2c5f) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in)
2024-03-31 17:24:13 +0000 <haskellbridge> <s​m> eldritchcookie: it's best to spend time with both, then you'll know what each is better at
2024-03-31 17:24:14 +0000YoungFrog(~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be)
2024-03-31 17:25:05 +0000 <haskellbridge> <s​m> cheater: yes, there's an active maintainer these days, and a matrix room (#haskell-stack:matrix.org )
2024-03-31 17:25:32 +0000 <cheater> @sm that wasn't the case for a long time, was it?
2024-03-31 17:25:32 +0000 <lambdabot> Come on, let's all slap that wasn't the case for a long time, was it?
2024-03-31 17:25:44 +0000 <cheater> er
2024-03-31 17:25:50 +0000 <cheater> oookay lambdabot
2024-03-31 17:26:01 +0000 <geekosaur> sandboxes came after the first version of stack iirc
2024-03-31 17:26:21 +0000 <haskellbridge> <s​m> there was a period when the lead maintainer (Michael Snoyman) announced he was stepping down and called for someone new, until Mike Pilgrem arrived. I don't remember how long that was
2024-03-31 17:26:32 +0000r5c4571lh01987(rscastilho@179.221.142.8) (Remote host closed the connection)
2024-03-31 17:26:58 +0000 <int-e> @smack
2024-03-31 17:26:58 +0000lambdabotpokes in the eye
2024-03-31 17:28:55 +0000 <geekosaur> (it's actually @slap iirc. yay edit distance)
2024-03-31 17:29:38 +0000 <cheater> is there any sort of logic between the shape of nested dot operators like ((.).(.)).((.).) and their type sig?
2024-03-31 17:29:41 +0000 <int-e> geekosaur: it's both; the plugin is indeed called "slap" though
2024-03-31 17:29:57 +0000 <cheater> other than, you know, the haskell type system
2024-03-31 17:30:23 +0000 <cheater> int-e: at least we have @protontorpedo again
2024-03-31 17:30:35 +0000 <cheater> removing it was one of the greatest mistakes in haskell history
2024-03-31 17:30:44 +0000 <int-e> geekosaur: I'm pretty sure that @sm is interpreted as @smack, not @slap :)
2024-03-31 17:30:52 +0000 <cheater> almost as bad as lens
2024-03-31 17:31:07 +0000 <int-e> without focus
2024-03-31 17:31:11 +0000 <haskellbridge> <s​m> may I request that feature be turned off :)
2024-03-31 17:31:55 +0000dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2024-03-31 17:33:01 +0000 <ski> @type (.) . (.) . (.)
2024-03-31 17:33:02 +0000 <lambdabot> (b -> c) -> (a1 -> a2 -> a3 -> b) -> a1 -> a2 -> a3 -> c
2024-03-31 17:33:09 +0000 <ski> @type (.) . (.) . (.) . (.)
2024-03-31 17:33:09 +0000 <lambdabot> (b -> c) -> (a1 -> a2 -> a3 -> a4 -> b) -> a1 -> a2 -> a3 -> a4 -> c
2024-03-31 17:33:48 +0000skicalls those, `(::.)' resp `(:::.)'
2024-03-31 17:34:24 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-31 17:35:07 +0000 <ncf> :t fmap . fmap . fmap . fmap
2024-03-31 17:35:08 +0000 <lambdabot> (Functor f1, Functor f2, Functor f3, Functor f4) => (a -> b) -> f1 (f2 (f3 (f4 a))) -> f1 (f2 (f3 (f4 b)))
2024-03-31 17:35:35 +0000 <ski> cheater : `(f .)' "focuses" on the result type of a function, letting `f' operate on it. `(. f)' similarly focuses on the argument type. `map f' "focuses on list elements"
2024-03-31 17:35:37 +0000 <ncf> :t traverse . traverse . traverse . traverse
2024-03-31 17:35:37 +0000 <lambdabot> (Applicative f, Traversable t1, Traversable t2, Traversable t3, Traversable t4) => (a -> f b) -> t1 (t2 (t3 (t4 a))) -> f (t1 (t2 (t3 (t4 b))))
2024-03-31 17:35:42 +0000 <ski> @where SEC
2024-03-31 17:35:42 +0000 <lambdabot> http://conal.net/blog/posts/semantic-editor-combinators/
2024-03-31 17:36:14 +0000 <ski> (and you can guess what `first' and `second' does, i hope)
2024-03-31 17:36:15 +0000r5c4571lh01987(~rscastilh@179.221.142.8)
2024-03-31 17:38:30 +0000r5c4571lh01987(~rscastilh@179.221.142.8) (Remote host closed the connection)
2024-03-31 17:43:42 +0000 <ski> @type traverse :: Traversable t => (a -> State s b) -> (t a -> State s (t b))
2024-03-31 17:43:43 +0000 <lambdabot> Traversable t => (a -> State s b) -> t a -> State s (t b)
2024-03-31 17:43:51 +0000 <ski> @type mapAccumL
2024-03-31 17:43:52 +0000 <lambdabot> Traversable t => (a -> b -> (a, c)) -> a -> t b -> (a, t c)
2024-03-31 17:44:12 +0000 <ski> @type ((state . (swap .)) .) . flip . mapAccumL . flip . (((swap .) . runState) .) :: Traversable t => (a -> State s b) -> (t a -> State s (t b))
2024-03-31 17:44:12 +0000 <lambdabot> Traversable t => (a -> State s b) -> t a -> State s (t b)
2024-03-31 17:44:16 +0000kuribas(~user@ptr-17d51eo5ejgrzwny9lg.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
2024-03-31 17:44:37 +0000 <ski> (see if you can follow that, if you like, cheater)
2024-03-31 17:44:50 +0000 <cheater> erm
2024-03-31 17:45:09 +0000 <cheater> i was thinking more of, if the parens will have that shape, then there will be that many arrows in that argument
2024-03-31 17:45:24 +0000 <cheater> like if you do
2024-03-31 17:45:25 +0000 <cheater> @type ((.).(.)).((.).)
2024-03-31 17:45:26 +0000 <lambdabot> (b1 -> b2 -> c) -> (a1 -> a2 -> b1) -> a1 -> a2 -> (a3 -> b2) -> a3 -> c
2024-03-31 17:45:56 +0000 <cheater> first argument is a function of 2 args, 2nd arg has 2 args, third has 0, fourth has 0, fifth has 1, sixth has 0
2024-03-31 17:46:02 +0000 <cheater> 2, 2, 0, 0, 1, 0
2024-03-31 17:46:28 +0000 <ski> `((.).(.)).((.).)' is the same as `(.).(.).((.).)', no need to add in those redundant brackets, unless you want to emphasize that grouping
2024-03-31 17:46:31 +0000 <cheater> i was wondering how these numbers relate to the structure of ((.).(.)).((.).) if looked at as a tree
2024-03-31 17:47:09 +0000 <ski> i don't really have a usecase ready, offhand, for when `((.) .)' (aka `(.) (.)'), would be useful
2024-03-31 17:47:23 +0000 <cheater> not particularly, i didn't really look at it too hard to spot that this set of parens is unneeded, it's just a random example
2024-03-31 17:47:34 +0000 <cheater> @type (.) (.)
2024-03-31 17:47:35 +0000 <lambdabot> (a1 -> b -> c) -> a1 -> (a2 -> b) -> a2 -> c
2024-03-31 17:48:05 +0000 <cheater> it's useful for when eg you want to add a float and int
2024-03-31 17:48:34 +0000 <cheater> > ((.) (.)) (+) 2.2 fromIntegral 3
2024-03-31 17:48:35 +0000 <lambdabot> 5.2
2024-03-31 17:48:46 +0000 <ski> the `(.) . (.)' initial part is just `(:.)', aka `\f g x y -> f (g x y)', passing along two curried parameters to `g', passing its result to `f'
2024-03-31 17:49:19 +0000 <cheater> it's useful to do a thing on two things that are *almost* compatible but you have to convert one of the two things by one step
2024-03-31 17:49:34 +0000 <ski> well .. i guess i'd prefer `fromIntegral' to come before `2.2', in that example
2024-03-31 17:49:57 +0000 <cheater> but it's applied to 3
2024-03-31 17:50:17 +0000 <cheater> it's probably prettier to write 2.2 + (fromIntegral 3) anyways
2024-03-31 17:50:27 +0000 <cheater> > 2.2 + (fromIntegral 3)
2024-03-31 17:50:28 +0000 <lambdabot> 5.2
2024-03-31 17:50:32 +0000 <cheater> works just as well
2024-03-31 17:50:39 +0000 <cheater> no weird pointless form
2024-03-31 17:50:45 +0000 <cheater> but, you know
2024-03-31 17:50:48 +0000 <cheater> if you're asking what it's good for
2024-03-31 17:50:52 +0000 <cheater> that's what it's good for
2024-03-31 17:52:11 +0000rvalue(~rvalue@user/rvalue) (Ping timeout: 264 seconds)
2024-03-31 17:52:44 +0000noumenon(~noumenon@113.51-175-156.customer.lyse.net)
2024-03-31 17:52:50 +0000Sgeo(~Sgeo@user/sgeo)
2024-03-31 17:53:02 +0000 <ski> > ((. flip (.)) . flip (.)) (+) fromIntegral 2.2 3 -- this looks hideous
2024-03-31 17:53:03 +0000 <lambdabot> 5.2
2024-03-31 17:53:09 +0000 <ski> > ((. fromIntegral) . (+)) 2.2 3 -- only slightly better
2024-03-31 17:53:10 +0000 <lambdabot> 5.2
2024-03-31 17:54:19 +0000 <ski> (oh, and the brackets around the call to `fromIntegral' there are also redundant)
2024-03-31 17:55:05 +0000michalz(~michalz@185.246.207.200)
2024-03-31 17:55:40 +0000machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-03-31 17:56:50 +0000 <ski> > ((.) . flip (.)) fromIntegral (+) 2.2 3
2024-03-31 17:56:51 +0000 <lambdabot> 5.2
2024-03-31 17:59:29 +0000r5c4571lh01987(rscastilho@179.221.142.8)
2024-03-31 18:01:10 +0000 <cheater> i think the original was best...
2024-03-31 18:01:30 +0000 <cheater> but... shrug haha
2024-03-31 18:01:44 +0000 <cheater> stuff like that is useful in a language that doesn't have lambda syntax...
2024-03-31 18:01:59 +0000 <cheater> otherwise you just do \x y -> x + (fromIntegral y)
2024-03-31 18:02:50 +0000rvalue(~rvalue@user/rvalue)
2024-03-31 18:03:17 +0000 <ski> mild usage of pointless can be potentially nicer
2024-03-31 18:03:50 +0000r5c4571lh01987(rscastilho@179.221.142.8) (Remote host closed the connection)
2024-03-31 18:14:50 +0000 <Inst> how do you debug pointless anyways?
2024-03-31 18:15:16 +0000 <Inst> i ended up debugging a pointfree function chain by converting it to accum parameter instead, and tbh the latter was more readable :(
2024-03-31 18:17:23 +0000 <Inst> i mean you can always stuff in traceshowid
2024-03-31 18:17:32 +0000 <ski> in that case, use the pointful
2024-03-31 18:18:10 +0000 <ski> (in case it's more readable, to be clear)
2024-03-31 18:18:29 +0000 <ski> (but, to some extent, "more readable" is a matter of familiarity)
2024-03-31 18:19:40 +0000 <ski> i'm used enough to reading `(foo .)' and `(. bar)', that they don't seem inscrutable, to me
2024-03-31 18:20:33 +0000 <Inst> when you get to multi-arg pointfree, imo, you're going too far
2024-03-31 18:20:38 +0000 <ski> (but i wouldn't use the examples above (below the `mapAccumL' one), repeatedly)
2024-03-31 18:21:03 +0000 <ski> `foo :. bar',`foo ::. baz' is also ok, imho
2024-03-31 18:21:17 +0000 <ski> but, generally, yes, that tends to be the case
2024-03-31 18:23:22 +0000 <ski> it can still be fun, now and again, to try to see whether you can pointless some lambda (manually, mind, *not* using an automatic translator. well, sometimes it can give a nice result, but often it will miss it, for a hairy one. or, more commonly perhaps, there simply is no non-hairy one) .. only sometimes do i find some interesting pattern, and only sometimes would i actually use the result in practice
2024-03-31 18:23:47 +0000 <ski> it's still a nice mental gymnastics exercise, at least if you like puzzley things
2024-03-31 18:26:18 +0000 <Inst> wait, have you ever tried curry / uncurry for pf?
2024-03-31 18:26:34 +0000 <Inst> as in, you avoid (.).(.) etc via curry and uncurry strategically placed?
2024-03-31 18:27:25 +0000mjs2600(~mjs2600@c-174-169-225-239.hsd1.vt.comcast.net)
2024-03-31 18:27:46 +0000 <ski> "have you ever tried curry / uncurry for pf?" -- yes, .. is that not obvious ?
2024-03-31 18:28:24 +0000 <ski> haven't really thought of `curry' & `uncurry' as being in opposition to `(:.)', though
2024-03-31 18:29:59 +0000mei(~mei@user/mei) (Quit: mei)
2024-03-31 18:33:31 +0000mei(~mei@user/mei)
2024-03-31 18:41:42 +0000igemnace(~ian@user/igemnace) (Quit: WeeChat 4.2.1)
2024-03-31 18:46:41 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-03-31 18:47:23 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-31 18:50:10 +0000noumenon(~noumenon@113.51-175-156.customer.lyse.net) (Remote host closed the connection)
2024-03-31 18:50:35 +0000noumenon(~noumenon@113.51-175-156.customer.lyse.net)
2024-03-31 18:51:53 +0000noumenon(~noumenon@113.51-175-156.customer.lyse.net) (Remote host closed the connection)
2024-03-31 18:57:02 +0000sawilagar(~sawilagar@user/sawilagar) (Ping timeout: 268 seconds)
2024-03-31 18:58:12 +0000ft(~ft@mue-88-130-107-219.dsl.tropolys.de)
2024-03-31 19:06:59 +0000gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2024-03-31 19:13:03 +0000gentauro(~gentauro@user/gentauro)
2024-03-31 19:13:46 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-03-31 19:22:03 +0000aljazmc(~aljazmc@user/aljazmc) (Remote host closed the connection)
2024-03-31 19:22:44 +0000aljazmc(~aljazmc@user/aljazmc)
2024-03-31 19:24:35 +0000aljazmc(~aljazmc@user/aljazmc) (Remote host closed the connection)
2024-03-31 19:25:05 +0000aljazmc(~aljazmc@user/aljazmc)
2024-03-31 19:50:28 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-31 19:59:58 +0000mjs2600(~mjs2600@c-174-169-225-239.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in)
2024-03-31 20:01:54 +0000mjs2600(~mjs2600@c-174-169-225-239.hsd1.vt.comcast.net)
2024-03-31 20:18:32 +0000sawilagar(~sawilagar@user/sawilagar)
2024-03-31 20:33:00 +0000machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 255 seconds)
2024-03-31 20:39:17 +0000chiselfuse(~chiselfus@user/chiselfuse)
2024-03-31 20:52:39 +0000aljazmc(~aljazmc@user/aljazmc) (Quit: Leaving)
2024-03-31 20:52:44 +0000michalz(~michalz@185.246.207.200) (Quit: ZNC 1.8.2 - https://znc.in)
2024-03-31 21:04:25 +0000 <cheater> i feel like pointless is the best if your mental model is that of eg working with a stack of some sort of arguments
2024-03-31 21:04:48 +0000 <cheater> and then you can generalize this and instead of stack you could have a tree or whatever maybe, idk, i'd have to think about how i'd do it
2024-03-31 21:05:18 +0000 <ski> stack, as in concatenative languages ?
2024-03-31 21:06:00 +0000 <cheater> yes
2024-03-31 21:06:46 +0000 <cheater> like eg
2024-03-31 21:07:04 +0000 <cheater> you could have ifthenelse pred then else
2024-03-31 21:07:22 +0000 <cheater> ifthenelse :: Bool -> a -> a -> a
2024-03-31 21:08:02 +0000 <cheater> and you can kind of think of the stack being True 2 3
2024-03-31 21:08:06 +0000 <cheater> and then you do something like
2024-03-31 21:08:21 +0000 <cheater> double . ifthenelse
2024-03-31 21:08:34 +0000 <cheater> and the stack still being True 2 3 yields 4
2024-03-31 21:09:29 +0000 <cheater> and operators such as ifthenelse that choose program flow between two parts of the stack, essentially allow you to have tree-shaped arguments
2024-03-31 21:09:49 +0000 <ski> > run (push 3 . dup . push 5 . swp . minus . times)
2024-03-31 21:09:51 +0000 <lambdabot> 6
2024-03-31 21:10:07 +0000[exa](~exa@user/exa/x-3587197) (Quit: WeeChat 4.2.1)
2024-03-31 21:10:19 +0000 <cheater> yea no idea how to read those ;) too long for me
2024-03-31 21:10:35 +0000 <cheater> what i'm saying though is you could easily imagine other kinds of functions that eg work with rose trees, deques, whatever
2024-03-31 21:10:36 +0000 <ski> `3 dup 5 swap - *', in Forth
2024-03-31 21:10:47 +0000 <cheater> yeah i still don't know how to read that
2024-03-31 21:10:51 +0000 <cheater> like i could probably figure it out
2024-03-31 21:10:54 +0000 <cheater> but it's also 11 pm
2024-03-31 21:10:59 +0000 <cheater> and i'm reading some rust
2024-03-31 21:11:01 +0000 <cheater> and i don't know rust
2024-03-31 21:11:10 +0000 <cheater> so i'm at the limit of my polyglocy right now
2024-03-31 21:11:15 +0000 <ski> it computes `3 * (5 - 3)'
2024-03-31 21:12:09 +0000 <ski> "working with a stack of some sort of arguments","and you can kind of think of the stack being True 2 3" -- which is what my combinators above do
2024-03-31 21:12:28 +0000 <cheater> i'd have expected push to happen first
2024-03-31 21:12:30 +0000 <cheater> not last
2024-03-31 21:12:39 +0000 <ski> `push' does happen first
2024-03-31 21:12:50 +0000 <ski> (read left-to-right)
2024-03-31 21:12:57 +0000 <cheater> why am i reading left to right?
2024-03-31 21:13:09 +0000 <ski> .. because, well ..
2024-03-31 21:13:20 +0000 <ski> check types of the combinators ?
2024-03-31 21:13:44 +0000 <ski> @type minus
2024-03-31 21:13:45 +0000 <lambdabot> Num t1 => (t1 -> t2) -> t1 -> t1 -> t2
2024-03-31 21:13:50 +0000 <ski> @type dup
2024-03-31 21:13:51 +0000 <lambdabot> (t1 -> t1 -> t2) -> t1 -> t2
2024-03-31 21:13:52 +0000 <ski> @type swp
2024-03-31 21:13:53 +0000 <lambdabot> (t1 -> t2 -> t3) -> t2 -> t1 -> t3
2024-03-31 21:13:55 +0000 <ski> @type push
2024-03-31 21:13:56 +0000 <lambdabot> t1 -> (t1 -> t2) -> t2
2024-03-31 21:14:09 +0000 <ski> .. these are written, using CPS
2024-03-31 21:14:23 +0000 <ski> and CPS tends to turn things "inside out". that's why you're reading left-to-right
2024-03-31 21:15:00 +0000 <ski> (also cf. optics composition .. basically same phenomenon)
2024-03-31 21:15:06 +0000 <cheater> hmm ok
2024-03-31 21:15:24 +0000 <ski> @type run
2024-03-31 21:15:25 +0000 <lambdabot> ((a -> a) -> t) -> t
2024-03-31 21:15:27 +0000ncf. o O ( "CPS-based functional references" )
2024-03-31 21:15:34 +0000 <cheater> where do those come from
2024-03-31 21:15:36 +0000 <cheater> did you write them
2024-03-31 21:15:51 +0000 <ski> the pro of this approach is that it supports heterogenous stack, automatically
2024-03-31 21:15:57 +0000 <ski> yep, i did
2024-03-31 21:16:00 +0000 <ncf> cheater: ski can project any combinator from his brain directly onto lambdabot
2024-03-31 21:16:34 +0000 <ski> (i came up with this idea, many years ago. .. i think maybe around twenty or something ?)
2024-03-31 21:16:48 +0000 <cheater> what is the source for minus ?
2024-03-31 21:17:06 +0000 <cheater> ncf: i believe that
2024-03-31 21:17:11 +0000 <ski> minus k x y = k (y - x)
2024-03-31 21:18:12 +0000 <ski> for the example above
2024-03-31 21:18:17 +0000 <ski> run (push 3 . dup . push 5 . swp . minus . times)
2024-03-31 21:18:26 +0000 <ski> = (push 3 . dup . push 5 . swp . minus . times) id
2024-03-31 21:19:09 +0000 <ski> = push 3 (dup (push 5 (swp (minus (times id)))))
2024-03-31 21:19:17 +0000 <ski> = dup (push 5 (swp (minus (times id)))) 3
2024-03-31 21:19:23 +0000 <ski> = push 5 (swp (minus (times id))) 3 3
2024-03-31 21:19:31 +0000 <ski> = swp (minus (times id)) 3 3 5
2024-03-31 21:19:48 +0000 <ski> er, actually
2024-03-31 21:19:52 +0000 <ski> = swp (minus (times id)) 5 3 3
2024-03-31 21:20:04 +0000 <ski> = minus (times id) 3 5 3
2024-03-31 21:20:19 +0000 <ski> = times id (5 - 3) 3
2024-03-31 21:20:29 +0000 <ski> = id (3 * (5 - 3))
2024-03-31 21:20:33 +0000 <ski> = 3 * (5 - 3)
2024-03-31 21:20:37 +0000 <ski> = 3 * 2
2024-03-31 21:20:39 +0000 <ski> = 6
2024-03-31 21:20:40 +0000target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2024-03-31 21:20:57 +0000 <ski> cheater : makes more sense, now, how the arguments act like a stack ?
2024-03-31 21:21:03 +0000 <cheater> yes
2024-03-31 21:21:10 +0000 <cheater> but could they be a tree instead?
2024-03-31 21:21:34 +0000 <cheater> it's so weird because
2024-03-31 21:22:16 +0000 <ski> "and operators such as ifthenelse that choose program flow between two parts of the stack, essentially allow you to have tree-shaped arguments" -- hmm
2024-03-31 21:22:22 +0000 <ski> i don't really follow this
2024-03-31 21:22:42 +0000 <cheater> with a c-like, you could always say: the arguments are a tuple, f(x, y z). so if the arguments were a tree, we'd have f(x,((y, z), (u, v)))
2024-03-31 21:22:57 +0000 <cheater> but i wonder what the haskell equivalent would be
2024-03-31 21:23:03 +0000 <cheater> we separate arguments with spaces
2024-03-31 21:23:19 +0000 <cheater> what would the ergonomic syntax be for a tree?
2024-03-31 21:23:48 +0000 <ski> .. tuples ?
2024-03-31 21:24:47 +0000 <ski> `(a,b) -> c' is equivalent to `a -> b -> c'. how would you represent the nested structure of the argument type in `((a,b,c),(d,e)) -> f', in a curried form ?
2024-03-31 21:24:48 +0000 <cheater> idk if that's so ergonomic
2024-03-31 21:25:03 +0000 <cheater> yeah
2024-03-31 21:25:06 +0000 <cheater> that's a good question
2024-03-31 21:25:10 +0000 <cheater> maybe via a graph?
2024-03-31 21:25:17 +0000Silver_X(~Silver_X@182.178.140.82)
2024-03-31 21:25:41 +0000 <cheater> big braces }
2024-03-31 21:25:55 +0000 <cheater> a b c }
2024-03-31 21:26:01 +0000 <cheater> } -> f
2024-03-31 21:26:05 +0000 <cheater> d e }
2024-03-31 21:26:16 +0000 <cheater> now if those three braces all aligned that would be better
2024-03-31 21:26:29 +0000 <cheater> i guess more like
2024-03-31 21:26:37 +0000 <cheater> a -> b -> c -> }
2024-03-31 21:26:45 +0000 <ski> .. reminds me of a CPSed tree type i experimented with, that separated the branching structure of the tree, from the payload (the elements stored in the nodes). so that you'd first give the branching structure (in depth-first traversal order), and then the payload as a nested pair structure
2024-03-31 21:26:51 +0000 <cheater> } -> f
2024-03-31 21:27:06 +0000 <cheater> d -> e -> }
2024-03-31 21:27:39 +0000 <cheater> the question is though
2024-03-31 21:27:48 +0000 <cheater> what would the meaning be of such a branched type signature?
2024-03-31 21:27:51 +0000 <cheater> etc
2024-03-31 21:28:44 +0000 <cheater> polymorphism?
2024-03-31 21:29:12 +0000 <ski> like representing `B 2 (B 3 N N) (B 5 (B 7 N N) N)' as something like (not exactly) `(Br . Br . Ni . Ni . Br . Br . Ni . Ni . Ni) (2,(3,(),()),(5,(7,(),()),()))'
2024-03-31 21:29:52 +0000 <cheater> Syntax error: not enough shrubberies
2024-03-31 21:30:53 +0000 <ski> cheater : would that type be represented by a tree (and if so, what's its nesting structure) ?
2024-03-31 21:31:04 +0000 <cheater> what type?
2024-03-31 21:31:10 +0000 <cheater> the one i wrote above?
2024-03-31 21:31:17 +0000 <ski> the "big braces" example you gave
2024-03-31 21:31:29 +0000 <cheater> `((a,b,c),(d,e)) -> f'
2024-03-31 21:31:36 +0000 <ski> if it's a tree, what's the top-level type constructor ?
2024-03-31 21:31:52 +0000 <cheater> i guess f would be the root
2024-03-31 21:31:55 +0000 <ski> no, not the tupled version. your attempt at a "tree-structured curried" version
2024-03-31 21:32:05 +0000 <ski> `f' is a leaf
2024-03-31 21:32:12 +0000 <cheater> well to me it would be the root
2024-03-31 21:32:46 +0000 <ski> what's the children / subtrees of the root ?
2024-03-31 21:33:15 +0000 <cheater> the children would be c + its children, and e + its children
2024-03-31 21:33:33 +0000 <ski> so, two children ?
2024-03-31 21:33:36 +0000 <cheater> yes
2024-03-31 21:33:45 +0000 <cheater> and those woudl have one child each in this case
2024-03-31 21:33:53 +0000 <cheater> c has child b, and e has child d
2024-03-31 21:33:59 +0000 <ski> but in other cases, it could be three, or one, or four children, yes ?
2024-03-31 21:34:03 +0000 <cheater> d has no children. b has child a. a has no children.
2024-03-31 21:34:05 +0000 <cheater> sure
2024-03-31 21:34:53 +0000euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-03-31 21:35:10 +0000 <ski> i guess i'd interpret "well to me it would be the root" as meaning that `f' is the element in the root node
2024-03-31 21:35:17 +0000 <cheater> yes
2024-03-31 21:35:50 +0000 <ski> (not at all the same thing, wrt how i was grasping at it with my terminology)
2024-03-31 21:36:41 +0000 <ski> shouldn't `} -> f' be `-> } f' ?
2024-03-31 21:37:17 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-03-31 21:37:27 +0000 <cheater> no idea
2024-03-31 21:37:34 +0000 <cheater> feel free to change it as you see fit :)
2024-03-31 21:37:55 +0000 <ski> seems it would have to be, to be consistent .. unless i'm misunderstanding
2024-03-31 21:38:13 +0000 <ski> the other `}'s are preceded by `->'s
2024-03-31 21:40:16 +0000 <ski> so .. it seems that your example expresses the same information as say `(((((),a),b),c),(((),d),e)) -> f' .. only using another concrete syntax
2024-03-31 21:40:54 +0000skiponders that
2024-03-31 21:40:56 +0000 <cheater> oh no just imagine there's one big brace instead od the three stacked braces
2024-03-31 21:41:01 +0000 <cheater> there's no -> in the middle
2024-03-31 21:41:10 +0000 <cheater> on the left of the brace
2024-03-31 21:41:12 +0000 <cheater> only on the right
2024-03-31 21:41:54 +0000 <cheater> or alternatively
2024-03-31 21:42:02 +0000 <cheater> we could have no arrows pointing to/from braces
2024-03-31 21:42:04 +0000 <cheater> like
2024-03-31 21:42:04 +0000 <ski> .. why three (and not two) ?
2024-03-31 21:42:08 +0000 <cheater> a -> b }
2024-03-31 21:42:18 +0000 <cheater> } z
2024-03-31 21:42:30 +0000 <cheater> c }
2024-03-31 21:42:52 +0000 <cheater> three because i gotta align z with something and i don't want to align it with either of the lines on the left
2024-03-31 21:43:07 +0000 <cheater> i just wanted it to be central
2024-03-31 21:45:28 +0000 <cheater> https://imgur.com/a/KU8UeST
2024-03-31 21:47:10 +0000euphores(~SASL_euph@user/euphores)
2024-03-31 21:48:31 +0000 <cheater> ski:
2024-03-31 21:51:35 +0000 <ski> what does the `->' mean, here ?
2024-03-31 21:52:31 +0000 <cheater> as in normal haskell
2024-03-31 21:52:50 +0000 <cheater> the brace means
2024-03-31 21:52:53 +0000 <ski> so `a -> b' here is the same as `(a -> b)' ?
2024-03-31 21:53:03 +0000 <cheater> no
2024-03-31 21:53:14 +0000 <cheater> it's the same as a -> (b -> ...)
2024-03-31 21:53:23 +0000 <ski> (iow, `a' and `b' are not separate parameter types, but rather `a -> b' being the type of a single callback parameter)
2024-03-31 21:53:28 +0000 <cheater> the a b c z brace above means
2024-03-31 21:53:33 +0000 <cheater> a -> b -> z
2024-03-31 21:53:33 +0000 <cheater> and
2024-03-31 21:53:36 +0000 <cheater> c -> z
2024-03-31 21:53:38 +0000 <cheater> at the same time
2024-03-31 21:53:42 +0000 <ski> ok, so it doesn't meant the same as in ordinary Haskell
2024-03-31 21:53:55 +0000 <cheater> no
2024-03-31 21:53:56 +0000 <ski> `a -> b' is not a subexpression of `a -> b -> z', in Haskell
2024-03-31 21:54:02 +0000 <ski> (`->' is right-associative)
2024-03-31 21:54:08 +0000 <cheater> yes
2024-03-31 21:54:13 +0000 <cheater> the arrows are the same as in haskell.
2024-03-31 21:54:55 +0000 <ski> well, i thought we just established that they're not
2024-03-31 21:55:00 +0000machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-03-31 21:55:08 +0000 <cheater> no, you established that they're not. i established that they are
2024-03-31 21:55:21 +0000 <ski> if `a -> b }' is not parsed as `(a -> b) }', how is it parsed (grouped) ?
2024-03-31 21:55:30 +0000 <cheater> [23:53:25] <cheater> the a b c z brace above means
2024-03-31 21:55:30 +0000 <cheater> [23:53:29] <cheater> a -> b -> z
2024-03-31 21:55:30 +0000 <cheater> [23:53:30] <cheater> and
2024-03-31 21:55:30 +0000 <cheater> [23:53:32] <cheater> c -> z
2024-03-31 21:55:30 +0000 <cheater> [23:53:35] <cheater> at the same time
2024-03-31 21:55:35 +0000 <cheater> that's how
2024-03-31 21:55:56 +0000 <ski> that sounds like we're not talking about trees anymore, but (a forest of) DAGs
2024-03-31 21:56:20 +0000 <ski> two roots, one starting with `a', another starting with `c', and both eventyally having `z' as a subtree
2024-03-31 21:56:48 +0000 <cheater> well, if you take a tree and flip its arrows, sure, that's a dag.
2024-03-31 21:57:11 +0000sawilagar(~sawilagar@user/sawilagar) (Ping timeout: 255 seconds)
2024-03-31 21:57:40 +0000Silver_X(~Silver_X@182.178.140.82) (Remote host closed the connection)
2024-03-31 21:57:41 +0000 <ski> that's how i interpret "a -> b -> z","and","c -> z","at the same time", namely the `z' part of the two lines above "overlapping"
2024-03-31 21:58:01 +0000 <cheater> sure
2024-03-31 21:58:05 +0000 <cheater> that's a good way to look at it
2024-03-31 21:58:27 +0000 <ski> because `a -> b -> z' here can't mean `(a -> b) -> z', you agreed with that, so it seems it must mean `a -> (b -> z)' (or something like that) still, and then the two `z's must overlap
2024-03-31 21:58:48 +0000 <cheater> yes, they overlap
2024-03-31 22:00:10 +0000 <ski> (perhaps there's another way to look at it. if you could define some (e.g. Haskell) data types (trees or graphs or tables or whatever), that can be used to represent these types (and also, preferably, corresponding expression structures for invoking functions having these types), that could help to better understand how you're thinking about it)
2024-03-31 22:00:19 +0000 <ski> (bbiam)
2024-03-31 22:02:55 +0000 <cheater> so what if you had
2024-03-31 22:02:59 +0000 <cheater> a }
2024-03-31 22:03:09 +0000 <cheater> } Bool -> c
2024-03-31 22:03:12 +0000 <cheater> b }
2024-03-31 22:03:35 +0000 <cheater> and the Bool informed whether your function wants an a or a b?
2024-03-31 22:04:15 +0000 <cheater> you start with the fact that you end up with c
2024-03-31 22:04:17 +0000 <cheater> you know that for sure
2024-03-31 22:04:36 +0000 <cheater> but then at runtime depending on the value of the Bool you either want an a as input, or a b as input.
2024-03-31 22:07:33 +0000 <cheater> (and maybe you can figure out the Bool at compile time already, and specialize)
2024-03-31 22:14:39 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Remote host closed the connection)
2024-03-31 22:14:43 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-03-31 22:18:18 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-03-31 22:22:33 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Remote host closed the connection)
2024-03-31 22:23:56 +0000 <ski> at compile-time, you don't know the run-time value of the `Bool', in general. so you'd have to provide potential computations for both `a' and `b' (but not necessarily the possibility to materialize both)
2024-03-31 22:27:54 +0000wootehfoot(~wootehfoo@user/wootehfoot) (Quit: Leaving)
2024-03-31 22:28:00 +0000 <cheater> yup
2024-03-31 22:41:44 +0000causal(~eric@50.35.88.207)
2024-03-31 22:44:26 +0000gmg(~user@user/gehmehgeh) (Quit: Leaving)
2024-03-31 22:45:53 +0000Square2(~Square@user/square)
2024-03-31 22:58:04 +0000__monty__(~toonn@user/toonn) (Quit: leaving)
2024-03-31 23:08:31 +0000iteratee(~kyle@162.218.222.207) (Read error: Connection reset by peer)
2024-03-31 23:08:52 +0000iteratee(~kyle@162.218.222.207)
2024-03-31 23:08:57 +0000acidjnk_new(~acidjnk@p200300d6e714dc446d52a2431789bf32.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2024-03-31 23:12:57 +0000Maxdamantus(~Maxdamant@user/maxdamantus) (Ping timeout: 268 seconds)
2024-03-31 23:13:41 +0000Maxdamantus(~Maxdamant@user/maxdamantus)
2024-03-31 23:30:03 +0000travgm(~travgm@fsf/member/travgm)
2024-03-31 23:31:13 +0000picnoir(~picnoir@about/aquilenet/vodoo/NinjaTrappeur) (Ping timeout: 255 seconds)
2024-03-31 23:36:07 +0000picnoir(~picnoir@about/aquilenet/vodoo/NinjaTrappeur)
2024-03-31 23:51:05 +0000jero98772(~jero98772@2800:484:1d81:2200::4)
2024-03-31 23:52:22 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-03-31 23:57:02 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Remote host closed the connection)