2024/03/31

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