Home liberachat/#haskell: Logs Calendar

Logs on 2022-06-05 (liberachat/#haskell)

00:01:35 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
00:03:42 vysn joins (~vysn@user/vysn)
00:05:46 slack1256 joins (~slack1256@191.126.99.196)
00:12:52 takuan joins (~takuan@178-116-218-225.access.telenet.be)
00:13:39 dcleonarski joins (~user@2804:d51:4704:e400:680:84d0:9355:7c5b)
00:16:36 × finsternis quits (~X@23.226.237.192) (Read error: Connection reset by peer)
00:19:34 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
00:20:27 calleum_ joins (~calleum@user/calleum)
00:21:21 azimut joins (~azimut@gateway/tor-sasl/azimut)
00:22:00 mvk joins (~mvk@2607:fea8:5ce3:8500::ba9a)
00:28:53 × aeka quits (~aeka@2606:6080:1001:16:3492:5f11:f1fb:66ae) (Quit: ZNC 1.8.2 - https://znc.in)
00:29:46 aeka joins (~aeka@user/hiruji)
00:35:06 × dcleonarski quits (~user@2804:d51:4704:e400:680:84d0:9355:7c5b) (Ping timeout: 258 seconds)
00:36:07 bluesman joins (~bluesman@92.223.85.241)
00:39:09 sebastiandb joins (~sebastian@pool-108-18-101-17.washdc.fios.verizon.net)
00:45:16 <Bulby[m]> why is pattern synonyms saying non exhastive for this
00:45:35 <Bulby[m]> wait
00:46:32 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds)
00:46:34 <Bulby[m]> https://paste.tomsmeding.com/XHXTf6is
00:46:46 × koolazer quits (~koo@user/koolazer) (Read error: Connection reset by peer)
00:47:35 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds)
00:47:37 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
00:48:04 <Bulby[m]> `FunDecl' name args stmt` is equivilant to `FunDecl name (FunInfo args stmts)` imo
00:48:21 <Bulby[m]> so idk why it's saying `FunDecl _ _` isn't accounted for
00:53:09 machinedgod joins (~machinedg@173.255.16.193)
00:54:50 <Bulby[m]> ah, that's what the complete pragma is for
00:59:12 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
01:05:28 TonyStone joins (~TonyStone@2603-7080-8607-c36a-2d91-707e-31c1-4661.res6.spectrum.com)
01:06:04 × vysn quits (~vysn@user/vysn) (Quit: WeeChat 3.4)
01:15:12 × TonyStone quits (~TonyStone@2603-7080-8607-c36a-2d91-707e-31c1-4661.res6.spectrum.com) (Ping timeout: 272 seconds)
01:16:01 TonyStone joins (~TonyStone@2603-7080-8607-c36a-2d91-707e-31c1-4661.res6.spectrum.com)
01:18:12 × Kaiepi quits (~Kaiepi@156.34.47.253) (Ping timeout: 276 seconds)
01:20:04 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
01:21:42 × sebastiandb quits (~sebastian@pool-108-18-101-17.washdc.fios.verizon.net) (Ping timeout: 244 seconds)
01:22:30 × gurkenglas quits (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
01:24:56 × TonyStone quits (~TonyStone@2603-7080-8607-c36a-2d91-707e-31c1-4661.res6.spectrum.com) (Ping timeout: 258 seconds)
01:24:57 × slack1256 quits (~slack1256@191.126.99.196) (Read error: Connection reset by peer)
01:25:29 slack1256 joins (~slack1256@186.11.9.42)
01:25:39 × Chargen quits (~chargen@D964062A.static.ziggozakelijk.nl) (Quit: Leaving)
01:25:40 TonyStone joins (~TonyStone@2603-7080-8607-c36a-2d91-707e-31c1-4661.res6.spectrum.com)
01:27:17 × bluesman quits (~bluesman@92.223.85.241) (Remote host closed the connection)
01:32:50 Kaiepi joins (~Kaiepi@156.34.47.253)
01:37:35 × unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 258 seconds)
01:51:03 andrey_ joins (~andrey@p200300dbcf441800b9e8ee91347c2731.dip0.t-ipconnect.de)
01:53:35 × andrey__ quits (~andrey@p508d5c0f.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
01:54:52 × slack1256 quits (~slack1256@186.11.9.42) (Remote host closed the connection)
02:01:27 × machinedgod quits (~machinedg@173.255.16.193) (Ping timeout: 260 seconds)
02:22:30 × td_ quits (~td@94.134.91.175) (Ping timeout: 240 seconds)
02:24:39 td_ joins (~td@muedsl-82-207-238-061.citykom.de)
02:24:47 × Kaiepi quits (~Kaiepi@156.34.47.253) (Ping timeout: 260 seconds)
02:24:50 prolic joins (~prolic@2803:2a00:2c0f:b96d:4824:1a8a:743e:8926)
02:26:11 <prolic> good evening, I'm back with yet another noob question
02:26:17 <prolic> I hope somebody can help out
02:26:19 <prolic> https://pastebin.com/UAV70431
02:27:30 <dsal> I'm not sure I'd call that noob if you're using ExistentialQuantification and RankNTypes to try to do impredicative polymorphism
02:27:59 <prolic> that's only by accident :)
02:28:37 <prolic> What I really want is, pass a callback along and store it in a data type
02:28:53 Tubo[m] joins (~tuboshion@2001:470:69fc:105::2:2385)
02:30:21 × dsrt^ quits (~dsrt@128-092-183-014.biz.spectrum.com) (Ping timeout: 276 seconds)
02:32:04 <glguy> prolic: You'll need to switch RelayHandler to be a newtype
02:34:42 <prolic> can you give me an example? because this throws a parse error
02:35:03 <glguy> I can't see your screen; what did you try?
02:36:20 <prolic> this here works: `data RelayHandler = forall i . Typeable i => RelayHandler (i -> SubscriptionId -> Event -> i)`
02:36:29 <prolic> but I don't know how to pattern match this then
02:36:52 <glguy> newtype RelayHandler = RelayHandler (forall i . Typeable i => i -> SubscriptionId -> Event -> i)
02:37:46 <glguy> and you'll need RankNTypes enabled for that
02:38:19 <prolic> ok, let me try, I need to update some functions then
02:39:05 sebastiandb joins (~sebastian@pool-108-18-101-17.washdc.fios.verizon.net)
02:42:58 <prolic> WTF, this stuff compiles
02:43:00 <prolic> thanks man!
02:43:35 <prolic> also I don't need this nasty `ExistentialQuantification` anymore
02:44:10 <prolic> I still fear at the end the overall thing makes no sense, lol - still learning a lot
02:46:32 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:46:32 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:46:32 finn_elija is now known as FinnElija
02:48:30 <glguy> prolic: It's not much more nasty than rankntypes but no, you don't need it for this
02:49:51 <glguy> what you wrote means "There's a type i but all I will tell you about it is that it implements Typeable and here's a function that works on that type. Since it's a typeable a way to make one would be to try and use Data.Typeable.cast
02:49:51 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 276 seconds)
02:49:59 <glguy> maybe that's what you meant?
02:50:22 <glguy> What I wrote means that you have a function that works for all types 'i' that implement Typeable
02:51:08 <prolic> exactly
02:51:21 <prolic> I don't know the concrete implementation in this module
02:51:53 <prolic> but I want to reuse it in several places
02:55:41 prolic49 joins (~prolic@2803:2a00:2c0f:b96d:4824:1a8a:743e:8926)
02:55:55 <prolic49> ups, disconnected
02:56:48 bilegeek joins (~bilegeek@2600:1008:b029:39c1:dac7:1cba:79d3:5e29)
02:59:18 × prolic quits (~prolic@2803:2a00:2c0f:b96d:4824:1a8a:743e:8926) (Ping timeout: 252 seconds)
03:00:28 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
03:01:00 yaroot_ joins (~yaroot@11.70.30.125.dy.iij4u.or.jp)
03:03:04 prolic49 is now known as prolic
03:04:10 × abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
03:04:24 × yaroot quits (~yaroot@2409:12:ac0:2300:680e:dbff:fe1e:4953) (Ping timeout: 248 seconds)
03:04:24 yaroot_ is now known as yaroot
03:06:24 dsrt^ joins (~dsrt@128-092-183-014.biz.spectrum.com)
03:21:51 CoolerX joins (~user@user/coolerx)
03:25:20 × prolic quits (~prolic@2803:2a00:2c0f:b96d:4824:1a8a:743e:8926) (Ping timeout: 252 seconds)
03:26:54 × CoolerX quits (~user@user/coolerx) (Ping timeout: 276 seconds)
03:27:45 × dsrt^ quits (~dsrt@128-092-183-014.biz.spectrum.com) (Ping timeout: 246 seconds)
03:32:29 × Tubo[m] quits (~tuboshion@2001:470:69fc:105::2:2385) (Quit: Reconnecting)
03:32:44 Tubo[m] joins (~tubogram@user/tubogram)
03:33:51 justsomeguy joins (~justsomeg@user/justsomeguy)
03:36:39 × Topsi quits (~Topsi@dyndsl-095-033-091-150.ewe-ip-backbone.de) (Ping timeout: 276 seconds)
03:50:30 nate3 joins (~nate@98.45.169.16)
03:56:34 abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
03:56:44 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 258 seconds)
03:58:01 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
04:04:06 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
04:12:30 img joins (~img@user/img)
04:13:40 × dextaa quits (~DV@user/dextaa) (Read error: Connection reset by peer)
04:15:54 dextaa joins (~DV@user/dextaa)
04:20:52 × lagash quits (lagash@lagash.shelltalk.net) (Ping timeout: 248 seconds)
04:21:43 Kaiepi joins (~Kaiepi@156.34.47.253)
04:21:44 hsw_ joins (~hsw@112-104-144-236.adsl.dynamic.seed.net.tw)
04:22:01 Hash joins (~Hash@tunnel686959-pt.tunnel.tserv15.lax1.ipv6.he.net)
04:22:28 × stoned quits (~Hash@tunnel686959-pt.tunnel.tserv15.lax1.ipv6.he.net) (Ping timeout: 248 seconds)
04:22:39 × flukiluke quits (~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962) (Ping timeout: 240 seconds)
04:22:58 flukiluke joins (~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962)
04:22:59 × hsw quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Ping timeout: 252 seconds)
04:26:21 kayvank joins (~user@52-119-115-185.PUBLIC.monkeybrains.net)
04:29:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
04:32:34 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
04:33:31 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
04:34:53 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
04:36:03 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
04:43:45 azimut joins (~azimut@gateway/tor-sasl/azimut)
04:44:43 takuan joins (~takuan@178.116.218.225)
04:46:32 × kayvank quits (~user@52-119-115-185.PUBLIC.monkeybrains.net) (Remote host closed the connection)
04:49:08 mbuf joins (~Shakthi@171.61.227.202)
04:54:50 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Ping timeout: 240 seconds)
04:55:26 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
05:01:09 × ente quits (~daemon@inferno.barfooze.de) (Ping timeout: 276 seconds)
05:01:48 lagash joins (lagash@lagash.shelltalk.net)
05:06:29 Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net)
05:07:52 <EvanR> I have Finding Success and Failure (The Joy of Haskell) in the mail
05:07:58 <EvanR> er, just came in
05:09:02 andrey__ joins (~andrey@p508d5b66.dip0.t-ipconnect.de)
05:11:27 × andrey_ quits (~andrey@p200300dbcf441800b9e8ee91347c2731.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
05:15:17 × zebrag quits (~chris@user/zebrag) (Read error: Connection reset by peer)
05:24:04 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
05:31:30 nate3 joins (~nate@98.45.169.16)
05:41:29 vglfr joins (~vglfr@46.96.165.160)
05:43:33 × raym quits (~raym@user/raym) (Ping timeout: 246 seconds)
05:43:40 × dextaa quits (~DV@user/dextaa) (Read error: Connection reset by peer)
05:44:22 raym joins (~raym@user/raym)
05:45:53 dextaa joins (~DV@user/dextaa)
05:53:37 unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
05:56:20 × calleum_ quits (~calleum@user/calleum) (Ping timeout: 258 seconds)
06:00:21 × vglfr quits (~vglfr@46.96.165.160) (Ping timeout: 246 seconds)
06:03:24 <sm> 🎉
06:04:26 CoolerX joins (~user@user/coolerx)
06:06:42 odnes joins (~odnes@5-203-225-191.pat.nym.cosmote.net)
06:08:57 Kevin578 joins (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net)
06:10:30 × Kevin578 quits (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) (Remote host closed the connection)
06:10:43 Kevin578 joins (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net)
06:11:27 coot joins (~coot@213.134.190.95)
06:18:11 × abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
06:18:46 CoolerX_ joins (~user@user/coolerx)
06:20:01 <CoolerX_> i
06:20:03 <CoolerX_> Hi
06:20:19 <CoolerX_> how does aeson tojson encode stuff?
06:20:33 <CoolerX_> example https://bpa.st/WV6Q
06:20:50 × CoolerX quits (~user@user/coolerx) (Ping timeout: 240 seconds)
06:21:30 <CoolerX_> looking at the types that it is encoding I am not sure where it got that particular json structure from https://github.com/koalaman/shellcheck/blob/master/src/ShellCheck/AST.hs#L42-L145
06:21:55 <CoolerX_> especially all the "contents" keys
06:34:39 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds)
06:39:58 × hgolden quits (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
06:41:53 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
06:43:20 hgolden joins (~hgolden2@cpe-172-251-233-141.socal.res.rr.com)
06:46:03 vglfr joins (~vglfr@coupling.penchant.volia.net)
06:59:12 × cheater quits (~Username@user/cheater) (Ping timeout: 258 seconds)
07:11:33 cheater joins (~Username@user/cheater)
07:11:34 acidjnk joins (~acidjnk@pd9e0b3b9.dip0.t-ipconnect.de)
07:25:16 CoolerX joins (~user@user/coolerx)
07:26:35 × CoolerX_ quits (~user@user/coolerx) (Ping timeout: 255 seconds)
07:29:09 × dextaa quits (~DV@user/dextaa) (Read error: Connection reset by peer)
07:30:52 dextaa joins (~DV@user/dextaa)
07:31:01 × CoolerX quits (~user@user/coolerx) (Ping timeout: 258 seconds)
07:32:22 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
07:32:41 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) (Remote host closed the connection)
07:33:11 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c)
07:34:05 fetsorn joins (~fetsorn@46.71.112.209)
07:34:29 × fetsorn quits (~fetsorn@46.71.112.209) (Remote host closed the connection)
07:36:10 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
07:37:50 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) (Ping timeout: 255 seconds)
07:39:15 zaquest joins (~notzaques@5.130.79.72)
07:41:07 ente joins (~daemon@inferno.barfooze.de)
07:41:20 alp joins (~alp@user/alp)
07:42:27 × alp quits (~alp@user/alp) (Remote host closed the connection)
07:43:00 alp joins (~alp@user/alp)
07:44:07 × alp quits (~alp@user/alp) (Remote host closed the connection)
07:45:27 × mvk quits (~mvk@2607:fea8:5ce3:8500::ba9a) (Ping timeout: 240 seconds)
07:45:41 fendor joins (~fendor@77.119.163.245.wireless.dyn.drei.com)
07:52:05 mc47 joins (~mc47@xmonad/TheMC47)
07:52:53 trisolaran joins (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
07:57:10 dsrt^ joins (~dsrt@128-092-183-014.biz.spectrum.com)
07:57:59 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:58:10 × xff0x quits (~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 240 seconds)
08:03:41 xff0x joins (~xff0x@b133147.ppp.asahi-net.or.jp)
08:08:01 CoolerX joins (~user@user/coolerx)
08:09:51 × bilegeek quits (~bilegeek@2600:1008:b029:39c1:dac7:1cba:79d3:5e29) (Quit: Leaving)
08:16:20 Tuplanolla joins (~Tuplanoll@91-159-69-1.elisa-laajakaista.fi)
08:20:42 × dsrt^ quits (~dsrt@128-092-183-014.biz.spectrum.com) (Ping timeout: 246 seconds)
08:29:30 × unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 244 seconds)
08:32:11 nate3 joins (~nate@98.45.169.16)
08:35:07 × coot quits (~coot@213.134.190.95) (Quit: coot)
08:36:57 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
08:37:45 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
08:41:14 calleum_ joins (~calleum@user/calleum)
08:42:39 × acidjnk quits (~acidjnk@pd9e0b3b9.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
08:45:09 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
08:47:20 × fendor quits (~fendor@77.119.163.245.wireless.dyn.drei.com) (Quit: Leaving)
08:58:54 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
08:59:02 gehmehgeh joins (~user@user/gehmehgeh)
08:59:48 × kwshi quits (~kwshi@096-040-102-060.biz.spectrum.com) (Quit: Connection closed)
09:00:09 × AdityaAlok[m] quits (~mradityaa@2001:470:69fc:105::1:ee36) (Quit: You have been kicked for being idle)
09:00:09 × amesgen[m] quits (~amesgenm]@2001:470:69fc:105::82b) (Quit: You have been kicked for being idle)
09:00:10 × Kevin578 quits (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) (Ping timeout: 240 seconds)
09:02:30 dcoutts__ joins (~duncan@host86-144-78-203.range86-144.btcentralplus.com)
09:02:32 chomwitt joins (~chomwitt@2a02:587:dc0e:3e00:a086:3f3d:4abf:7826)
09:05:56 _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl)
09:09:20 × mbuf quits (~Shakthi@171.61.227.202) (Quit: Leaving)
09:16:34 × Chai-T-Rex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 240 seconds)
09:17:22 × dcoutts__ quits (~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Ping timeout: 250 seconds)
09:18:05 Chai-T-Rex joins (~ChaiTRex@user/chaitrex)
09:20:58 × chomwitt quits (~chomwitt@2a02:587:dc0e:3e00:a086:3f3d:4abf:7826) (Ping timeout: 272 seconds)
09:25:28 Pickchea joins (~private@user/pickchea)
09:29:17 Midjak joins (~Midjak@82.66.147.146)
09:38:18 <gentauro> hey, what is the name of the rule in LC that remove `x` on both sides. Sample: `foo x = bar x` => `foo = bar`?
09:38:21 <gentauro> I kind of forgot xD
09:39:21 × CoolerX quits (~user@user/coolerx) (Ping timeout: 276 seconds)
09:40:26 CoolerX joins (~user@user/coolerx)
09:43:01 × odnes quits (~odnes@5-203-225-191.pat.nym.cosmote.net) (Read error: Connection reset by peer)
09:43:03 odnes_ joins (~odnes@5-203-225-191.pat.nym.cosmote.net)
09:43:50 × Pickchea quits (~private@user/pickchea) (Ping timeout: 255 seconds)
09:45:23 coot joins (~coot@213.134.190.95)
09:45:39 <c_wraith> eta conversion
09:45:47 janus78 joins (~janus@84-107-171-239.cable.dynamic.v4.ziggo.nl)
09:46:22 <gentauro> c_wraith: you are right -> https://wiki.haskell.org/Eta_conversion
09:46:23 <gentauro> thx
09:50:28 × coot quits (~coot@213.134.190.95) (Quit: coot)
09:51:43 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
09:54:37 × trisolaran quits (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 256 seconds)
09:56:06 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: Textual IRC Client: www.textualapp.com)
09:58:38 <CoolerX> Hi
09:58:44 <CoolerX> I get this error in VSCode Project requires HLS but it isn't installed
09:59:04 <CoolerX> It has a button "Install HLS" that takes you to https://www.haskell.org/ghcup/
09:59:26 <CoolerX> I already have stack installed
09:59:30 <CoolerX> stack ghc
09:59:34 <CoolerX> stack ghci
10:00:21 <CoolerX> How do you get VSCode to use Stack instead of GHCup?
10:01:07 <CoolerX> I am using this extension https://marketplace.visualstudio.com/items?itemName=haskell.haskell
10:01:44 <maerwald[m]> CoolerX: What do you mean with "instead"?
10:03:09 <maerwald[m]> The extension support stack via ghcup just fine
10:03:18 <CoolerX> hm
10:03:27 <CoolerX> isn't ghcup an alternative to staack?
10:03:35 <arahael> CoolerX: No?
10:03:45 <CoolerX> stack has its own installer
10:03:56 <arahael> CoolerX: Many things have their own installer.
10:04:02 <CoolerX> https://docs.haskellstack.org/en/stable/README/#how-to-install
10:04:14 <CoolerX> yeah so what is ghcup doing?
10:04:15 × calleum_ quits (~calleum@user/calleum) (Ping timeout: 256 seconds)
10:04:25 <CoolerX> it's an alternative way to install
10:06:07 <[exa]> ghcup is for installing the "haskell platform", basically ghc + cabal to get you running on any system. Stack does a bazillion of extra things (it does its own package management, installs a few own versions of ghc likely along with their own HLS and ide integrations) so a bit of mess is I'd say expectable
10:06:10 <maerwald[m]> Ghcup can install stack too
10:06:28 <maerwald[m]> Read https://github.com/haskell/vscode-haskell#setting-a-specific-toolchain
10:06:36 <CoolerX> $ haskell-language-server-wrapper
10:06:36 <CoolerX> -bash: haskell-language-server-wrapper: command not found
10:06:56 <CoolerX> $ stack haskell-language-server-wrapper
10:06:57 <CoolerX> Invalid argument `haskell-language-server-wrapper'
10:07:01 <CoolerX> hmmm
10:07:10 <maerwald[m]> You probably want this https://paste.tomsmeding.com/LH4oGpB2
10:07:31 <maerwald[m]> This causes the extension to only manage HLS and nothing else
10:07:45 <CoolerX> stack install haskell-language-server
10:07:57 <CoolerX> https://www.reddit.com/r/haskell/comments/qm9lra/stack_dependency_hell/
10:08:08 <maerwald[m]> Read https://github.com/haskell/vscode-haskell#stackcabalghc-can-not-be-found
10:09:12 <CoolerX> maerwald[m]: that talks about GHCup
10:09:15 <CoolerX> "Also make sure GHCup is installed and in $PATH. If you're not starting VSCode from the terminal, you might need to add ${HOME}/.ghcup/bin to PATH like so:
10:09:18 <CoolerX> "
10:09:30 <maerwald[m]> CoolerX: yes
10:09:35 <CoolerX> I don't need GHCup I have ghc, cabal, etc
10:09:38 dcoutts__ joins (~duncan@host86-144-78-203.range86-144.btcentralplus.com)
10:09:45 <maerwald[m]> The extension uses ghcup to install HLS
10:09:57 <maerwald[m]> rtfm
10:10:31 Kevin578 joins (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net)
10:10:50 <maerwald[m]> I sent you links that emplain how to make the extension only install HLS, reas them
10:10:58 <maerwald[m]> *read
10:11:07 <CoolerX> I don't want it to install anything
10:11:27 <CoolerX> I just want the extension to pick up and use the existing installed versions of ghc, cabal, hls, etc.
10:11:38 <CoolerX> it's already installed, don't need double install
10:12:00 <[exa]> CoolerX: extensions are usually super-picky about the versions :(
10:12:18 <CoolerX> it's the latest version
10:12:26 <maerwald[m]> CoolerX: read my links
10:12:34 <CoolerX> maerwald[m]: I did
10:12:41 <maerwald[m]> It's literally explained there
10:12:43 <maerwald[m]> No you didn't
10:13:03 <CoolerX> "15:37 < maerwald[m]> You probably want this https://paste.tomsmeding.com/LH4oGpB2" I don't want the extension to manage HLS
10:13:06 <CoolerX> 15:37 < maerwald[m]> This causes the extension to only manage HLS and nothing else
10:13:21 <CoolerX> why is it managing anything?
10:13:26 <CoolerX> that's not i's job
10:13:33 <CoolerX> just use the existing things
10:13:36 <[exa]> CoolerX: "latest version" may change everyday, they usually go for some kind of LTS
10:13:41 <maerwald[m]> https://github.com/haskell/vscode-haskell#downloaded-binaries
10:14:03 <maerwald[m]> CoolerX: set haskell.manageHLS to PATT
10:14:05 <maerwald[m]> PATH
10:14:13 <maerwald[m]> It's explained in the readme
10:14:16 <CoolerX> yeah I set that already
10:14:27 <CoolerX> it still complains
10:14:43 <CoolerX> I think because only stack is on the PATH technically speaking
10:14:49 <maerwald[m]> Then thathas nothing to do with the extension but your setup
10:15:55 <maerwald[m]> Again: read the readme. It explains how you can point it to a specific hls binary
10:16:05 <CoolerX> I thought you said it can pick up and use stack just fine
10:16:35 <CoolerX> it has to be through ghcup??
10:16:43 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
10:16:47 × Kevin578 quits (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) (Ping timeout: 240 seconds)
10:17:16 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Client Quit)
10:17:22 <maerwald[m]> No
10:19:15 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
10:21:31 Pickchea joins (~private@user/pickchea)
10:22:51 <CoolerX> I guess I have to install ghcup
10:23:01 <CoolerX> nothing else works
10:24:18 <maerwald[m]> Your hls binaries need to be in PATH
10:26:41 <CoolerX> how does hls find packages?
10:27:13 <CoolerX> does it look for stack.yaml package.cabal?
10:27:17 <CoolerX> package.yaml
10:28:16 <arahael> CoolerX: In general, if you want to have a custom setup, you usually need to be sure to read everything as you effectively have a bespoke implementation now.
10:29:11 <CoolerX> arahael: I didn't start out with that as a goal
10:29:36 Kevin578 joins (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net)
10:29:52 <arahael> CoolerX: I would probably just follow the instructions - I don't use HLS myself (It's on my todo... eventually...) but I would probably just run with it's default and have it install it's own entirely separate version of everything.
10:30:01 <CoolerX> https://www.haskell.org/downloads/
10:30:05 <CoolerX> Stack: a cross-platform program for developing Haskell projects
10:30:19 <CoolerX> https://docs.haskellstack.org/en/stable/README/
10:30:28 <CoolerX> https://docs.haskellstack.org/en/stable/README/#how-to-install
10:30:47 <CoolerX> that's what I did
10:31:51 <CoolerX> if you really want people to follow a particular way of installing and using then keep that as the only option
10:33:33 <maerwald[m]> CoolerX: that's what I suggested, but it wasn't accepted
10:33:44 <maerwald[m]> Ask the haskell.org committee
10:33:49 nate3 joins (~nate@98.45.169.16)
10:33:53 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
10:33:53 __monty__ joins (~toonn@user/toonn)
10:35:13 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c)
10:35:18 coot joins (~coot@213.134.190.95)
10:35:48 × Kevin578 quits (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) (Ping timeout: 246 seconds)
10:37:04 <maerwald[m]> You can rant here https://github.com/haskell-infra/www.haskell.org/issues
10:38:17 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
10:40:08 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) (Ping timeout: 272 seconds)
10:41:33 <CoolerX> ghcup is doing something weird
10:41:43 <maerwald[m]> CoolerX: like?
10:41:53 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 255 seconds)
10:42:14 <CoolerX> op nvm
10:42:20 <CoolerX> it just froze for a few minutes
10:42:22 <CoolerX> now it finished
10:42:48 × Pickchea quits (~private@user/pickchea) (Ping timeout: 246 seconds)
10:43:42 <CoolerX> Project requires GHCup but it isn't installed
10:43:46 <CoolerX> oh ffs
10:44:18 <maerwald[m]> CoolerX: https://github.com/haskell/vscode-haskell#stackcabalghc-can-not-be-found
10:44:20 <CoolerX> $ ghcup
10:44:20 <CoolerX> Missing: COMMAND
10:44:20 <CoolerX> Usage: ghcup [(-v|--verbose) | --no-verbose] [(-c|--cache) | --no-cache]
10:44:27 <CoolerX> I have it installed and in PATH
10:44:49 <maerwald[m]> Yes, but you probably don't stsrt vscode from Terminal
10:45:00 <maerwald[m]> GUI programs on linux don't inherit shell path
10:45:12 <maerwald[m]> At least not if you use gdm etc
10:45:29 <CoolerX> works after restarting twice
10:45:30 <maerwald[m]> The link explains how to fix it
10:45:31 <CoolerX> vscode
10:45:41 × janus78 quits (~janus@84-107-171-239.cable.dynamic.v4.ziggo.nl) (Quit: Client closed)
10:45:53 <CoolerX> Multi Cradle: No prefixes matched
10:46:21 <CoolerX> it's showing a red line here v
10:46:22 <CoolerX> https://github.com/jjhenkel/binnacle-icse2020/blob/master/datasets/2-phase-2-dockerfile-asts/generate/app.hs#L1
10:46:42 <maerwald[m]> CoolerX: https://paste.tomsmeding.com/Ft8HxOzo
10:46:53 <maerwald[m]> Add this file as hie.yaml to your project root
10:47:34 <CoolerX> hmm https://hackage.haskell.org/package/implicit-hie
10:47:37 <CoolerX> what is that?
10:47:44 <CoolerX> haskell internal extensions?
10:47:56 gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
10:48:16 <arahael> Haskell IDE Engine, I think.
10:48:37 <CoolerX> ok?
10:48:48 <maerwald[m]> CoolerX: did you do what I said?
10:49:16 <CoolerX> yes
10:49:26 <maerwald[m]> Now restart vscode
10:49:49 <CoolerX> yeah that works thanks
10:50:22 <CoolerX> ok now it complains about not being able to load modules
10:50:36 <CoolerX> Could not load module ‘Data.Text’
10:50:36 <CoolerX> It is a member of the hidden package ‘text-1.2.5.0’.
10:50:36 <CoolerX> You can run ‘:set -package text’ to expose it.
10:50:38 <CoolerX> (Note: this unloads all the modules in the current scope.)
10:50:58 <CoolerX> red line on https://github.com/jjhenkel/binnacle-icse2020/blob/master/datasets/2-phase-2-dockerfile-asts/generate/app.hs#L18
10:51:47 × dcoutts__ quits (~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Ping timeout: 240 seconds)
10:51:56 <maerwald[m]> CoolerX: https://www.haskell.org/ghcup/steps/#adding-dependencies
10:53:37 yosef` joins (~user@user/yosef/x-2947716)
10:57:52 <CoolerX> maerwald[m]: that's like magic copy paste stuff
10:57:56 <CoolerX> doesn't explain much
10:58:31 <CoolerX> https://docs.haskellstack.org/en/stable/stack_yaml_vs_cabal_package_file/
10:59:53 <maerwald[m]> CoolerX: copy paste?
11:01:54 × coot quits (~coot@213.134.190.95) (Quit: coot)
11:02:02 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
11:02:10 × sander quits (~sander@user/sander) (Quit: So long! :))
11:03:37 sander joins (~sander@user/sander)
11:04:00 jakalx joins (~jakalx@base.jakalx.net)
11:04:22 <CoolerX> maerwald[m]: what does this mean? build-depends: base ^>=4.14.3.0
11:04:22 <CoolerX> , directory
11:04:31 <CoolerX> what is base and directory?
11:04:48 <CoolerX> what does ^>= mean?
11:05:24 × causal quits (~user@50.35.83.177) (Quit: WeeChat 3.5)
11:05:38 <maerwald[m]> https://cabal.readthedocs.io/en/stable/cabal-package.html
11:06:14 <maerwald[m]> That's the caret operator explained here https://cabal.readthedocs.io/en/stable/cabal-package.html#pkg-field-build-depends
11:06:50 <maerwald[m]> ^>= x.y.z.u == >= x.y.z && < x.(y+1)
11:07:10 × raym quits (~raym@user/raym) (Ping timeout: 240 seconds)
11:10:37 Kevin578 joins (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net)
11:13:28 raym joins (~raym@user/raym)
11:16:24 × Kevin578 quits (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) (Ping timeout: 246 seconds)
11:28:24 jakalx parts (~jakalx@base.jakalx.net) ()
11:30:38 jakalx joins (~jakalx@base.jakalx.net)
11:32:31 titibandit joins (~thibaut@xdsl-87-78-253-243.nc.de)
11:38:54 Kevin578 joins (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net)
11:46:19 × Kevin578 quits (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) (Ping timeout: 258 seconds)
11:48:16 × yosef` quits (~user@user/yosef/x-2947716) (Quit: ERC (IRC client for Emacs 28.0.50))
11:50:04 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
11:58:14 × CoolerX quits (~user@user/coolerx) (Ping timeout: 244 seconds)
11:59:29 acidjnk joins (~acidjnk@p200300d0c7068b769182d16d5e27fb19.dip0.t-ipconnect.de)
12:06:13 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
12:07:42 CoolerX joins (~user@user/coolerx)
12:15:57 unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
12:19:06 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
12:20:53 lyle joins (~lyle@104.246.145.85)
12:23:12 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
12:30:12 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
12:32:24 kuribas joins (~user@ptr-17d51en0oz3ua6p75jh.18120a2.ip6.access.telenet.be)
12:32:50 Kevin578 joins (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net)
12:34:01 jakalx parts (~jakalx@base.jakalx.net) ()
12:35:01 jakalx joins (~jakalx@base.jakalx.net)
12:37:14 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c)
12:41:13 × Kevin578 quits (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) (Ping timeout: 256 seconds)
12:41:35 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) (Ping timeout: 260 seconds)
12:43:02 Kevin578 joins (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net)
12:43:45 user1 joins (~user@188.253.237.216)
12:45:54 × CoolerX quits (~user@user/coolerx) (Ping timeout: 276 seconds)
12:46:15 user1 parts (~user@188.253.237.216) ()
12:51:15 × Kevin578 quits (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) (Ping timeout: 246 seconds)
13:03:02 Kevin578 joins (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net)
13:11:54 × Kevin578 quits (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) (Ping timeout: 276 seconds)
13:12:46 Kevin578 joins (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net)
13:21:30 acidjnk_new joins (~acidjnk@p200300d0c7068b766488324a9f98d1f8.dip0.t-ipconnect.de)
13:25:02 × acidjnk quits (~acidjnk@p200300d0c7068b769182d16d5e27fb19.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
13:25:21 × siers quits (~ij@user/ij) (Quit: ZNC 1.8.2 - https://znc.in)
13:27:20 × acidjnk_new quits (~acidjnk@p200300d0c7068b766488324a9f98d1f8.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
13:27:24 siers joins (~ij@user/ij)
13:30:27 × Kevin578 quits (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) (Ping timeout: 246 seconds)
13:33:13 chomwitt joins (~chomwitt@2a02:587:dc0e:3e00:fb69:f691:39d4:dfaa)
13:35:52 unclechu joins (~unclechu@2001:470:69fc:105::354)
13:36:49 × odnes_ quits (~odnes@5-203-225-191.pat.nym.cosmote.net) (Quit: Leaving)
13:37:29 Pickchea joins (~private@user/pickchea)
13:41:31 × lyle quits (~lyle@104.246.145.85) (Quit: WeeChat 3.5)
13:42:05 × AlexZenon quits (~alzenon@178.34.151.152) (Ping timeout: 258 seconds)
13:42:42 × Alex_test quits (~al_test@178.34.151.152) (Ping timeout: 246 seconds)
13:43:31 Alex_test joins (~al_test@178.34.151.152)
13:43:44 AlexZenon joins (~alzenon@178.34.151.152)
13:46:13 nate3 joins (~nate@98.45.169.16)
13:50:16 dsrt^ joins (~dsrt@128-092-183-014.biz.spectrum.com)
13:50:47 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
13:58:23 epolanski joins (uid312403@id-312403.helmsley.irccloud.com)
14:02:50 × siers quits (~ij@user/ij) (Quit: ZNC 1.8.2 - https://znc.in)
14:11:26 acidjnk_new joins (~acidjnk@p200300d0c7068b76557c5ebe21773c19.dip0.t-ipconnect.de)
14:13:04 siers joins (~ij@user/ij)
14:13:08 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 258 seconds)
14:23:10 × dsrt^ quits (~dsrt@128-092-183-014.biz.spectrum.com) (Ping timeout: 240 seconds)
14:25:37 dsrt^ joins (~dsrt@128-092-183-014.biz.spectrum.com)
14:30:22 dcleonarski joins (~user@2804:d51:4704:e400:680:84d0:9355:7c5b)
14:30:40 × dsrt^ quits (~dsrt@128-092-183-014.biz.spectrum.com) (Ping timeout: 272 seconds)
14:34:32 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
14:35:00 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
14:35:33 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
14:38:18 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c)
14:41:51 × sebastiandb quits (~sebastian@pool-108-18-101-17.washdc.fios.verizon.net) (Ping timeout: 246 seconds)
14:42:32 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) (Ping timeout: 244 seconds)
14:51:19 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 244 seconds)
14:52:50 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
14:53:57 × Pickchea quits (~private@user/pickchea) (Ping timeout: 276 seconds)
14:54:30 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
15:01:15 × titibandit quits (~thibaut@xdsl-87-78-253-243.nc.de) (Quit: Leaving.)
15:10:06 × shapr quits (~user@pool-173-73-44-186.washdc.fios.verizon.net) (Ping timeout: 250 seconds)
15:24:42 × chomwitt quits (~chomwitt@2a02:587:dc0e:3e00:fb69:f691:39d4:dfaa) (Ping timeout: 260 seconds)
15:24:57 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c)
15:29:36 zebrag joins (~chris@user/zebrag)
15:34:56 × acidsys quits (~crameleon@2a03:4000:6:b666:6666::) (Changing host)
15:34:56 acidsys joins (~crameleon@openSUSE/member/crameleon)
15:35:30 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
15:37:45 × dcleonarski quits (~user@2804:d51:4704:e400:680:84d0:9355:7c5b) (Ping timeout: 260 seconds)
15:41:48 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) (Remote host closed the connection)
15:48:23 nate3 joins (~nate@98.45.169.16)
15:52:50 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
15:53:53 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c)
15:57:17 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
16:01:36 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
16:05:20 azimut joins (~azimut@gateway/tor-sasl/azimut)
16:07:25 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
16:08:02 titibandit joins (~thibaut@xdsl-87-78-253-243.nc.de)
16:23:00 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 246 seconds)
16:24:10 DNH joins (~DNH@2a02:8108:1100:16d8:4803:3ca5:63c4:4e9f)
16:26:48 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) (Remote host closed the connection)
16:27:04 eggplantade joins (~Eggplanta@108.201.191.115)
16:28:58 <Bulby[m]> How would I represent native functions in my interpreter in a Showable way?
16:29:01 <Bulby[m]> because using a haskell function doesn't wokr
16:29:36 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 258 seconds)
16:33:08 Guest12 joins (~Guest12@2605:a601:a615:f600:eda9:6b28:bfe6:17d8)
16:33:51 × dolio quits (~dolio@130.44.130.54) (Quit: ZNC 1.8.2 - https://znc.in)
16:34:20 <Guest12> I'm about to submit a proposal to make `$` fully levity polymorphic, but I'm still not 100% on the proposals process. Should the `0000` in the name of the proposal be change to something else?
16:35:08 <Guest12> (This is for ghc-proposals on Github.)
16:35:38 dolio joins (~dolio@130.44.130.54)
16:36:19 <Guest12> (The change is just `($) :: forall ra rb. (a :: TYPE ra) (b :: TYPE rb). (a -> b) -> a -> b ; ($) f = f`.)
16:37:27 × eggplantade quits (~Eggplanta@108.201.191.115) (Remote host closed the connection)
16:37:41 coot joins (~coot@213.134.190.95)
16:38:02 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c)
16:40:41 <Guest12> Guess I'll just submit it and see what happens.
16:40:48 × Guest12 quits (~Guest12@2605:a601:a615:f600:eda9:6b28:bfe6:17d8) (Quit: Client closed)
16:42:33 abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
16:42:57 × coot quits (~coot@213.134.190.95) (Quit: coot)
16:43:40 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
16:45:28 <Bulby[m]> how does polysemy reinterpret work? does it mean I can use the things of the reinterpreted?
17:04:06 justsomeguy joins (~justsomeg@user/justsomeguy)
17:07:43 × Alleria quits (~textual@user/alleria) (Read error: Connection reset by peer)
17:08:47 Alleria joins (~textual@user/alleria)
17:09:26 × Alleria quits (~textual@user/alleria) (Client Quit)
17:11:15 random-jellyfish joins (~random-je@user/random-jellyfish)
17:16:55 dsrt^ joins (~dsrt@128-092-183-014.biz.spectrum.com)
17:20:30 econo joins (uid147250@user/econo)
17:24:02 stackdroid18 joins (14094@user/stackdroid)
17:25:31 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
17:25:42 × fr-isotope quits (uid556229@id-556229.ilkley.irccloud.com) (Quit: Connection closed for inactivity)
17:26:34 wayfaster joins (~wayfaster@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
17:27:52 × foul_owl quits (~kerry@23.82.194.93) (Ping timeout: 244 seconds)
17:33:27 Topsi joins (~Topsi@dyndsl-095-033-023-170.ewe-ip-backbone.de)
17:37:36 × random-jellyfish quits (~random-je@user/random-jellyfish) (Quit: Client closed)
17:40:37 <maerwald> is useAsCString/peekCString safe under unsafeDupablePerformIO?
17:42:34 <c_wraith> if you're not mutating it, I'd expect it to be completely safe. If you are mutating it, things might get weird depending on some factors.
17:42:41 × cheater quits (~Username@user/cheater) (Ping timeout: 256 seconds)
17:43:08 foul_owl joins (~kerry@71.212.150.111)
17:43:13 cheater joins (~Username@user/cheater)
17:43:41 <maerwald> It's literally: useAsCString bs $ \cstr -> peekCString utf8 cstr
17:43:50 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) (Remote host closed the connection)
17:44:07 <maerwald> I don't think those mutate
17:45:52 <maerwald> unsafeDupablePerformIO says that bracket inside is unsafe
17:46:10 <maerwald> useAsCString also frees up the cstr after termination of the inner function or when an exception is raised
17:46:16 <maerwald> so it seems unsafe to me
17:46:25 <maerwald> could lead to the cstr not being freed up
17:46:49 <maerwald> "It may even happen that one of the duplicated IO actions is only run partially, and then interrupted in the middle without an exception being raised."
17:51:27 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c)
17:52:22 <c_wraith> ah, yes. that's a problem
17:52:30 <c_wraith> in the memory leak side
17:54:57 <geekosaur> I don't think I see why: it's just giving you a Ptr CChar pointing at the innards of a ByteString, right? not sure this can even leak in a way that can escape gc
17:55:02 <justsomeguy> I'll be traveling through Ireland and the UK soon, and am thinking of looking for in-person Haskell meetups along the way. Are there any big ones around there?
17:55:52 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Read error: Connection reset by peer)
17:56:45 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
17:57:53 justsomeguy is tempted to check out University of Glasgow on his way
17:58:08 <maerwald> geekosaur: I'm working with ShortByteString
17:58:13 <maerwald> so there's an allocation
17:58:57 <geekosaur> is useAsCString safe in that case at all? the original version assumed ByteString which is pinned
17:59:18 <geekosaur> would nbeed to be redesigned to prevent a ShortByteString from being gced/moved
18:00:56 <maerwald> https://hackage.haskell.org/package/bytestring-0.11.3.1/docs/Data-ByteString-Short-Internal.html#v:useAsCString
18:01:46 <geekosaur> yeh, that sounds unsafe
18:02:16 <maerwald> geekosaur: shortbytestring is unpinned memory
18:03:08 <geekosaur[m]> Yes, I know
18:03:13 <maerwald> so what is unsafe here
18:04:43 odnes joins (~odnes@5-203-234-138.pat.nym.cosmote.net)
18:05:22 × raym quits (~raym@user/raym) (Ping timeout: 272 seconds)
18:05:42 <geekosaur[m]> The copy it makes can fail to be collected in the case where unsafeDupablePerformIO is aborted as you said earlier, without an exception
18:05:49 raym joins (~raym@user/raym)
18:06:01 <maerwald> yeah, I thought you're saying it's unsafe outside of unsafeDupablePerformIO
18:07:29 × odnes quits (~odnes@5-203-234-138.pat.nym.cosmote.net) (Remote host closed the connection)
18:07:51 odnes joins (~odnes@5-203-234-138.pat.nym.cosmote.net)
18:08:34 × odnes quits (~odnes@5-203-234-138.pat.nym.cosmote.net) (Remote host closed the connection)
18:08:55 odnes joins (~odnes@5-203-234-138.pat.nym.cosmote.net)
18:09:26 Guest88 joins (~Guest88@77-170-226-23.fixed.kpn.net)
18:09:40 × odnes quits (~odnes@5-203-234-138.pat.nym.cosmote.net) (Remote host closed the connection)
18:09:58 <maerwald> that would mean I introduced a bug to bytestring, so my heart stopped for a second :D
18:10:00 odnes joins (~odnes@5-203-234-138.pat.nym.cosmote.net)
18:10:34 × odnes quits (~odnes@5-203-234-138.pat.nym.cosmote.net) (Remote host closed the connection)
18:10:54 odnes joins (~odnes@5-203-234-138.pat.nym.cosmote.net)
18:11:20 × odnes quits (~odnes@5-203-234-138.pat.nym.cosmote.net) (Read error: Connection reset by peer)
18:11:41 odnes joins (~odnes@5-203-234-138.pat.nym.cosmote.net)
18:12:21 × Guest88 quits (~Guest88@77-170-226-23.fixed.kpn.net) (Client Quit)
18:12:57 × odnes quits (~odnes@5-203-234-138.pat.nym.cosmote.net) (Remote host closed the connection)
18:13:15 odnes joins (~odnes@5-203-234-138.pat.nym.cosmote.net)
18:13:31 Kevin578 joins (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net)
18:22:00 <geekosaur> no, I was answering your original question which was about using it in unsafeDupablePerformIO
18:22:24 <geekosaur> if it were unsafe in general one would have to ask why it existed and didn;t have a bunch of warnings on it
18:25:16 <c_wraith> the fact that bracket doesn't work inside unsafeDupablePerformIO is a big footgun. I understand why, but I wouldn't have predicted it.
18:26:56 shapr joins (~user@pool-173-73-44-186.washdc.fios.verizon.net)
18:27:25 × stackdroid18 quits (14094@user/stackdroid) (Quit: hasta la vista... tchau!)
18:27:59 × epolanski quits (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
18:28:40 stackdroid18 joins (14094@user/stackdroid)
18:31:34 <maerwald> can `newCString` fail? (the encoding part from String to ShortByteString)
18:31:40 <maerwald> should be total, right?
18:32:13 <maerwald> on the other hand, custom TextEncoding's could do whatever
18:33:02 Alleria joins (~textual@user/alleria)
18:33:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
18:33:29 <maerwald> I guess the ones provided by GHC.IO.Encoding should be total
18:36:31 <hpc> that's just the encoding being total or partial then
18:36:36 <hpc> like how ($) is total
18:36:55 <maerwald> yeah
18:39:32 × AkechiShiro quits (~licht@user/akechishiro) (Quit: WeeChat 3.2.1)
18:39:41 notzmv joins (~zmv@user/notzmv)
18:40:25 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
18:41:19 AkechiShiro joins (~licht@user/akechishiro)
18:42:55 Sgeo joins (~Sgeo@user/sgeo)
18:44:33 × odnes quits (~odnes@5-203-234-138.pat.nym.cosmote.net) (Remote host closed the connection)
18:44:48 odnes joins (~odnes@5-203-234-138.pat.nym.cosmote.net)
18:45:37 alp joins (~alp@user/alp)
18:54:40 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4)
18:54:46 × odnes quits (~odnes@5-203-234-138.pat.nym.cosmote.net) (Read error: Connection reset by peer)
18:58:18 <Bulby[m]> `coerce @(HM.HashMap T.Text LoxValue) @LxEnv (HM.insert k v)` why is coerce being mean ☹️
18:58:26 <Bulby[m]> i am not in the mood to write out a full type signature
18:58:43 <Bulby[m]> LxEnv is a newtype around a hashmap
18:59:30 <geekosaur> coerce is magical, I'm not sure you get to TypeApplications it
18:59:43 <Bulby[m]> ☹️
19:00:02 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
19:00:16 <Bulby[m]> oh, the context is enough for coerce to understand LOL
19:00:19 <geekosaur> if the typechecker can't determine that it's a newtype itself, it'll reject it as unsound
19:01:41 dcleonarski joins (~user@2804:d51:4704:e400:680:84d0:9355:7c5b)
19:05:00 nate3 joins (~nate@98.45.169.16)
19:10:18 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds)
19:11:00 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
19:12:21 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
19:21:43 azimut_ joins (~azimut@gateway/tor-sasl/azimut)
19:22:34 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
19:24:24 × Topsi quits (~Topsi@dyndsl-095-033-023-170.ewe-ip-backbone.de) (Ping timeout: 258 seconds)
19:25:29 chomwitt joins (~chomwitt@2a02:587:dc0e:3e00:ff2b:b7c:b12a:ef6f)
19:25:46 Topsi joins (~Topsi@dyndsl-095-033-023-170.ewe-ip-backbone.de)
19:28:05 × hololeap quits (~quassel@user/hololeap) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
19:28:23 Oiyqlk joins (~IceChat95@2804:d45:88b7:6700:bccb:9701:17fa:48f)
19:31:30 × dsrt^ quits (~dsrt@128-092-183-014.biz.spectrum.com) (Ping timeout: 272 seconds)
19:33:31 hololeap joins (~quassel@user/hololeap)
19:35:10 Oiyqlk parts (~IceChat95@2804:d45:88b7:6700:bccb:9701:17fa:48f) ()
19:44:34 pavonia joins (~user@user/siracusa)
19:46:19 odnes joins (~odnes@5-203-234-138.pat.nym.cosmote.net)
19:47:02 slack1256 joins (~slack1256@186.11.17.226)
19:58:14 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
19:58:44 × slack1256 quits (~slack1256@186.11.17.226) (Ping timeout: 244 seconds)
19:59:48 dsrt^ joins (~dsrt@128-092-183-014.biz.spectrum.com)
20:09:57 × AkechiShiro quits (~licht@user/akechishiro) (Quit: WeeChat 3.5)
20:11:30 × Topsi quits (~Topsi@dyndsl-095-033-023-170.ewe-ip-backbone.de) (Read error: Connection reset by peer)
20:11:48 AkechiShiro joins (~licht@user/akechishiro)
20:19:26 _xor joins (~xor@72.49.198.103)
20:28:33 × _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
20:34:04 × azimut_ quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
20:37:08 azimut joins (~azimut@gateway/tor-sasl/azimut)
20:38:44 fr-isotope joins (uid556229@id-556229.ilkley.irccloud.com)
20:41:43 × adium quits (adium@user/adium) (Quit: Stable ZNC by #bnc4you)
20:43:13 × stackdroid18 quits (14094@user/stackdroid) (Quit: hasta la vista... tchau!)
20:58:54 trisolaran joins (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
21:01:58 × alp quits (~alp@user/alp) (Ping timeout: 250 seconds)
21:06:43 nate3 joins (~nate@98.45.169.16)
21:07:56 × cosimone quits (~user@2001:b07:ae5:db26:57c7:21a5:6e1c:6b81) (Remote host closed the connection)
21:11:04 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 244 seconds)
21:12:11 fetsorn joins (~fetsorn@46.71.112.209)
21:12:58 cosimone joins (~user@2001:b07:ae5:db26:57c7:21a5:6e1c:6b81)
21:14:03 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
21:14:26 azimut joins (~azimut@gateway/tor-sasl/azimut)
21:14:38 × dextaa quits (~DV@user/dextaa) (Read error: Connection reset by peer)
21:15:36 × fetsorn quits (~fetsorn@46.71.112.209) (Client Quit)
21:16:51 dextaa joins (~DV@user/dextaa)
21:17:08 × Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
21:17:59 Topsi joins (~Topsi@dyndsl-095-033-023-170.ewe-ip-backbone.de)
21:18:47 fetsorn joins (~fetsorn@46.71.112.209)
21:20:44 adium joins (adium@user/adium)
21:22:38 × fetsorn quits (~fetsorn@46.71.112.209) (Remote host closed the connection)
21:23:31 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
21:24:23 × unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 258 seconds)
21:26:20 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.5)
21:26:56 × takuan quits (~takuan@178.116.218.225) (Remote host closed the connection)
21:27:23 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
21:29:47 <Bulby[m]> in unordered containers, is the representation of lazy vs strict the same?
21:30:08 <Bulby[m]> because when switching from strict to lazy it didn't throw a temper tantrum when they mismatched
21:30:46 × dextaa quits (~DV@user/dextaa) (Read error: Connection reset by peer)
21:31:06 <geekosaur> looks like yes
21:31:51 <geekosaur> both use Data.Hash*.Internal. Data.Map is similar, the operations differ but the representation is the same
21:31:53 <Bulby[m]> hm, switching to lazy didn't fix my issue
21:32:08 <geekosaur> what's your issue?
21:32:33 dextaa joins (~DV@user/dextaa)
21:32:43 × odnes quits (~odnes@5-203-234-138.pat.nym.cosmote.net) (Quit: Leaving)
21:33:20 <Bulby[m]> so the closure in my interpreter is being weird...
21:33:20 <Bulby[m]> `fun foo(a) { if (a == 0) then return; else foo(a - 1); }` works
21:33:21 <Bulby[m]> but
21:33:30 <Bulby[m]> ```
21:33:30 × zebrag quits (~chris@user/zebrag) (Ping timeout: 240 seconds)
21:33:41 <geekosaur> also remember that the keys will always be strict because they have to be hashed and compared for anything to happen
21:33:46 <Bulby[m]> `fun bar() { var i = 1; fun foo() { print i;} return foo; } bar()();` does not
21:33:50 zebrag joins (~chris@user/zebrag)
21:34:03 <Bulby[m]> oh I don't care about keys
21:34:03 <Bulby[m]> this is the silly recursive stuff again
21:34:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
21:34:13 <Bulby[m]> https://github.com/TheDrawingCoder-Gamer/lox-hs/blob/master/src/Lox/Evaluate.hs#L40-L43
21:34:43 <Bulby[m]> the closure captures the function itself but not surronding variables
21:34:43 <Bulby[m]> which is odd
21:35:12 <Bulby[m]> (btw, it's now represented as [LxEnv] and not LxEnv)
21:36:15 <Bulby[m]> it tells me it fails to fetch it
21:36:28 <Bulby[m]> wait, idea for printing
21:36:34 <Bulby[m]> i could print out just the keys
21:37:43 <geekosaur> the closure should include the entire `[LxEnv]` from when it was created, not rely on the state (where the `LxEnv`s from both `foo` and `bar` will have been discarded)
21:38:26 <geekosaur> discarded by the time you call the `foo` returned by `bar`, that is
21:38:47 <Bulby[m]> it does now, right? `get` returns `[LxEnv]`
21:39:13 <Bulby[m]> i made a new polysemy effect
21:39:31 <Bulby[m]> that is basically a stack state
21:41:27 <Bulby[m]> https://github.com/TheDrawingCoder-Gamer/lox-hs/blob/master/src/Polysemy/StackState.hs this is that effect
21:44:40 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
21:45:28 × chomwitt quits (~chomwitt@2a02:587:dc0e:3e00:ff2b:b7c:b12a:ef6f) (Ping timeout: 258 seconds)
21:45:57 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
21:47:48 <geekosaur> not seeing anything that jumps out at me as wrong , but I'm among other things not very familiar with polysemy
21:48:29 <Bulby[m]> how would I go about debugging it?
21:51:09 <geekosaur> on function entry print out the full state stack; on defining a function print out the state that's being captured with it. note that if you actually went with static instead of dynamic scope, you may not have the full state at definition time (this is why static is harder than dynamic, although it's saner once you get it to work)
21:51:55 <geekosaur> also make sure "running" the `var` declaration adds it to the right state/scope
21:52:38 <Bulby[m]> I did go static I think, which is what `getAt` and `assignAt` is
21:54:33 jmdaemon joins (~jmdaemon@user/jmdaemon)
21:56:11 _73 joins (~user@pool-173-76-102-248.bstnma.fios.verizon.net)
21:57:20 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
22:00:45 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
22:06:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
22:06:41 <Bulby[m]> printing, I realize that the internal function isn't initialized until ran
22:08:05 × acidjnk_new quits (~acidjnk@p200300d0c7068b76557c5ebe21773c19.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
22:08:43 <Bulby[m]> 😱
22:08:50 <Bulby[m]> the issue was enviroments and scopes weren't lining up
22:09:25 <Bulby[m]> there was no `enterBlock` or `exitBlock` around the function, which confused it
22:11:03 <Bulby[m]> so now it runs
22:11:08 × _73 quits (~user@pool-173-76-102-248.bstnma.fios.verizon.net) (Remote host closed the connection)
22:11:09 <Bulby[m]> next task - convert the java test suite to haskell 😄
22:17:58 zebrag joins (~chris@user/zebrag)
22:18:40 nate3 joins (~nate@98.45.169.16)
22:19:23 machinedgod joins (~machinedg@209.171.85.74)
22:21:08 × matijja quits (~matijja@193.77.181.201) (Quit: ZNC 1.8.2 - https://znc.in)
22:22:10 matijja joins (~matijja@193.77.181.201)
22:22:33 calleum_ joins (~calleum@user/calleum)
22:23:04 × calleum_ quits (~calleum@user/calleum) (Max SendQ exceeded)
22:23:34 calleum_ joins (~calleum@user/calleum)
22:23:55 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) (Remote host closed the connection)
22:24:37 × quintasan quits (~quassel@quintasan.pl) (Quit: No Ping reply in 180 seconds.)
22:25:56 quintasan joins (~quassel@quintasan.pl)
22:28:49 × titibandit quits (~thibaut@xdsl-87-78-253-243.nc.de) (Remote host closed the connection)
22:31:01 <EvanR> another "wall of incomplete dysfunctional imperative programming" in #haskell xD
22:31:07 × dcleonarski quits (~user@2804:d51:4704:e400:680:84d0:9355:7c5b) (Ping timeout: 260 seconds)
22:31:14 <Bulby[m]> sorry
22:31:32 × DNH quits (~DNH@2a02:8108:1100:16d8:4803:3ca5:63c4:4e9f) (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:32:57 alp joins (~alp@user/alp)
22:33:27 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
22:35:45 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds)
22:35:58 × dextaa quits (~DV@user/dextaa) (Read error: Connection reset by peer)
22:37:02 × wayfaster quits (~wayfaster@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 252 seconds)
22:38:47 dextaa joins (~DV@user/dextaa)
22:39:15 nate3 joins (~nate@98.45.169.16)
22:42:44 causal joins (~user@50.35.83.177)
22:53:35 × hueso quits (~root@user/hueso) (Ping timeout: 255 seconds)
22:54:14 hueso joins (~root@user/hueso)
22:56:44 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 255 seconds)
22:58:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
22:58:38 <Bulby[m]> hm, I don't know how to edit the closure, as I don't know where to define
22:59:50 × machinedgod quits (~machinedg@209.171.85.74) (Ping timeout: 240 seconds)
23:00:20 × trisolaran quits (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 255 seconds)
23:01:08 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
23:02:10 moonsheep joins (~user@user/moonsheep)
23:02:32 moonsheep parts (~user@user/moonsheep) ()
23:10:18 moonsheep joins (~user@user/moonsheep)
23:10:25 moonsheep parts (~user@user/moonsheep) (ERC 5.4 (IRC client for GNU Emacs 28.1))
23:20:11 king_gs joins (~Thunderbi@2806:103e:29:ce73:832b:2b9c:b188:29da)
23:20:12 × king_gs quits (~Thunderbi@2806:103e:29:ce73:832b:2b9c:b188:29da) (Client Quit)
23:24:16 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a007:efa3:2690:a05d)
23:28:52 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:a007:efa3:2690:a05d) (Ping timeout: 250 seconds)
23:31:38 <Bulby[m]> nvm, with some wizardry it is possible
23:36:18 × dsrt^ quits (~dsrt@128-092-183-014.biz.spectrum.com) (Ping timeout: 246 seconds)
23:41:11 <Bulby[m]> oh, the repl also seems to be incapable of carrying over vars
23:41:54 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
23:43:12 <geekosaur> repls are complicated
23:44:13 <Bulby[m]> it's weird, if it's all on one line it works fine, otherwise it gives up
23:44:44 nate3 joins (~nate@98.45.169.16)
23:44:49 <geekosaur> ghci behaves like that under some circumstances
23:45:14 <geekosaur> scoping is also more complicated in a repl than in a program, usually
23:45:29 <Bulby[m]> yeah, which is why it's having issues
23:45:39 <hpc> use :{ and :} for multi-line inputs
23:45:41 <hpc> or a file
23:45:47 <geekosaur> this is a Lox repl
23:45:52 <hpc> ah
23:46:00 <geekosaur> I was just using ghci as a comparison of the issues that come up in a repl
23:46:13 <Bulby[m]> and yes, `:{` and `:}` are multiline commands
23:47:00 <Bulby[m]> it's probably even more problematic than ghci because at least haskell is functional
23:47:12 × dkeohane3 quits (~dkeohane@ec2-18-189-29-140.us-east-2.compute.amazonaws.com) (Quit: WeeChat 2.3)
23:47:55 <geekosaur> another issue that will come up is if the user redefines something (in particular, a variable)
23:48:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
23:48:05 <geekosaur> because you may have functions that close over the old definition
23:48:16 <Bulby[m]> WAIT
23:48:21 <geekosaur> do you discard them? do you let them keep it alive but inaccessible?
23:48:24 <Bulby[m]> OH
23:49:01 <Bulby[m]> that's going to be a headache
23:49:08 <geekosaur> yep
23:49:30 <Bulby[m]> >>> fun foo() { var i = 0; fun bar() { print i = i + 1; } return bar; } var baz = foo(); baz(); baz();
23:49:32 <Bulby[m]> 1.0
23:49:34 <Bulby[m]> 1.0
23:49:37 <geekosaur> ghci lets such functions keep the old definition alive
23:49:38 <Bulby[m]> oops
23:49:41 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 244 seconds)
23:49:42 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
23:49:43 <Bulby[m]> i made multiple oopsies
23:49:54 <Bulby[m]> fun foo() { var i = 0; fun bar() { print i = i + 1; } return bar; } var baz = foo(); baz(); baz();
23:49:56 <Bulby[m]> 1.0
23:49:58 <Bulby[m]> 2.0
23:50:00 <Bulby[m]> that works
23:50:02 <Bulby[m]> but then
23:51:04 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
23:51:04 <Bulby[m]> "it works, why"
23:51:10 <Bulby[m]> it wasn't working earlier
23:51:14 <Bulby[m]> I give up
23:51:48 <Bulby[m]> i fail to understand why it works now
23:53:01 <Bulby[m]> also, that is an interesting way to write a counter
23:53:09 <Bulby[m]> I wonder if that works in other imperative langs
23:54:39 <geekosaur> enough that it's a known way to keep a counter that can't be interfered with from outside
23:55:06 <Bulby[m]> really? that's cool! I can't believe I didn't know that
23:55:53 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 244 seconds)
23:58:46 × Topsi quits (~Topsi@dyndsl-095-033-023-170.ewe-ip-backbone.de) (Ping timeout: 250 seconds)
23:59:26 <Bulby[m]> my solution for closures probably won't work if it can't deduce an identifier

All times are in UTC on 2022-06-05.