Home liberachat/#haskell: Logs Calendar

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

00:09:43 mixfix41 joins (~sdenynine@user/mixfix41)
00:20:40 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
00:23:01 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Remote host closed the connection)
00:23:02 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds)
00:24:02 × TonyStone31 quits (~TonyStone@2603-7080-8607-c36a-a177-c39b-f0e5-4ebe.res6.spectrum.com) (Ping timeout: 255 seconds)
00:36:34 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
00:37:24 TonyStone31 joins (~TonyStone@2603-7080-8607-c36a-a177-c39b-f0e5-4ebe.res6.spectrum.com)
00:41:05 × gurkenglas quits (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
00:41:57 × nahcetan quits (~nate@98.45.169.16) (Ping timeout: 246 seconds)
00:43:29 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
00:43:46 nahcetan joins (~nate@98.45.169.16)
00:45:11 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds)
00:45:54 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
00:54:39 stackdroid18 joins (~stackdroi@user/stackdroid)
00:54:50 × stackdroid18 quits (~stackdroi@user/stackdroid) (Client Quit)
00:55:02 × julian quits (~julian@20.83.116.49) (Killed (NickServ (GHOST command used by tos9_!~tos9@python/site-packages/Julian)))
00:55:05 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 255 seconds)
00:59:08 × TonyStone31 quits (~TonyStone@2603-7080-8607-c36a-a177-c39b-f0e5-4ebe.res6.spectrum.com) (Ping timeout: 255 seconds)
01:03:32 julian joins (~julian@20.83.116.49)
01:10:17 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:13:34 harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
01:16:23 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:17:47 <Bulby[m]> is there an expandable way of doing uncurry... I have a fun `a -> b -> c -> d` that I want to change to `(a, b, c) -> d`. is there a way to do this without using lambdas
01:20:52 <EvanR> :t uncurry3
01:20:54 <lambdabot> error:
01:20:54 <lambdabot> • Variable not in scope: uncurry3
01:20:54 <lambdabot> • Perhaps you meant ‘uncurry’ (imported from Data.Tuple)
01:21:03 <Bulby[m]> ...
01:21:12 nate3 joins (~nate@98.45.169.16)
01:21:20 <EvanR> well anyway
01:21:28 <EvanR> you can define it without a lambda
01:21:28 × gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
01:22:03 <Bulby[m]> how so
01:22:03 <EvanR> @hoogle uncurry3
01:22:04 <lambdabot> Data.Tuple.Extra uncurry3 :: (a -> b -> c -> d) -> (a, b, c) -> d
01:22:04 <lambdabot> Extra uncurry3 :: (a -> b -> c -> d) -> (a, b, c) -> d
01:22:04 <lambdabot> Control.Functor.HT uncurry3 :: Functor f => (f a -> f b -> f c -> g) -> f (a, b, c) -> g
01:22:26 <EvanR> uncurry3 f (x,y,z) = f x y z
01:22:41 <Bulby[m]> that's basically what my lambda does
01:22:56 <Bulby[m]> i was hoping for some applicative sorcery
01:23:02 <EvanR> it's precisely what your lambda does, and probably doesn't make a difference to performance
01:26:33 <EvanR> what you ask for is probably one step before the galaxy brain move of saying `uncurry3'
01:26:55 gentauro joins (~gentauro@user/gentauro)
01:27:03 <EvanR> (or rewriting everything to not use triples)
01:30:23 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds)
01:35:02 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 250 seconds)
01:44:02 <Bulby[m]> probably better choice - i made more data types instead 😁
01:50:04 neurodivergent joins (~neurodive@S01069050ca4e3573.cg.shawcable.net)
01:51:52 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 260 seconds)
01:52:00 andrey_ joins (~andrey@p200300dbcf301a00a39cb4b6a4c691d0.dip0.t-ipconnect.de)
01:52:44 liz_ is now known as liz
01:54:18 × andrey__ quits (~andrey@p200300dbcf0c6600f65a5485c0e2d33f.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
01:55:48 × bliminse quits (~bliminse@host86-164-169-5.range86-164.btcentralplus.com) (Ping timeout: 246 seconds)
01:57:56 bliminse joins (~bliminse@host86-132-158-77.range86-132.btcentralplus.com)
01:59:19 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
01:59:34 × liz quits (~liz@host86-159-158-175.range86-159.btcentralplus.com) (Quit: Lost terminal)
02:05:12 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
02:07:23 × qwedfg quits (~qwedfg@user/qwedfg) (Read error: Connection reset by peer)
02:07:51 img joins (~img@user/img)
02:12:56 nate3 joins (~nate@98.45.169.16)
02:14:23 qwedfg joins (~qwedfg@user/qwedfg)
02:16:31 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 244 seconds)
02:17:47 <Bulby[m]> half of my type errors are from using `$`
02:17:48 <Bulby[m]> wtf
02:20:23 × neurodivergent quits (~neurodive@S01069050ca4e3573.cg.shawcable.net) (Quit: Client closed)
02:20:26 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
02:20:49 × echoreply quits (~echoreply@45.32.163.16) (Ping timeout: 256 seconds)
02:21:10 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
02:21:14 echoreply joins (~echoreply@2001:19f0:9002:1f3b:5400:ff:fe6f:8b8d)
02:23:50 × td_ quits (~td@muedsl-82-207-238-121.citykom.de) (Ping timeout: 240 seconds)
02:24:10 <dsal> $ is the root of all evil
02:24:30 neurodivergent joins (~neurodive@S01069050ca4e3573.cg.shawcable.net)
02:24:49 × neurodivergent quits (~neurodive@S01069050ca4e3573.cg.shawcable.net) (Client Quit)
02:25:05 MsNeurodivergent joins (~MsNeurodi@S01069050ca4e3573.cg.shawcable.net)
02:25:07 × Topsi quits (~Topsi@dyndsl-095-033-023-128.ewe-ip-backbone.de) (Read error: Connection reset by peer)
02:25:55 td_ joins (~td@94.134.91.175)
02:28:35 × Benzi-Junior quits (~BenziJuni@dsl-149-64-179.hive.is) (Quit: ZNC 1.8.2 - https://znc.in)
02:32:33 × nahcetan quits (~nate@98.45.169.16) (Ping timeout: 246 seconds)
02:34:21 nate3 joins (~nate@98.45.169.16)
02:37:32 <MsNeurodivergent> hola.
02:39:12 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds)
02:47:24 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:47:24 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:47:24 finn_elija is now known as FinnElija
02:47:25 × terrorjack quits (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
02:47:29 × harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
02:48:42 terrorjack joins (~terrorjac@2a01:4f8:1c1e:509a::1)
02:49:22 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
02:51:08 × alp quits (~alp@user/alp) (Ping timeout: 244 seconds)
02:54:04 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 258 seconds)
02:57:11 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
03:02:43 Macbethwin joins (~chargen@D964062A.static.ziggozakelijk.nl)
03:03:24 Macbethwin is now known as EdwinV
03:20:34 nahcetan joins (~nate@98.45.169.16)
03:22:12 <Bulby[m]> hm, I still am having issues with recursive functions in my interpreter
03:22:43 <Bulby[m]> I can't define the function in the closure as the function itself holds the closure
03:25:03 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 246 seconds)
03:25:10 × nahcetan quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
03:37:33 motherfsck joins (~motherfsc@user/motherfsck)
03:39:57 mvk joins (~mvk@2607:fea8:5ce3:8500::ba9a)
03:40:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
03:46:50 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
03:51:51 littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
03:53:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
03:55:04 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
03:57:10 <EvanR> why the hell not
03:58:14 <Bulby[m]> i don't know 😭
04:01:03 calleum_ joins (~calleum@user/calleum)
04:01:33 notzmv joins (~zmv@user/notzmv)
04:08:43 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
04:09:06 <Axman6> Bulby[m]: if you don't share code, we can;t help you
04:10:35 <Bulby[m]> https://github.com/TheDrawingCoder-Gamer/lox-hs/blob/master/src/Lox/Evaluate.hs#L34-L38
04:11:16 <Bulby[m]> I define the name, then assign it... however that assignment fetches the env that still has it as null
04:13:16 zincy joins (~zincy@host86-160-236-152.range86-160.btcentralplus.com)
04:17:00 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Read error: Connection reset by peer)
04:18:30 × zincy quits (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Ping timeout: 276 seconds)
04:19:27 <Bulby[m]> it's midnight where I live
04:19:30 <Bulby[m]> i need sleep
04:21:25 cosimone joins (~user@93-44-186-171.ip98.fastwebnet.it)
04:22:38 × cosimone quits (~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection)
04:24:34 × littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
04:31:04 vysn joins (~vysn@user/vysn)
04:31:32 EdwinV is now known as dorment
04:36:55 mbuf joins (~Shakthi@223.190.209.89)
04:40:48 cosimone joins (~user@93-44-186-171.ip98.fastwebnet.it)
04:48:19 takuan joins (~takuan@178-116-218-225.access.telenet.be)
04:50:51 Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net)
04:53:28 odnes joins (~odnes@5-203-183-6.pat.nym.cosmote.net)
05:01:41 × raym quits (~raym@user/raym) (Ping timeout: 255 seconds)
05:02:27 raym joins (~raym@user/raym)
05:06:22 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
05:09:22 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
05:14:22 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Ping timeout: 258 seconds)
05:19:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
05:22:21 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
05:31:08 × MsNeurodivergent quits (~MsNeurodi@S01069050ca4e3573.cg.shawcable.net) (Quit: Client closed)
05:32:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
05:32:47 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
05:46:38 agumonkey joins (~user@88.163.231.79)
05:52:40 × dorment quits (~chargen@D964062A.static.ziggozakelijk.nl) (Quit: suicide)
05:54:04 coot joins (~coot@213.134.190.95)
05:55:01 × califax quits (~califax@user/califx) (Remote host closed the connection)
05:56:02 califax joins (~califax@user/califx)
05:59:45 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 246 seconds)
06:09:34 vglfr joins (~vglfr@46.96.133.194)
06:11:27 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
06:11:59 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
06:15:00 × agumonkey quits (~user@88.163.231.79) (Remote host closed the connection)
06:15:31 agumonkey joins (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7)
06:16:23 × mvk quits (~mvk@2607:fea8:5ce3:8500::ba9a) (Ping timeout: 255 seconds)
06:19:21 acidjnk joins (~acidjnk@p200300d0c7068b53cc85b297155bdc13.dip0.t-ipconnect.de)
06:26:28 nate3 joins (~nate@98.45.169.16)
06:29:56 trisolaran joins (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
06:31:41 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 255 seconds)
06:35:48 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 246 seconds)
06:38:53 × bilegeek quits (~bilegeek@2600:1008:b01f:31f8:a3e:b12c:dd8e:8844) (Ping timeout: 255 seconds)
06:43:35 bilegeek joins (~bilegeek@130.sub-174-208-235.myvzw.com)
06:51:11 motherfsck joins (~motherfsc@user/motherfsck)
07:01:07 × vysn quits (~vysn@user/vysn) (Ping timeout: 240 seconds)
07:03:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
07:08:08 × trisolaran quits (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 255 seconds)
07:09:24 _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl)
07:12:04 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
07:14:06 Guest65 joins (~Guest65@2401:4900:1cc8:d1a4:12b1:2835:4df7:99b6)
07:14:26 gehmehgeh joins (~user@user/gehmehgeh)
07:17:06 littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
07:19:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
07:24:53 nate3 joins (~nate@98.45.169.16)
07:25:34 × littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
07:27:53 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
07:28:50 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
07:31:48 × rembo10 quits (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
07:32:40 rembo10 joins (~rembo10@main.remulis.com)
07:44:57 × Guest65 quits (~Guest65@2401:4900:1cc8:d1a4:12b1:2835:4df7:99b6) (Quit: Guest65)
07:45:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
07:47:56 × causal quits (~user@50.35.83.177) (Quit: WeeChat 3.5)
07:55:10 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
07:57:06 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:8199:e7da:e3d1:110) (Remote host closed the connection)
08:03:39 × jinsun__ quits (~jinsun@user/jinsun) (Read error: Connection reset by peer)
08:06:29 jinsun joins (~jinsun@user/jinsun)
08:07:05 benin2 joins (~benin@183.82.178.172)
08:08:35 × benin quits (~benin@183.82.27.240) (Ping timeout: 252 seconds)
08:08:36 benin2 is now known as benin
08:11:25 littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
08:13:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
08:23:34 × littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
08:25:13 × bilegeek quits (~bilegeek@130.sub-174-208-235.myvzw.com) (Quit: Leaving)
08:26:25 × _xor quits (~xor@72.49.198.103) (Quit: brb)
08:27:32 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
08:29:32 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
08:36:26 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 272 seconds)
08:37:40 Tuplanolla joins (~Tuplanoll@91-159-68-39.elisa-laajakaista.fi)
08:38:29 × jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer)
08:38:30 × Kaiepi quits (~Kaiepi@156.34.47.253) (Ping timeout: 240 seconds)
08:38:51 × acidjnk quits (~acidjnk@p200300d0c7068b53cc85b297155bdc13.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
08:39:41 jinsun joins (~jinsun@user/jinsun)
08:40:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
08:40:16 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
08:43:18 × jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer)
08:44:33 jinsun joins (~jinsun@user/jinsun)
08:44:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
08:44:51 Midjak joins (~Midjak@82.66.147.146)
08:50:25 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
08:56:58 dcoutts__ joins (~duncan@host86-144-78-203.range86-144.btcentralplus.com)
08:57:28 _xor joins (~xor@72.49.198.103)
08:57:29 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c)
08:59:09 × jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer)
09:00:09 × abastro[m] quits (~abastroma@2001:470:69fc:105::1:e119) (Quit: You have been kicked for being idle)
09:00:14 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
09:00:47 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
09:01:48 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) (Ping timeout: 250 seconds)
09:03:13 Kaiepi joins (~Kaiepi@156.34.47.253)
09:10:20 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
09:14:29 chomwitt joins (~chomwitt@2a02:587:dc0e:3e00:a7b6:b006:4748:1da9)
09:31:26 gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
09:48:12 mc47 joins (~mc47@xmonad/TheMC47)
09:48:18 × vglfr quits (~vglfr@46.96.133.194) (Ping timeout: 246 seconds)
09:52:11 nate3 joins (~nate@98.45.169.16)
09:52:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
09:57:16 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
09:57:20 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 255 seconds)
10:06:56 × frost quits (~frost@user/frost) (Ping timeout: 252 seconds)
10:11:17 × Igloo quits (~ian@matrix.chaos.earth.li) (Ping timeout: 255 seconds)
10:11:24 Igloo joins (~ian@matrix.chaos.earth.li)
10:12:51 × Tuplanolla quits (~Tuplanoll@91-159-68-39.elisa-laajakaista.fi) (Ping timeout: 256 seconds)
10:15:20 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Read error: Connection reset by peer)
10:21:13 Benzi-Junior joins (~BenziJuni@88-149-64-179.du.xdsl.is)
10:24:42 × Igloo quits (~ian@matrix.chaos.earth.li) (Ping timeout: 246 seconds)
10:25:43 Tuplanolla joins (~Tuplanoll@91-159-69-1.elisa-laajakaista.fi)
10:25:52 fetsorn joins (~fetsorn@46.71.112.209)
10:33:20 × fetsorn quits (~fetsorn@46.71.112.209) (Ping timeout: 255 seconds)
10:33:25 Pickchea joins (~private@user/pickchea)
10:39:22 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
10:46:00 machinedgod joins (~machinedg@24.105.81.50)
10:55:50 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 240 seconds)
10:55:53 DNH joins (~DNH@2a02:8109:b740:2c4:75e8:12f5:1781:b63f)
10:58:45 zincy joins (~zincy@host86-160-236-152.range86-160.btcentralplus.com)
10:59:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
10:59:50 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
11:01:42 Igloo joins (~ian@matrix.chaos.earth.li)
11:01:59 × agumonkey quits (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7) (Remote host closed the connection)
11:04:23 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 255 seconds)
11:04:59 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
11:05:40 × hubvu_ quits (sid495858@id-495858.tinside.irccloud.com) (Quit: Connection closed for inactivity)
11:10:17 littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
11:11:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
11:16:19 × hpc quits (~juzz@ip98-169-32-242.dc.dc.cox.net) (Ping timeout: 256 seconds)
11:16:34 × littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
11:17:51 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
11:17:56 hpc joins (~juzz@ip98-169-32-242.dc.dc.cox.net)
11:22:35 __monty__ joins (~toonn@user/toonn)
11:23:03 littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
11:23:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
11:28:48 alp joins (~alp@user/alp)
11:30:32 × Pickchea quits (~private@user/pickchea) (Ping timeout: 260 seconds)
11:32:34 × littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
11:34:05 × gurkenglas quits (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 255 seconds)
11:34:25 gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
11:35:41 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
11:35:51 jakalx parts (~jakalx@base.jakalx.net) ()
11:36:23 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
11:39:27 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
11:39:37 × gurkenglas quits (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 258 seconds)
11:39:50 agumonkey joins (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7)
11:43:28 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
11:47:39 × zincy quits (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Remote host closed the connection)
11:48:09 jakalx joins (~jakalx@base.jakalx.net)
11:53:38 nate3 joins (~nate@98.45.169.16)
11:58:48 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 244 seconds)
12:03:19 × truckasaurus quits (sid457088@id-457088.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
12:09:38 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
12:10:32 × alp quits (~alp@user/alp) (Ping timeout: 255 seconds)
12:10:44 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
12:15:18 × xff0x quits (~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 246 seconds)
12:17:57 × odnes quits (~odnes@5-203-183-6.pat.nym.cosmote.net) (Quit: Leaving)
12:24:07 × ente quits (~daemon@inferno.barfooze.de) (Ping timeout: 244 seconds)
12:27:13 × agumonkey quits (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7) (Remote host closed the connection)
12:31:46 jinsun joins (~jinsun@user/jinsun)
12:37:48 xff0x joins (~xff0x@b133147.ppp.asahi-net.or.jp)
12:42:53 zincy joins (~zincy@2a00:23c8:970c:4801:10b4:e123:1cab:7458)
12:43:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
12:46:50 harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
12:47:01 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
12:48:47 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
12:50:08 × calleum_ quits (~calleum@user/calleum) (Ping timeout: 255 seconds)
12:53:57 littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
12:57:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
13:00:40 × zincy quits (~zincy@2a00:23c8:970c:4801:10b4:e123:1cab:7458) (Remote host closed the connection)
13:01:51 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c)
13:01:53 × robertm quits (robertm@lattice.rojoma.com) (Quit: WeeChat 3.0)
13:04:22 × DNH quits (~DNH@2a02:8109:b740:2c4:75e8:12f5:1781:b63f) (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:06:20 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) (Ping timeout: 255 seconds)
13:07:19 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
13:11:04 × littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
13:11:54 DNH joins (~DNH@2a02:8109:b740:2c4:75e8:12f5:1781:b63f)
13:14:12 robertm joins (robertm@lattice.rojoma.com)
13:14:28 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
13:16:30 <juri_> hey, how do i use pendingWith from hspec with a property test executed by 'property' from quickcheck?
13:16:56 <juri_> they have different return types, so i can't just use a do block...
13:20:53 littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
13:21:21 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
13:22:23 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
13:24:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
13:37:03 × oo_miguel quits (~pi@77.252.47.226) (Quit: WeeChat 3.0)
13:39:11 nate3 joins (~nate@98.45.169.16)
13:40:11 ente joins (~daemon@inferno.barfooze.de)
13:44:39 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 276 seconds)
13:48:47 <shapr> Heffalump: I dreamed you were doing a world tour visiting Haskellers and you came to visit me.
13:49:41 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
13:50:52 zaquest joins (~notzaques@5.130.79.72)
13:53:05 <juri_> isovector still owes me a dropby. next time he goes exploring the world.
13:53:13 azimut joins (~azimut@gateway/tor-sasl/azimut)
14:01:26 × benin quits (~benin@183.82.178.172) (Quit: The Lounge - https://thelounge.chat)
14:26:08 Topsi joins (~Topsi@dyndsl-095-033-091-150.ewe-ip-backbone.de)
14:28:41 × raym quits (~raym@user/raym) (Ping timeout: 255 seconds)
14:32:00 × cheater quits (~Username@user/cheater) (Read error: Connection reset by peer)
14:32:42 cheater joins (~Username@user/cheater)
14:35:12 × harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
14:37:34 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
14:56:18 × cosimone quits (~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection)
14:59:24 raym joins (~raym@user/raym)
15:03:19 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c)
15:07:54 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) (Ping timeout: 244 seconds)
15:07:59 ec joins (~ec@gateway/tor-sasl/ec)
15:09:30 Pickchea joins (~private@user/pickchea)
15:12:42 jafarlihi joins (~user@185.30.89.104)
15:12:51 × jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer)
15:13:10 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds)
15:17:29 unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
15:17:34 <unit73e> hello
15:18:41 <unit73e> can't find the differente between a sprite and frame and I'm doing an animation module lol
15:20:14 jinsun joins (~jinsun@user/jinsun)
15:23:34 andrey__ joins (~andrey@p508d5c0f.dip0.t-ipconnect.de)
15:25:59 × andrey_ quits (~andrey@p200300dbcf301a00a39cb4b6a4c691d0.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
15:28:33 × julian quits (~julian@20.83.116.49) (Killed (NickServ (GHOST command used by tos9_!~tos9@python/site-packages/Julian)))
15:29:12 × jafarlihi quits (~user@185.30.89.104) (Quit: WeeChat 3.5)
15:32:03 nahcetan joins (~nate@98.45.169.16)
15:34:22 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:34:36 gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
15:39:02 × chomwitt quits (~chomwitt@2a02:587:dc0e:3e00:a7b6:b006:4748:1da9) (Ping timeout: 260 seconds)
15:41:14 nate3 joins (~nate@98.45.169.16)
15:43:53 × DNH quits (~DNH@2a02:8109:b740:2c4:75e8:12f5:1781:b63f) (Read error: Connection reset by peer)
15:44:01 × fendor_ quits (~fendor@178.165.192.249.wireless.dyn.drei.com) (Read error: Connection reset by peer)
15:46:41 <Bulby[m]> i am awake... what sorcery do I need to support recursive functions
15:46:51 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 276 seconds)
15:47:23 <Bulby[m]> https://github.com/TheDrawingCoder-Gamer/lox-hs/blob/master/src/Lox/Evaluate.hs#L34-L38
15:47:28 user1 joins (~user@185.30.89.104)
15:48:46 fendor joins (~fendor@178.115.68.102.wireless.dyn.drei.com)
15:49:27 × user1 quits (~user@185.30.89.104) (Client Quit)
15:52:00 cosimone joins (~user@93-44-186-171.ip98.fastwebnet.it)
15:52:09 wootehfoot joins (~wootehfoo@user/wootehfoot)
15:52:20 × Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection)
16:00:23 Guest|77 joins (~Guest|77@net-93-70-51-195.cust.vodafonedsl.it)
16:00:46 × Guest|77 quits (~Guest|77@net-93-70-51-195.cust.vodafonedsl.it) (Client Quit)
16:03:07 × Pickchea quits (~private@user/pickchea) (Ping timeout: 240 seconds)
16:03:16 cyanide4dinner joins (~cyanide4d@27.57.130.136)
16:03:19 × cyanide4dinner quits (~cyanide4d@27.57.130.136) (Client Quit)
16:06:35 <unit73e> Bulby[m], I don't get your question
16:06:53 julian joins (~julian@20.83.116.49)
16:07:13 <Bulby[m]> I want the `LxEnv` I get to contain a reference to the function itself
16:07:25 × coot quits (~coot@213.134.190.95) (Quit: coot)
16:07:38 <unit73e> ok. for what?
16:07:55 <Bulby[m]> an interpreter function value
16:08:27 <unit73e> which function reference?
16:08:40 <unit73e> because you can just store a function
16:08:40 <geekosaur> the one being defined at that point
16:08:47 <Bulby[m]> ^
16:09:00 <Bulby[m]> a reference to `LvFun`
16:09:07 <geekosaur> you might look at "tying the knot"
16:09:18 <Bulby[m]> ?
16:09:24 <Bulby[m]> fix?
16:09:29 coot joins (~coot@213.134.190.95)
16:09:30 <geekosaur> sort of
16:09:51 × Luj quits (~Luj@2a01:e0a:5f9:9681:5880:c9ff:fe9f:3dfb) (Quit: The Lounge - https://thelounge.chat)
16:09:54 <geekosaur> https://wiki.haskell.org/Tying_the_Knot
16:10:12 <geekosaur> it's a trick using laziness to achieve recursive definitions or values
16:10:56 <geekosaur> so you can in effect reference a value before it's been defined, which is what you want here
16:10:58 Luj joins (~Luj@2a01:e0a:5f9:9681:3f95:8a9b:686:c147)
16:11:33 <Bulby[m]> interesting
16:11:46 × mjs2600_ quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in)
16:12:12 <Bulby[m]> so i would first get a reference to one that isn't cyclical, then record update with a reference'
16:13:25 mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
16:13:27 <Bulby[m]> record update wouldn't work how I want because it's in a monad
16:13:32 × coot quits (~coot@213.134.190.95) (Client Quit)
16:14:01 <Bulby[m]> so I will do stupid sort of update
16:17:30 desklamp[m] joins (~desklampm@2001:470:69fc:105::77b8)
16:18:13 <Bulby[m]> 1. does binding in do statement work like let and 2. can you use the name being defined
16:20:04 <geekosaur> let bindings are still recursive. binding with <- is actually a lambda binding, so is not recursive but instead defines a new scope
16:21:09 <Bulby[m]> so i'll use a let binding then bind with <- later
16:21:32 <geekosaur> this means in `x <- expr_using_x`, it's not recursive because it translates to `expr_using_x >>= \x ->`
16:22:08 <Bulby[m]> wait, i'm using Data.HashMap.Strict to store it]
16:22:13 <geekosaur> there's an extension for a recursive do (mdo) iirc
16:22:17 <Bulby[m]> hope that doesn't cause any issues
16:23:36 × Luj quits (~Luj@2a01:e0a:5f9:9681:3f95:8a9b:686:c147) (Quit: The Lounge - https://thelounge.chat)
16:23:40 <geekosaur> https://downloads.haskell.org/ghc/9.0.2/docs/html/users_guide/exts/recursive_do.html
16:24:00 <geekosaur> (I used the 9.0.2 manual but it's been around for a long time)
16:24:04 × littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
16:24:10 <geekosaur> back to 6.8
16:24:33 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
16:25:47 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
16:33:11 alp joins (~alp@user/alp)
16:33:36 × nahcetan quits (~nate@98.45.169.16) (Ping timeout: 246 seconds)
16:35:11 × mixfix41 quits (~sdenynine@user/mixfix41) (Excess Flood)
16:36:16 <Bulby[m]> The implementation of mfix for IO. If the function passed to fixIO inspects its argument, the resulting action will throw FixIOException.
16:36:26 <Bulby[m]> does recursive do mess with this at all
16:36:56 Jeanne-Kamikaze joins (~Jeanne-Ka@142.147.89.254)
16:37:31 × sander quits (~sander@user/sander) (Quit: So long! :))
16:41:24 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
16:41:24 <c_wraith> no. recursive do is syntactic sugar for a call to mfix
16:41:48 <Bulby[m]> haha i'll just run it and see if it crashes 🙂
16:42:32 <c_wraith> if the function passed to fixIO inspects its arguments, you have a causality violation anyway. :P
16:42:49 <Bulby[m]> i don't understand what that means
16:42:58 × hueso quits (~root@user/hueso) (Ping timeout: 244 seconds)
16:43:56 <c_wraith> it means you've set something up so that its input depends on its output in a paradoxical way.
16:44:14 mixfix41 joins (~sdenynine@user/mixfix41)
16:44:25 <c_wraith> I really like knot-tying. I've used both explicit knot-tying and recursive do a lot
16:44:38 <c_wraith> But you have to be careful that real progress can happen
16:44:53 <c_wraith> If it can't, you're just creating an infinite loop
16:45:11 <c_wraith> (except IO is nice enough to break the loop with an exception when you use mfix)
16:46:28 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:47:38 zebrag joins (~chris@user/zebrag)
16:47:55 hueso joins (~root@user/hueso)
16:54:19 <c_wraith> huh.. breaking the loop in IO is quite slow. Oh, right. because it's using an MVar behind the scenes, so it needs to wait on the MVar indefinitely blocked exception, which means it needs to wait for a GC to detect that
16:54:41 sander joins (~sander@user/sander)
16:58:51 × raym quits (~raym@user/raym) (Remote host closed the connection)
16:59:16 raym joins (~raym@user/raym)
17:01:17 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:03:55 × raym quits (~raym@user/raym) (Ping timeout: 258 seconds)
17:04:10 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c)
17:04:15 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
17:04:39 raym joins (~raym@user/raym)
17:06:30 <Bulby[m]> ok, now I realize there is a second problem - I need to update the closure when the function is run to allow this example to wokr
17:06:31 <Bulby[m]> https://craftinginterpreters.com/functions.html#local-functions-and-closures
17:06:53 <Bulby[m]> current, it prints 1 twice in a row
17:08:37 <Bulby[m]> i think I know how - i'll tell you if it works out
17:11:58 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
17:18:25 × raym quits (~raym@user/raym) (Ping timeout: 260 seconds)
17:21:19 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:25:42 × jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer)
17:27:04 jinsun joins (~jinsun@user/jinsun)
17:31:23 × mbuf quits (~Shakthi@223.190.209.89) (Quit: Leaving)
17:34:19 raym joins (~raym@user/raym)
17:36:27 Macbethwin joins (~chargen@D964062A.static.ziggozakelijk.nl)
17:40:42 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
17:43:38 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 272 seconds)
17:45:34 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
17:46:09 <Bulby[m]> hm, my return throws the state, so i am trying to replace the closure with the thrown one, but that closure seems to lack the recursive definition
17:48:06 × califax quits (~califax@user/califx) (Remote host closed the connection)
17:48:10 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
17:49:29 califax joins (~califax@user/califx)
17:54:50 × zaquest quits (~notzaques@5.130.79.72) (Ping timeout: 240 seconds)
17:55:49 <Bulby[m]> would there be a reason for this?
17:56:04 <Bulby[m]> is it impossible to pass around recursive defs
17:57:46 zaquest joins (~notzaques@5.130.79.72)
17:57:56 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
17:59:00 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
17:59:24 econo joins (uid147250@user/econo)
17:59:30 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 258 seconds)
18:03:01 causal joins (~user@50.35.83.177)
18:03:32 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
18:04:22 jakalx joins (~jakalx@base.jakalx.net)
18:05:04 zincy joins (~zincy@host86-160-236-152.range86-160.btcentralplus.com)
18:09:49 <unit73e> I only figured now that where clause can have function signatures lol
18:09:52 <EvanR> a recursive let block is a cromulent syntactic construction
18:10:04 <EvanR> Bulby[m]
18:12:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
18:12:28 <EvanR> if you were doing things with a functional hat on you could desugar whatever it is to recursive let
18:13:15 × alp quits (~alp@user/alp) (Ping timeout: 260 seconds)
18:13:19 kwshi joins (~kwshi@096-040-102-060.biz.spectrum.com)
18:15:06 <unit73e> were can I buy a functional hat?
18:15:25 abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
18:16:13 <unit73e> oh no there's actually an haskell hat lol I search for it. it's €16
18:16:41 allbery_b joins (~geekosaur@xmonad/geekosaur)
18:16:41 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
18:16:44 allbery_b is now known as geekosaur
18:17:50 <[exa]> oh no *money disappears*
18:17:56 <dsal> A functional hat casts no shadow.
18:20:26 wootehfoot joins (~wootehfoo@user/wootehfoot)
18:21:37 <hpc> a functional hat is always in head normal form
18:21:54 <EvanR> here are some https://i.imgur.com/MYdn2DC.png
18:21:55 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
18:22:19 <EvanR> in case you wanted to know what kind of hat it was
18:23:53 wootehfoot joins (~wootehfoo@user/wootehfoot)
18:24:06 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
18:24:35 <[exa]> well, now I'm looking at the eval/apply globe from the picture and an empty spot on a cupboard here
18:25:06 <Bulby[m]> Printing it out, my native function gets recursive
18:25:08 <Bulby[m]> which is not good
18:25:13 <Bulby[m]> gonna fix that
18:26:41 Macbethwin is now known as Chargen
18:27:00 <int-e> EvanR: Uh, "apply" ends in an upside-down lambda, it must be the work of the devil.
18:27:50 <int-e> (that picture is weird)
18:27:57 <EvanR> apply seemingly has no reasonable type signature so yeah
18:33:08 <Bulby[m]> is this (a possible reason) why haxe was written in ocaml and not haskell or a non objective ml? because objective makes some things of interpreting easier?
18:34:10 justsomeguy joins (~justsomeg@user/justsomeguy)
18:35:32 alp joins (~alp@user/alp)
18:36:51 × HotblackDesiato quits (~HotblackD@gateway/tor-sasl/hotblackdesiato) (Remote host closed the connection)
18:37:44 HotblackDesiato joins (~HotblackD@gateway/tor-sasl/hotblackdesiato)
18:38:28 × zincy quits (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Remote host closed the connection)
18:44:08 <tabemann> I have a stupid question which has arisen from a discussion in another channel: is GHC Haskell (not Haskell 2010)'s type system Turing complete?
18:44:25 vicfred joins (~vicfred@user/vicfred)
18:44:35 nahcetan joins (~nate@98.45.169.16)
18:45:26 <[exa]> tabemann: likely not with default extensions but certainly if you add a few language pragmas
18:46:05 <[exa]> tabemann: c.f. https://aphyr.com/posts/342-typing-the-technical-interview
18:47:44 × Chargen quits (~chargen@D964062A.static.ziggozakelijk.nl) (Remote host closed the connection)
18:48:03 Chargen joins (~chargen@D964062A.static.ziggozakelijk.nl)
18:48:39 <EvanR> Bulby[m], considering the "write yourself a scheme in 24 hours" haskell tutorial, I'm not sure what the issue is
18:48:57 <EvanR> other than maybe doing things the hard way :tm:
18:50:06 <tabemann> [exa], I was reading something on doing Turing-complete stuff with the Haskell type system, but it involved things like type families combined with data kinds
18:50:26 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 252 seconds)
18:50:27 × fendor quits (~fendor@178.115.68.102.wireless.dyn.drei.com) (Ping timeout: 246 seconds)
18:50:56 <Bulby[m]> 😓
18:51:07 × nahcetan quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
18:52:12 <EvanR> when using the type system as logic to guarantee things about your code, you do NOT want it to be turing complete
18:52:19 fendor joins (~fendor@178.115.32.249.wireless.dyn.drei.com)
18:52:39 <EvanR> because then the type checker may sometimes not terminate
18:52:54 <[exa]> tabemann: ah so. very roughly, you can encode a decent subset of prolog into multiparameter type classes that is able to multiply a simple encoding of numbers ⇒ arbitrary functions can be enumerated ⇒ t-complete ⇒ undecidable
18:53:44 <EvanR> type families can't be partially applied for this reason
18:54:27 <[exa]> tabemann: that blogpost, although partially funny/obscure, is the best demonstration on how to do that that I know :]
18:54:51 <Bulby[m]> I am doing things the hard way ig... reading a tutorial about writing something in java
18:55:07 <[exa]> Bulby[m]: oh no, java, stop right there! :D
18:55:10 × fendor quits (~fendor@178.115.32.249.wireless.dyn.drei.com) (Read error: Connection reset by peer)
18:55:16 <EvanR> so you're doing things the java way in haskell
18:55:24 <[exa]> Bulby[m]: btw do you have any snapshot of the problematic code we can look at?
18:55:29 fendor joins (~fendor@178.115.32.249.wireless.dyn.drei.com)
18:55:59 <geekosaur> https://github.com/TheDrawingCoder-Gamer/lox-hs/blob/master/src/Lox/Evaluate.hs#L34-L38 from earlier
18:56:15 jmdaemon joins (~jmdaemon@user/jmdaemon)
18:56:24 <Bulby[m]> and I just pushed the newest changes
18:56:55 <tabemann> back
18:59:08 <Bulby[m]> https://craftinginterpreters.com/functions.html#local-functions-and-closures the example provided here when entered into the REPL prints 1.0 then says Undefined variable count
18:59:40 <Bulby[m]> before I started editing the closure with newClosure in lxCall, it printed 1.0 twice
19:00:00 <EvanR> an interpreter for programs in expression form is a lot easier than java form
19:00:29 <Bulby[m]> well the language has statements
19:00:31 <Bulby[m]> ¯\_(ツ)_/¯
19:00:33 <EvanR> actually it's really nice when all your data takes the form of expressions
19:01:21 <EvanR> a statement and a sequence of statements can be one form of expression in your language (to be distinguished from e.g. arithmetic expressions or whatever makes up statements)
19:01:23 <Bulby[m]> it is, but i'm implementing this language right now
19:02:06 <Bulby[m]> an expression that returns nil...
19:02:39 <EvanR> no... imagine statements don't return anything because that's not applicable to interpreting statements
19:03:08 <Bulby[m]> well that have to return something for it to make sense
19:03:11 <EvanR> unlike arithmetic expressions etc
19:03:15 <Bulby[m]> in haskell, i mean
19:03:22 <EvanR> now you're mixing levels
19:03:53 <EvanR> which you can do but that's like, advanced mode
19:04:26 <Bulby[m]> in haskell, what do lox statements return when evaluated?
19:04:36 <EvanR> what is lox
19:04:46 <Bulby[m]> the language i'm working on
19:05:25 <EvanR> in a hypothetical imperative language with statements I propose the interpretation of statements is effects
19:05:44 <Bulby[m]> ... which is what I am doing with them?
19:06:11 <EvanR> cool
19:07:50 <Bulby[m]> https://github.com/TheDrawingCoder-Gamer/lox-hs/blob/master/src/Lox/Types.hs#L85-L102 is how I represent types
19:08:04 <Bulby[m]> statements and expressions
19:09:34 <EvanR> FunDecl is a statement so you are dynamically generating function objects or
19:09:49 <Bulby[m]> yes, dynamically generating them
19:10:02 <Bulby[m]> in the earlier link
19:10:26 <Bulby[m]> well it got borked due to my push
19:10:45 <Bulby[m]> but basically the right location
19:11:53 <EvanR> and the function value is implemented as a haskell function it seems
19:12:09 <Bulby[m]> yes
19:12:35 <EvanR> looks complicated xD
19:12:43 <Bulby[m]> ☹️
19:15:07 <Bulby[m]> so what did you suggest to make this more sane?
19:15:29 Sgeo joins (~Sgeo@user/sgeo)
19:18:40 <EvanR> I mean it seems like you're doing it in an advanced way. Which suggests you have a plan and are not winging it
19:19:22 <int-e> . o O ( not having empty lines between declarations is hurting me more than I thought it would )
19:19:48 Pickchea joins (~private@user/pickchea)
19:20:48 <EvanR> and no I don't think object oriented would make it easier
19:20:53 <int-e> But... those type look relatively sane; semantically though, if local functions can capture variables from the enclosing ones this is nontrivial to implement.
19:21:16 <int-e> (they become closures in that case)
19:21:35 <Bulby[m]> i didn't really have a plan, I just started reading and implemented as I went
19:21:46 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.5)
19:22:05 <EvanR> does your language have a type system
19:22:09 perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
19:22:14 <Bulby[m]> no 🤣
19:22:18 <EvanR> nice
19:22:24 <int-e> looks dynamically typed so far
19:22:35 <Bulby[m]> which is why it's `LoxValue` instead of seperate newtypes
19:22:49 <int-e> (I imagine LoxValue is also used at runtime.)
19:23:09 chomwitt joins (~chomwitt@2a02:587:dc0e:3e00:5006:194c:376f:fb2e)
19:23:18 <int-e> (not just for literals.)
19:23:23 <EvanR> well the values are runtime and type system comes before that, if you do it like haskel
19:23:33 <Bulby[m]> yes, it is. ParseLoxValue is used for literals
19:24:03 <EvanR> so you could conceivably add one to make sure the values don't collide in weird ways
19:24:17 <EvanR> but otherwise the runtime goes unchanged
19:25:29 <int-e> Ah. Right, I misremembered that detail (how literals are represented) and didn't verify. It's not my code :P
19:26:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
19:26:18 <Bulby[m]> well right now I am just worried about my closure failing - I started asking about how the env thrown by the return statement doesn't include the function
19:27:30 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
19:27:59 <Bulby[m]> (yes, I use throwing for returning
19:28:05 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
19:28:13 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
19:28:16 <EvanR> jeez...
19:28:26 <int-e> Anyway. You need to think about scoping for the inner functions and variables... and that'll inform how to treat environments when a function definition is encountered. (Plural because I think you may want to associate an environment with local functions)
19:28:58 <Bulby[m]> I do scope 😅
19:29:22 <int-e> There are design choices for scoping. Mainly: static or dynamic.
19:29:41 <Bulby[m]> oh, the book went over static scoping but I wasn't in the mood
19:29:45 <int-e> (the latter is insane for programming with but easier to implement in an interpreter?)
19:30:06 <EvanR> might as well do dynamic scope xD
19:30:13 Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net)
19:30:34 <int-e> The thing is this: If you have a global function a, and a local function a, and then call a third function that calls a, dynamic scoping will pick the second a.
19:31:02 <Bulby[m]> I probably should do static scoping
19:31:12 <EvanR> (I don't see how that's easier to implement though)
19:31:23 <int-e> but, if you do static scoping you have to deal with the second a going out of scope when the third function is called.
19:31:43 <int-e> EvanR: it's easier if you track functions in a single environment that gets reset on function returns
19:32:03 <Bulby[m]> the Lox "specification" says it is lexically scoped
19:32:11 <EvanR> weird
19:32:17 <EvanR> (single environment)
19:32:54 <Bulby[m]> I skipped that chapter because I managed to hack a solution
19:33:06 <int-e> Well, I think. TBH that's the only excuse I see for dynamic scoping being a thing in the first place.
19:33:18 <Bulby[m]> haha
19:33:32 <int-e> "that" being "it's easier to implement"
19:33:53 <int-e> it's also *not* easier when writing a compiler.
19:35:08 × cosimone quits (~user@93-44-186-171.ip98.fastwebnet.it) (Ping timeout: 255 seconds)
19:35:33 <int-e> Bulby[m]: Anyway, mainly I'm suggesting that you'd benegit from a bit of planning for how you're representing the program state and in particular how local function definitions and function calls affect that state before actually diving into the implementation.
19:36:07 <int-e> Otherwise you may well end up in a total mess that has to be rewritten. Though I suppose you can get lucky.
19:36:46 <Bulby[m]> yes, I am going to do static scope
19:36:51 <Bulby[m]> javaism away!
19:37:15 × Pickchea quits (~private@user/pickchea) (Ping timeout: 256 seconds)
19:37:56 <Bulby[m]> well, I am not doing visitor because I've written an implementation before in haxe, which has ADTs
19:38:42 <geekosaur> I admit I was confused about why you were having problems with the current function being in scope, because were I writing a language I'd have a scope stack
19:38:58 <Bulby[m]> hahaha
19:39:09 <Bulby[m]> yeah, I'll fix my mess that I made
19:39:12 <geekosaur> definitions always go into the top of the stack, references are searched in each stacked environment in order
19:39:27 <Bulby[m]> I do that dynamically
19:39:37 × hgolden quits (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
19:39:39 <int-e> I'm not saying that this is *hard*, just that it's kind of easy to go wrong, and planning wil pay off.
19:39:42 <geekosaur> the cxurrent function would be in a different environment but on the scope stack so it would be found unless shadowed by a local definition
19:39:51 <int-e> *will
19:40:13 <Bulby[m]> I will do Static scoping, as it will probably prevent headaches
19:40:28 <int-e> I approve :P
19:41:08 <Bulby[m]> my haxe one isn't to the letter, it goes the way of "everything is an expression"
19:41:31 <int-e> geekosaur: "single environment"... of course since this is Haskell, there'd be copies made whenever it's updated, and "resetting the environment" would just revert to an older copy.
19:41:34 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
19:41:57 <Bulby[m]> what does polysemy's `State` do?
19:42:06 <Bulby[m]> because that's where I store my env
19:42:39 <int-e> geekosaur: but this is irrelevant anyway since we're doing static scoping... and for that a stack (with one level per static nesting) is definitely looking good
19:43:00 hgolden joins (~hgolden2@cpe-172-251-233-141.socal.res.rr.com)
19:43:31 <geekosaur> I'd expect it to not be too different from mtl State. the only difference is I'd have [Env] instead of Env, push a new Env when entering a function, pop on leaving it
19:43:46 <geekosaur> s/function/scope/
19:44:14 <Bulby[m]> ah, I remember why I made everything an expression - haxe itself has macros that make everything an expression
19:45:35 nate3 joins (~nate@98.45.169.16)
19:46:01 <Bulby[m]> yuck, I used haxe's `Dynamic`
19:46:21 <Bulby[m]> even tho Haxe has adts and could have done what I am doing in haskell
19:48:36 <Bulby[m]> I guess haskell has changed me to be more typesafe
19:51:03 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 258 seconds)
19:51:54 vglfr joins (~vglfr@coupling.penchant.volia.net)
19:55:37 <EvanR> the main difference (type system-wise) for me between haskell and dynamic languages is I do all the type checking
19:55:44 pavonia joins (~user@user/siracusa)
19:55:45 <EvanR> in the latter
20:02:30 <Bulby[m]> the book uses ` private final Map<Expr, Integer> locals = new HashMap<>();` to store it's scopes and says that each expression is it's own java object... which isn't true in haskell - it's pure data
20:04:14 <Bulby[m]> so how do I represent the depth of each expression
20:05:24 <Bulby[m]> my mind is telling me "use unique"
20:06:12 × jinsun quits (~jinsun@user/jinsun) (Ping timeout: 276 seconds)
20:09:54 <[exa]> Bulby[m]: btw what does LoxFunction actually represent?
20:10:59 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
20:11:05 <Bulby[m]> a function that takes a list of LoxValue and returns `()` in a monad that can run statements
20:13:36 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
20:15:24 <EvanR> you can compute the depth of subexpressions pretty easily
20:15:33 jgeerds joins (~jgeerds@55d45f48.access.ecotel.net)
20:15:44 <Bulby[m]> I think this is more static scope
20:16:34 <EvanR> oh using expression objects with identity as the literal key into a map... for some reason
20:17:01 <Bulby[m]> is there a better way to represent it?
20:17:08 <EvanR> wouldn't locals be a map from variable name to values
20:17:11 <EvanR> (not expressions)
20:19:39 <[exa]> Bulby[m]: so it takes LixValue, doesn't need to do anything to return (), and requests a monad that can run statements for it?
20:19:43 <[exa]> *Lux
20:19:49 <[exa]> *Lox
20:20:10 <[exa]> (the keyboard is wiggly today, sorry)
20:20:40 <Bulby[m]> well, it's guarenteed to run a `LxReturn` statement which will throw back to `lxCall`
20:23:25 <EvanR> .oO(is it really guaranteed to return)
20:23:40 <[exa]> ah so basically you want to interpret all your functions to this form and then just let it run, right?
20:23:53 <Bulby[m]> yes, while parsing I append a `return nil`
20:24:14 <EvanR> .oO(what if it never reaches that return nil)
20:24:31 <Bulby[m]> how would it not do that
20:24:49 <EvanR> if your language guarantees that, I will be mildly impressed
20:24:54 × fendor quits (~fendor@178.115.32.249.wireless.dyn.drei.com) (Remote host closed the connection)
20:25:18 <Bulby[m]> the parser guarantees that
20:25:19 <EvanR> e.g. C doesn't have that guarantee: for(;;){} return NIL;
20:25:58 <Bulby[m]> oh
20:25:58 <Bulby[m]> well it hangs then
20:25:58 <Bulby[m]> let me see
20:26:40 <Bulby[m]> yep, it hangs
20:27:33 <Bulby[m]> I mean like, if there is no explicit return then it returns nil
20:29:34 × HotblackDesiato quits (~HotblackD@gateway/tor-sasl/hotblackdesiato) (Ping timeout: 240 seconds)
20:30:14 <[exa]> in the interpreted function (LoxFunction), are the calls to other functions already interpreted to LoxFunction or are they represented as some kind of action/effect?
20:31:04 <Bulby[m]> https://github.com/TheDrawingCoder-Gamer/lox-hs/blob/master/src/Lox/Evaluate.hs#L37-L43
20:31:14 <Bulby[m]> this is how they are interpreted
20:31:24 HotblackDesiato joins (~HotblackD@gateway/tor-sasl/hotblackdesiato)
20:31:24 <Bulby[m]> it runs the statements inside
20:31:51 CoolerX joins (~user@user/coolerx)
20:31:52 <CoolerX> Hi
20:31:55 <[exa]> ok, you're splitting the actual evaluation into 2 there
20:32:04 <Bulby[m]> huh?
20:32:10 <CoolerX> How do you use a local package? give it to ghc
20:32:29 <CoolerX> I am looking at https://stackoverflow.com/questions/59232514/using-local-packages-with-haskell-stack
20:33:05 <CoolerX> did stack sdist to create a tarball and put it in the same folder as the main project
20:33:15 <[exa]> CoolerX: it's relatively easy if you use cabal (you literally write the path to it to a project file, or afaik even doing `cabal install subdirectory/` works)
20:33:22 <[exa]> not sure about stack tho
20:33:26 <CoolerX> did stack init and updated stack.yaml
20:33:44 <CoolerX> I don't have a package.yaml so I can't updatee it
20:34:18 <[exa]> Bulby[m]: yeah, you are interpreting the recursive structure, creating an (unevaluated) infinite tree before the function is already executed
20:34:33 × Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
20:34:49 <[exa]> Bulby[m]: why not have a special effect for calling functions that manages the stacky stuff?
20:35:12 <Bulby[m]> you mean write a polysemy effect?
20:35:27 acidjnk joins (~acidjnk@p200300d0c7068b53096e2035e81feaf4.dip0.t-ipconnect.de)
20:36:18 <[exa]> yeah, literally have a piece of your DSL that is called e.g. `callFnWithArgs yourfunction [arg1, arg2, ...]`
20:37:01 <[exa]> then you don't have to pre-evaluate the recursion
20:37:12 <Bulby[m]> oh right I can literally store the statements
20:38:08 <[exa]> not sure what type for `yourFuncition` above would be best, depending on the language design you might choose either an identifier or a code representation for the function
20:38:11 <EvanR> hence... your data is a tangible expression you can do stuff with
20:38:23 <CoolerX> [exa]: yeah I did that, works with stack too
20:38:46 <Bulby[m]> yeah, haskell function is kinda stupid
20:38:47 <CoolerX> had to put packages: ['libs/MyPackage-0.1.0'] in stack.yaml
20:38:56 <CoolerX> and then stack build
20:38:57 <Bulby[m]> for representing lox function, i mean
20:39:15 <EvanR> a haskell function would potentially have better performance and potentially less total code, but possibly be more confusing
20:39:17 <[exa]> Bulby[m]: I'd say that's the main intuition about _functions_, you can't look into them
20:39:38 <[exa]> Bulby[m]: so best keep it as data until you're perfectly sure that you'll just evaluate stuff
20:39:49 jinsun joins (~jinsun@user/jinsun)
20:40:18 <Bulby[m]> that would also fix my https://github.com/TheDrawingCoder-Gamer/lox-hs/blob/master/src/Lox/Types.hs#L118-L120
20:40:50 <[exa]> Bulby[m]: anyway, your "function call effect" may be able to perfectly keep track of how many calls are currently stacked etc., hopefully giving some solution to your earlier depth-checking trouble (I didn't read the scrollback completely tho, sorry :D )
20:41:11 <[exa]> re Show, yes, you gain representability
20:41:25 <[exa]> there's actually another way to kinda solve this
20:42:11 <[exa]> if you manually tag entrypoints for all functions, you may break the recursion in case you detect that you enter a function that you already entered somewhere higher in the expression tree
20:42:53 <Bulby[m]> I think I should just work on static scope for now
20:43:16 <CoolerX> ok nvm that doesn't do what I think it does
20:43:21 <CoolerX> it just builds the library
20:43:28 <CoolerX> but doesn't build my main.hs
20:43:48 <[exa]> CoolerX: your MyPackage is a library or a program?
20:44:23 <[exa]> s/program/executable/ youknowwhatImeant
20:44:33 <[exa]> Bulby[m]: what's your scoping right now btw?
20:44:50 <CoolerX> stack ghc main.hs gives an error
20:44:54 <Bulby[m]> hacked together :rofl
20:45:20 <Bulby[m]> I think dynamic scoping, as it's determined at runtime
20:45:28 <CoolerX> deriving instance ToJSON Token
20:45:29 <CoolerX> hmm
20:45:31 trisolaran joins (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
20:45:37 × _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
20:45:46 <CoolerX> https://bpa.st/4M7Q
20:45:57 <CoolerX> some error on that line
20:46:05 <CoolerX> [exa]: it's both
20:46:29 <Bulby[m]> it's not a grabify link, checked with wheregoes
20:46:39 × califax quits (~califax@user/califx) (Remote host closed the connection)
20:46:55 <Bulby[m]> sorry, i get scared of anything ending with random letters now because of grabify
20:47:02 <[exa]> Bulby[m]: ah I see, basically execution trace scope
20:47:27 <Bulby[m]> it was hacked together
20:47:27 <CoolerX> Bulby[m]: it's a pastebin
20:47:32 <Bulby[m]> I should have done what the book said
20:47:50 califax joins (~califax@user/califx)
20:48:15 <geekosaur> formerly known as bpaste
20:48:22 <[exa]> Bulby[m]: I wouldn't worry about grabify when already sitting on IRC giving your v6 to the general publics :]
20:48:33 <Bulby[m]> my WHAT
20:48:55 <CoolerX> IPv6 address
20:48:59 <geekosaur> mm, the address being exposed is a matrix bridge address
20:49:17 <CoolerX> [exa]: help?
20:49:30 <[exa]> ah okay *lowers the hackgun*
20:49:38 <Bulby[m]> i didn't know irc does that
20:50:06 <geekosaur> you can ask for a cloak
20:50:13 <[exa]> it's pretty normal to report network details here because that's the prime way to ban abusers
20:50:23 <Bulby[m]> is that a joke or a technical term
20:50:32 <geekosaur> although since what's being exposed is an address of the matrix bridge, not sure it would do much
20:50:37 <geekosaur> it's a technical term
20:50:45 <CoolerX> [exa]: but you can ban with a cloak too so what's the point of exposing by default?
20:50:50 <geekosaur> try looking at my address with /whois geekosaur
20:51:11 <[exa]> CoolerX: that error is in the library or the main.hs or in the "root" slack project?
20:51:14 <Bulby[m]> i don't think matrix lets you do that
20:51:19 <Bulby[m]> \/whois geekosaur
20:51:35 <CoolerX> [exa]: the error is in my code
20:51:36 <Bulby[m]> more likely nheko is eating my slash command
20:51:40 <[exa]> anyway you can ban a registered user, but registrations are kinda rate-limited and if you just want to spam, you don't bother about registering :D
20:51:41 <CoolerX> line 47: deriving instance ToJSON Token
20:51:45 <geekosaur> you added a backslash, that won't work
20:52:09 <Bulby[m]> I can't input /whois geekosaur in a single message
20:52:20 <Bulby[m]> /whois geekosaur
20:52:30 <Bulby[m]> without spaces or something
20:52:35 <geekosaur> oh right, you're on matrix and it handles /-commands itself or passes them through as messages
20:52:51 <geekosaur> you'd have to join irc directly
20:53:03 <CoolerX> geekosaur: is a matrix the same as a bouncer?
20:53:06 <[exa]> kinda
20:53:08 <Bulby[m]> not with my new knowledge 😱
20:53:12 <geekosaur> anyway it shows me as ~geekosaur!geekosaur@user/geekosaur
20:53:34 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
20:53:34 Alleria joins (~textual@user/alleria)
20:53:50 <CoolerX> Bulby[m]: knawlidge
20:53:58 Alleria_ joins (~AllahuAkb@68.65.161.35)
20:54:04 <geekosaur> sorry, geekosaur!~geekosaur@user/geekosaur
20:54:24 <[exa]> CoolerX: which one of your codes btw? might need more detail
20:54:27 fetsorn joins (~fetsorn@46.71.112.209)
20:54:29 <Bulby[m]> that's cool
20:54:30 <CoolerX> Tai Lopez ruined that word for me
20:54:32 <Bulby[m]> anyway
20:54:35 <geekosaur> nick ! username @ address , except that becuase I have a cloak it shows the cloak instead of my address
20:55:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
20:55:14 <CoolerX> [exa]: I am trying to build this https://github.com/jjhenkel/binnacle-icse2020/blob/master/datasets/2-phase-2-dockerfile-asts/generate/app.hs
20:55:17 <CoolerX> locally
20:55:26 <CoolerX> they use a Dockerfile https://github.com/jjhenkel/binnacle-icse2020/blob/master/datasets/2-phase-2-dockerfile-asts/generate/Dockerfile
20:55:36 <CoolerX> ghc /build/app.hs
20:55:40 <geekosaur> not sure if it'll work on matrix but join #libera-cloak:libera.chat and it should assign a cloak to your bridge address
20:55:46 <Bulby[m]> i'll ask in matrix chat because I don't want two convos at onces
20:56:00 <CoolerX> it's not clear to me where GHC looks for modules/packages
20:56:05 <CoolerX> especially local packages
20:56:16 <CoolerX> what is the module resolution algo?
20:56:40 <[exa]> CoolerX: ghc is usually configured by stack to look at precise places (you may have a look at ghc-pkg binary)
20:56:44 <[exa]> (same for cabal btw)
20:57:13 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
20:57:14 <CoolerX> [exa]: they use ghc directly there
20:57:17 <geekosaur> you wrapped it in "stack ghc" so stack is controlling module resolution using your local package's stack.yaml resolver and any additional packages
20:57:24 <CoolerX> not through stack
20:57:24 × fetsorn quits (~fetsorn@46.71.112.209) (Remote host closed the connection)
20:57:27 Dorkside69 joins (~dorkside@208.190.197.222)
20:57:35 <geekosaur> if you use ghc directly it won't see anything installed by stack
20:57:36 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
20:57:44 <CoolerX> cool
20:57:55 <Bulby[m]> hm, it looks like another method is to store it directly on expressions
20:58:06 <[exa]> for "pure" ghc, ghc-pkg is the way to go I'd say
20:58:07 <CoolerX> geekosaur: so what's the error message mean? https://bpa.st/4M7Q
20:58:54 <[exa]> CoolerX: the message means that the instance for `ToJSON InnerToken` is missing, so it can't derive ToJSON instances for stuff that contains InnerToken
20:59:01 <geekosaur> ^
20:59:13 <geekosaur> \and presumably a Token contains an InnerToken
20:59:23 <[exa]> sounds like that, right? :]
20:59:45 <[exa]> CoolerX: you might fix it by copying the 2 lines that derive Generic and ToJSON for Token, and rewrite Token to InnerToken
21:00:08 <[exa]> unless InnerToken contains some heavy magic which I doubt
21:01:30 <[exa]> ICSE is the "software engineering" conference?
21:01:47 <geekosaur> or is simply not exported beyond its type
21:03:29 × causal quits (~user@50.35.83.177) (Quit: WeeChat 3.5)
21:04:45 causal joins (~user@50.35.83.177)
21:04:55 <CoolerX> [exa]: ICSE https://conf.researchr.org/home/icse-2022
21:05:20 <CoolerX> "[exa]> CoolerX: the message means that the instance for `ToJSON InnerToken` is missing, so it can't derive ToJSON instances for stuff that contains InnerToken" this sounds liks a tautology
21:05:41 <CoolerX> can't derive the instance because the instance is missing?
21:05:50 <CoolerX> isn't that the point of deriving something?
21:05:55 cosimone joins (~user@2001:b07:ae5:db26:57c7:21a5:6e1c:6b81)
21:06:32 user1 joins (~user@194.135.153.200)
21:07:46 <CoolerX> hmm https://hackage.haskell.org/package/aeson-2.0.3.0/docs/Data-Aeson.html#t:ToJSON
21:08:06 <geekosaur> the instance of Token is what you're tryuing to derive, the instance of InnerToken is what needs to (also) be derived
21:10:18 <CoolerX> you mean instance of 'ToJSON Token' ?
21:11:25 <geekosaur> yes
21:11:36 <geekosaur> ToJSON Token needs ToJSON InnerToken
21:12:10 <CoolerX> Token is a concrete type that already exists https://github.com/koalaman/shellcheck/blob/master/src/ShellCheck/AST.hs#L40
21:12:16 <geekosaur> or ToJSON (InnerToken Token) to be more precise. problem being that the repeated use ot `Token` makes me suspect `InnerToken` may be a type family
21:13:32 <geekosaur> okay, that looks fine to me
21:13:56 <geekosaur> so before deriving ToJSON Token you need to derive ToJSON (InnerToken Token)
21:14:46 × user1 quits (~user@194.135.153.200) (Quit: WeeChat 3.5)
21:15:29 <geekosaur> actually just ToJSON (InnerToken t) should be fine, so it's not recursive
21:16:02 <geekosaur> deriving instance Generic (InnerToken t); deriving instance ToJSON (InnerToken t)
21:16:15 <geekosaur> deriving instance Generic Token; deriving instance ToJSON Token
21:18:46 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
21:19:17 <CoolerX> Illegal instance declaration for ‘ToJSON (InnerToken Token)’
21:19:32 <CoolerX> \(All instance types must be of the form (T a1 ... an) where a1 ... an are *distinct type variables*,
21:19:49 <geekosaur> that's part of why I said use InnerToken t
21:20:06 <CoolerX> hmm?
21:20:08 <CoolerX> deriving instance ToJSON (InnerToken Token)
21:20:12 <CoolerX> that should work right?
21:20:20 <geekosaur> no
21:20:31 <CoolerX> why?
21:20:53 <CoolerX> • No instance for (Generic (InnerToken t)) arising from a use of ‘aeson-2.0.3.0:Data.Aeson.Types.ToJSON.$dmtoJSON’
21:21:01 <geekosaur> that's what it's complaining about. you need an extension to say the concrete type `Token` there instead of a type variable, because it's not standard Haskell
21:21:07 <CoolerX> hmm deriving instance ToJSON (InnerToken t)
21:21:29 <geekosaur> in addition, it would be recursive because you would need to derive for Token to derive for InnerToken, but you need to derive for InnerToken to derive for Token
21:21:41 <geekosaur> I already gave you what you need
21:21:51 <geekosaur> [04 21:16:02] <geekosaur> deriving instance Generic (InnerToken t); deriving instance ToJSON (InnerToken t)
21:21:51 <geekosaur> [04 21:16:15] <geekosaur> deriving instance Generic Token; deriving instance ToJSON Token
21:22:00 <hpc> deriving instance ToJSON t => ToJSON (InnerToken t)?
21:22:09 <CoolerX> ah
21:22:11 <geekosaur> yeh, sorry
21:22:21 <hpc> and maybe the same for Generic
21:22:25 <geekosaur> and same for Generic needs the constraint for T to have Gneneric
21:22:29 <geekosaur> *Generic
21:23:15 fetsorn joins (~fetsorn@46.71.112.209)
21:23:46 <CoolerX> • No instance for (ToJSON t)
21:23:46 <CoolerX> arising from a use of ‘aeson-2.0.3.0:Data.Aeson.Types.ToJSON.$dmtoJSON’
21:23:52 <CoolerX> deriving instance Generic (InnerToken t); deriving instance ToJSON (InnerToken t)
21:23:57 <CoolerX> for that line
21:24:06 <geekosaur> hpc just gave you the correction
21:24:15 jakalx joins (~jakalx@base.jakalx.net)
21:24:42 <CoolerX> hpc: wha?
21:24:51 <CoolerX> deriving instance ToJSON t
21:24:53 <CoolerX> weird
21:25:12 <CoolerX> deriving for an abstract type t?
21:25:46 <CoolerX> Illegal instance declaration for ‘ToJSON t’
21:25:47 <CoolerX> (All instance types must be of the form (T a1 ... an)
21:26:47 <geekosaur> deriving instance ToJSON t => ToJSON (InnerToken t)
21:26:57 × fetsorn quits (~fetsorn@46.71.112.209) (Client Quit)
21:27:10 <CoolerX> oh what'x => ? lambda function?
21:27:14 <geekosaur> "if t has a ToJSON instance, make an instance for ToJSON (InnerToken)"
21:27:27 <CoolerX> oh right
21:27:30 <CoolerX> type constraint
21:27:50 × ashln quits (~ashln@98.38.236.123) (Ping timeout: 240 seconds)
21:28:10 <geekosaur> yes. although if reading it out I susually read it as "implies"
21:28:13 <geekosaur> *usually
21:29:04 <CoolerX> yeah that worked
21:29:15 <CoolerX> geekosaur: yes
21:34:29 ashln joins (~ashln@98.38.236.123)
21:34:30 <CoolerX> hmm
21:34:53 <CoolerX> where are all the "contents" coming from? https://bpa.st/WV6Q
21:35:49 <CoolerX> I can't find the string "contents" in this file https://github.com/koalaman/shellcheck/blob/master/src/ShellCheck/AST.hs#L42-L145
21:37:19 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
21:37:56 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
21:39:35 <geekosaur> that's how it's representing the Haskell values
21:40:16 <geekosaur> specifically an InnerToken is a JSON object with a tag and a contents
21:44:44 × CoolerX quits (~user@user/coolerx) (Ping timeout: 255 seconds)
21:45:25 CoolerX joins (~user@user/coolerx)
21:47:01 × trisolaran quits (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 256 seconds)
21:49:50 × CoolerX quits (~user@user/coolerx) (Ping timeout: 240 seconds)
21:51:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
21:57:13 fetsorn joins (~fetsorn@46.71.112.209)
21:57:55 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
21:59:04 × fetsorn quits (~fetsorn@46.71.112.209) (Remote host closed the connection)
22:01:58 × Alleria_ quits (~AllahuAkb@68.65.161.35) (Quit: Textual IRC Client: www.textualapp.com)
22:06:09 Alleria_ joins (~AllahuAkb@68.65.161.35)
22:06:24 × acidjnk quits (~acidjnk@p200300d0c7068b53096e2035e81feaf4.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
22:14:43 <cjay> Has someone made a tool to merge cabal targets? I found that making merged targets manually and adding the merged target as the only entry to hie.yaml manages to un-confuse HIE on a project where I can't get HIE to behave fine otherwise.
22:17:50 × dcoutts__ quits (~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Ping timeout: 250 seconds)
22:28:57 <maerwald> cjay: what's a merged target?
22:32:35 <cjay> maerwald: for example in case of merging a lib and a test: a new test target with every property from the original test, but the hs-source-dirs, other-modules, and build-depends of the lib added to it, and the exposed-modules of the lib added to other-modules.
22:35:54 × Jeanne-Kamikaze quits (~Jeanne-Ka@142.147.89.254) (Quit: Leaving)
22:39:20 × jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 258 seconds)
22:40:17 <maerwald> cjay: do you have a reproducer for HLS?
22:40:32 <maerwald> this should start with a bug report
22:41:32 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
22:41:43 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
22:43:02 × Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Read error: Connection reset by peer)
22:43:41 <cjay> maerwald: Sadly it's a company private repo, I'd have to create a separate reproduction. Though that should be a good idea anyway to narrow down the issue.
22:44:53 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
22:45:00 <cjay> I'm not sure if it's a case of "fix this bug and be done with it", since HIE seems to have suffered from multi-cradle-problems for a long time. So making a target-merge-tool for workarounds might still be a good idea.
22:47:08 <maerwald> Please ask your employer if you can spend time on this then. It's not unlikely this is a more generic issue. I also have issues when switching between components (e.g. exe and lib), but could never pin-point it
22:51:53 × Chargen quits (~chargen@D964062A.static.ziggozakelijk.nl) (Remote host closed the connection)
22:52:14 Chargen joins (~chargen@D964062A.static.ziggozakelijk.nl)
22:58:57 CoolerX joins (~user@user/coolerx)
23:05:56 slack1256 joins (~slack1256@186.11.9.42)
23:11:11 × Tuplanolla quits (~Tuplanoll@91-159-69-1.elisa-laajakaista.fi) (Quit: Leaving.)
23:15:34 dsrt^ joins (~dsrt@128-092-183-014.biz.spectrum.com)
23:16:17 nahcetan joins (~nate@98.45.169.16)
23:17:18 × CoolerX quits (~user@user/coolerx) (Ping timeout: 276 seconds)
23:20:37 slac27275 joins (~slack1256@191.126.99.196)
23:21:53 calleum_ joins (~calleum@user/calleum)
23:23:02 × slack1256 quits (~slack1256@186.11.9.42) (Ping timeout: 258 seconds)
23:23:26 slac27275 is now known as slack1256
23:25:07 × chomwitt quits (~chomwitt@2a02:587:dc0e:3e00:5006:194c:376f:fb2e) (Ping timeout: 260 seconds)
23:25:51 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) (Remote host closed the connection)
23:28:47 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c)
23:43:57 × calleum_ quits (~calleum@user/calleum) (Ping timeout: 276 seconds)
23:45:29 CoolerX joins (~user@user/coolerx)
23:48:10 nate3 joins (~nate@98.45.169.16)
23:49:50 × CoolerX quits (~user@user/coolerx) (Ping timeout: 240 seconds)
23:50:48 × slack1256 quits (~slack1256@191.126.99.196) (Read error: Connection reset by peer)
23:50:53 CoolerX joins (~user@user/coolerx)
23:51:25 slack1256 joins (~slack1256@186.11.9.42)
23:51:34 × slack1256 quits (~slack1256@186.11.9.42) (Remote host closed the connection)
23:53:10 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
23:55:08 × alp quits (~alp@user/alp) (Ping timeout: 252 seconds)
23:55:39 × CoolerX quits (~user@user/coolerx) (Ping timeout: 256 seconds)
23:58:01 × _xor quits (~xor@72.49.198.103) (Quit: brb)

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