Home liberachat/#haskell: Logs Calendar

Logs on 2024-03-31 (liberachat/#haskell)

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

All times are in UTC on 2024-03-31.