Home liberachat/#haskell: Logs Calendar

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

00:02:26 × anon15041149 quits (~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
00:03:35 × hueso_ quits (~root@user/hueso) (Ping timeout: 246 seconds)
00:08:22 hueso joins (~root@user/hueso)
00:18:07 × tremon_ quits (~tremon@83-84-18-241.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in)
00:18:38 <Bulby[m]> i don't like that everything needs spaces around it
00:18:59 × Tuplanolla quits (~Tuplanoll@91-159-68-39.elisa-laajakaista.fi) (Quit: Leaving.)
00:19:41 <Bulby[m]> ah, it uses skipMany
00:19:56 <Bulby[m]> it should explicitly state no spaces are needed
00:20:34 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
00:21:03 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:e9d4:5a2f:7c9:32c2) (Remote host closed the connection)
00:25:38 <Bulby[m]> haha glad I retooled this - just noticed I forgot the `==` symbol
00:27:21 azimut joins (~azimut@gateway/tor-sasl/azimut)
00:29:24 × xff0x quits (~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 258 seconds)
00:35:28 × Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
00:35:38 Feuermagier joins (~Feuermagi@user/feuermagier)
00:35:45 <dsal> What needs to have spaces around it?
00:36:06 <Bulby[m]> `space` in Text.Megaparsec.Char.Lexer
00:36:13 <Bulby[m]> it doesn't tho
00:36:22 <dsal> Having an option for common uses isn't the same as requiring it.
00:36:39 <dsal> I parse binary protocols, fixed-width formats, and all kinds of other weird stuff.
00:36:44 <Bulby[m]> it says "skipMany"
00:36:51 <Bulby[m]> uses skipMany
00:36:59 <Bulby[m]> I thought it used something like skipSome
00:37:25 <dsal> I'm not sure what the context is of what you're saying.
00:37:36 <Bulby[m]> it's fine - don't want to ramble
00:37:41 <dsal> Normally, it's just `lexeme parserForThingI'mExpecting`
00:37:42 k` joins (~user@136.56.140.2)
00:38:32 <k`> What's the point of the second type parameter of `Rep` (of the 'Generic' class)? Just to make default signatures impossible to write without QuantifiedConstraints?
00:42:09 <jackdk> k`: https://wiki.haskell.org/GHC.Generics says "try to ignore the p parameter in all types; it's there just for future compatibility"
00:42:29 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds)
00:43:21 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
00:45:07 Qudit joins (~user@user/Qudit)
00:45:17 mixfix41 joins (~sdenynine@user/mixfix41)
00:45:56 × gurkenglas quits (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 246 seconds)
00:46:47 × stackdroid18 quits (14094@user/stackdroid) (Quit: Lost terminal)
00:48:12 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:e9d4:5a2f:7c9:32c2)
00:49:07 × Qudit quits (~user@user/Qudit) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.1))
00:49:24 gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
00:50:24 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4)
00:51:29 × zincy quits (~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 255 seconds)
00:56:22 × alp quits (~alp@user/alp) (Ping timeout: 260 seconds)
00:58:09 × gurkenglas quits (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 258 seconds)
00:58:54 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 276 seconds)
00:59:34 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
01:01:45 × nehsou^ quits (~nehsou@128-092-173-218.biz.spectrum.com) (Remote host closed the connection)
01:05:04 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
01:09:26 vicfred joins (~vicfred@user/vicfred)
01:11:07 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:12:06 × ix quits (~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe) (Remote host closed the connection)
01:16:50 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 240 seconds)
01:17:14 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:20:39 zincy joins (~zincy@host86-160-236-152.range86-160.btcentralplus.com)
01:24:42 × unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Quit: Leaving)
01:24:50 × zincy quits (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Ping timeout: 240 seconds)
01:27:15 xff0x joins (~xff0x@s5.HtokyoFL1.vectant.ne.jp)
01:33:34 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
01:36:23 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
01:37:29 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:e9d4:5a2f:7c9:32c2) (Remote host closed the connection)
01:42:39 zincy joins (~zincy@host86-160-236-152.range86-160.btcentralplus.com)
01:43:14 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 255 seconds)
01:45:27 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 240 seconds)
01:52:37 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
01:52:59 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:e9d4:5a2f:7c9:32c2)
01:53:08 anon15041149 joins (~anon15041@host-80-41-95-245.as13285.net)
01:55:22 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
01:55:50 × codaraxis quits (~codaraxis@user/codaraxis) (Quit: Leaving)
01:55:55 <Bulby[m]> ok... i don't want to use haskeline for reading lines... is there something like it that um works crossplatform
01:56:06 <Bulby[m]> e.g. you can move cursor, edit it
01:56:56 andrey__ joins (~andrey@p200300dbcf08d40049142574c09c31d2.dip0.t-ipconnect.de)
01:57:34 × anon15041149 quits (~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
01:59:07 × andrey_ quits (~andrey@p200300dbcf3e8c0056be00b84949243d.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
02:00:35 <Bulby[m]> tbh i just want something that will make polysemy happy
02:02:24 hochata[m] is now known as hochata
02:04:00 × lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in)
02:06:28 frost joins (~frost@user/frost)
02:11:54 justsomeguy joins (~justsomeg@user/justsomeguy)
02:13:10 anon15041149 joins (~anon15041@host-80-41-95-245.as13285.net)
02:13:56 <dsal> the way I make polysemy happy is by leaving it alone. It doesn't get along well with others and seems to rather enjoy being off in the corner without being bothered by people trying to build things.
02:15:44 <Cale> ahaha, true
02:17:08 <Bulby[m]> haskeline uses MonadMask which is a pain to add to Sem
02:17:22 × anon15041149 quits (~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
02:18:08 <jackdk> http://lancs.ac.uk/~simmsb/writing-a-discord-library-using-polysemy/ hits the same problem, dunno if it's useful
02:19:48 lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
02:21:42 <Bulby[m]> also using haskeline as polysemy feels wrong given how polysemy works - it uses it's own monad transformer however it also has settings - altho this is how polysemy-req does it afaik
02:25:10 <Bulby[m]> peeking at state it does some magic parameterizing
02:32:43 <Bulby[m]> i need sleep, i'll get back at it tommorow
02:34:24 × hochata quits (~eqf0matri@2001:470:69fc:105::1:331a) (Quit: Reconnecting)
02:34:41 hochata joins (~hochata@2001:470:69fc:105::1:331a)
02:35:11 BLACK-SABBATH joins (~BLACK-SAB@vps-ace062ea.vps.ovh.ca)
02:39:32 × hochata quits (~hochata@2001:470:69fc:105::1:331a) (Quit: Reconnecting)
02:39:49 hochata joins (~hochata@2001:470:69fc:105::1:331a)
02:41:00 × hochata quits (~hochata@2001:470:69fc:105::1:331a) (Changing host)
02:41:00 hochata joins (~hochata@user/hochata)
02:41:36 × zincy quits (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Ping timeout: 276 seconds)
03:00:45 anon15041149 joins (~anon15041@host-80-41-95-245.as13285.net)
03:05:02 × anon15041149 quits (~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
03:05:14 a joins (~linuxman@36.72.98.248)
03:05:38 a is now known as Guest6425
03:06:02 × BLACK-SABBATH quits (~BLACK-SAB@vps-ace062ea.vps.ovh.ca) (Ping timeout: 255 seconds)
03:07:18 × Guest6425 quits (~linuxman@36.72.98.248) (Remote host closed the connection)
03:07:36 nate1 joins (~nate@98.45.169.16)
03:08:03 semediajalah joins (~linuxman@36.72.98.248)
03:09:44 zincy joins (~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)
03:15:43 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
03:16:56 × hueso quits (~root@user/hueso) (Quit: hueso)
03:19:48 × k` quits (~user@136.56.140.2) (Ping timeout: 244 seconds)
03:22:12 × semediajalah quits (~linuxman@36.72.98.248) (Remote host closed the connection)
03:22:35 semediajalah joins (~semediaja@180.251.225.78)
03:23:07 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 240 seconds)
03:25:53 z0k joins (~z0k@206.84.143.8)
03:31:16 hueso joins (~root@user/hueso)
03:38:32 × jollygood2 quits (www-data@2607:5300:60:8be::1) (Quit: CGI:IRC (Session timeout))
03:38:53 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 255 seconds)
03:41:03 nun12 joins (~nun@119.131.229.177)
03:42:29 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 255 seconds)
03:42:32 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
03:50:08 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
03:59:39 semediiii joins (~semediaja@118.96.192.67)
03:59:42 × semediiii quits (~semediaja@118.96.192.67) (Remote host closed the connection)
04:00:17 kirikkuh joins (~semediaja@118.96.192.67)
04:00:21 × kirikkuh quits (~semediaja@118.96.192.67) (Excess Flood)
04:00:44 kirikkuh joins (~semediaja@118.96.192.67)
04:01:14 × semediajalah quits (~semediaja@180.251.225.78) (Ping timeout: 246 seconds)
04:10:23 mbuf joins (~Shakthi@171.61.206.74)
04:13:16 × zincy quits (~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 258 seconds)
04:13:20 × kirikkuh quits (~semediaja@118.96.192.67) (Read error: Connection reset by peer)
04:16:18 kopoksirakuh joins (~kopoksira@36.72.154.207)
04:16:32 littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
04:17:31 × nun12 quits (~nun@119.131.229.177) (Quit: Connection closed)
04:17:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
04:21:34 × littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
04:21:55 bahamas joins (~lucian@84.232.141.167)
04:22:39 nate1 joins (~nate@98.45.169.16)
04:24:58 anon15041149 joins (~anon15041@host-80-41-95-245.as13285.net)
04:25:09 × kopoksirakuh quits (~kopoksira@36.72.154.207) (Ping timeout: 258 seconds)
04:26:35 × bahamas quits (~lucian@84.232.141.167) (Ping timeout: 255 seconds)
04:29:22 × anon15041149 quits (~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
04:30:38 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 255 seconds)
04:31:43 nate1 joins (~nate@98.45.169.16)
04:32:21 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
04:34:06 × tomgus1 quits (~tomgus1@2a02:c7e:4229:d900:dea6:32ff:fe3d:d1a3) (Remote host closed the connection)
04:34:22 tomgus1 joins (~tomgus1@90.218.25.145)
04:36:14 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds)
04:40:34 zincy joins (~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)
04:41:29 obabo joins (~obabo@563BF107.catv.pool.telekom.hu)
04:42:46 × kmein quits (~weechat@user/kmein) (Quit: ciao kakao)
04:43:17 kmein joins (~weechat@user/kmein)
04:45:29 × mvk quits (~mvk@2607:fea8:5ce3:8500::ba9a) (Ping timeout: 255 seconds)
04:54:39 kopoksirakuh joins (~anjing@vps-e326d58d.vps.ovh.ca)
05:00:03 × kopoksirakuh quits (~anjing@vps-e326d58d.vps.ovh.ca) (Remote host closed the connection)
05:00:28 kopoksirakuh joins (~anjing@vps-e326d58d.vps.ovh.ca)
05:06:20 × kmein quits (~weechat@user/kmein) (Quit: ciao kakao)
05:06:53 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:08:24 kmein joins (~weechat@user/kmein)
05:13:39 Qudit joins (~user@user/Qudit)
05:19:10 anon15041149 joins (~anon15041@host-80-41-95-245.as13285.net)
05:22:07 Midjak joins (~Midjak@82.66.147.146)
05:22:22 leib joins (~leib@2405:201:900a:f088:891:1469:e5c3:20bf)
05:23:38 × anon15041149 quits (~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
05:25:56 × kopoksirakuh quits (~anjing@vps-e326d58d.vps.ovh.ca) (Remote host closed the connection)
05:26:05 kopoksirakuhaja joins (~anjing@36.80.94.89)
05:32:22 dcoutts_ joins (~duncan@host86-150-41-146.range86-150.btcentralplus.com)
05:33:43 seriously joins (~seriously@ool-18bd5811.dyn.optonline.net)
05:33:51 × seriously quits (~seriously@ool-18bd5811.dyn.optonline.net) (Client Quit)
05:35:07 × dcoutts quits (~duncan@host86-150-41-146.range86-150.btcentralplus.com) (Ping timeout: 256 seconds)
05:36:43 × leib quits (~leib@2405:201:900a:f088:891:1469:e5c3:20bf) (Remote host closed the connection)
05:37:03 leib joins (~leib@2405:201:900a:f088:891:1469:e5c3:20bf)
05:38:32 × kopoksirakuhaja quits (~anjing@36.80.94.89) (Remote host closed the connection)
05:39:08 kopoksirakuh joins (~anjing@36.80.94.89)
05:39:34 anon15041149 joins (~anon15041@host-80-41-95-245.as13285.net)
05:40:20 Feuermagier_ joins (~Feuermagi@2a02:2488:4211:3400:9757:fce7:dee0:8d0e)
05:42:58 × Feuermagier quits (~Feuermagi@user/feuermagier) (Ping timeout: 258 seconds)
05:43:48 × anon15041149 quits (~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
05:44:24 <dragestil> Do people get "There are files missing in the ‘cabal-doctest-1.0.9’ package," when doing cabal [new-]build?
05:45:07 × zincy quits (~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 260 seconds)
05:46:04 anon15041149 joins (~anon15041@host-80-41-95-245.as13285.net)
05:50:24 × anon15041149 quits (~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
05:51:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
05:51:18 × szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
05:51:26 × leib quits (~leib@2405:201:900a:f088:891:1469:e5c3:20bf) (Quit: Leaving)
05:54:12 anjingaja joins (~anjing@180.251.232.19)
05:54:15 × anjingaja quits (~anjing@180.251.232.19) (Excess Flood)
05:54:38 anjingaja joins (~anjing@180.251.232.19)
05:55:00 × kopoksirakuh quits (~anjing@36.80.94.89) (Ping timeout: 246 seconds)
05:55:38 michalz joins (~michalz@185.246.204.101)
05:55:56 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
05:58:37 odnes joins (~odnes@5-203-156-66.pat.nym.cosmote.net)
06:02:25 anon15041149 joins (~anon15041@host-80-41-95-245.as13285.net)
06:06:32 × anon15041149 quits (~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
06:08:34 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
06:09:55 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
06:12:46 mmhat joins (~mmh@p200300f1c70584f2ee086bfffe095315.dip0.t-ipconnect.de)
06:14:07 zincy joins (~zincy@host86-160-236-152.range86-160.btcentralplus.com)
06:16:12 coot joins (~coot@213.134.190.95)
06:19:46 chomwitt joins (~chomwitt@2a02:587:dc10:4700:ae5d:2d37:a960:78b1)
06:24:45 × foul_owl quits (~kerry@23.82.194.92) (Ping timeout: 246 seconds)
06:29:15 × anjingaja quits (~anjing@180.251.232.19) (Read error: Connection reset by peer)
06:34:43 acidjnk joins (~acidjnk@p200300d0c7068b57b4ddf1e14e3049be.dip0.t-ipconnect.de)
06:36:12 chele joins (~chele@user/chele)
06:39:13 trisolaran joins (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
06:40:16 anon15041149 joins (~anon15041@host-80-41-95-245.as13285.net)
06:40:18 foul_owl joins (~kerry@23.82.194.93)
06:42:14 × Qudit quits (~user@user/Qudit) (Ping timeout: 246 seconds)
06:44:40 × anon15041149 quits (~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
06:47:28 christiansen joins (~christian@83-95-137-75-dynamic.dk.customer.tdc.net)
06:52:34 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
06:53:35 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
06:56:17 fef joins (~thedawn@user/thedawn)
06:58:54 <dragestil> turned out it's a problem with arch gnu/linux way of doing haskell
06:59:39 × dextaa quits (~DV@user/dextaa) (Read error: Connection reset by peer)
06:59:57 dextaa joins (~DV@user/dextaa)
07:01:56 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
07:03:27 dextaa5 joins (~DV@user/dextaa)
07:03:37 <jackdk> dragestil: seems most people get their GHC from ghcup these days, not distro packages
07:03:52 × dextaa quits (~DV@user/dextaa) (Read error: Connection reset by peer)
07:03:52 dextaa5 is now known as dextaa
07:04:09 lortabac joins (~lortabac@2a01:e0a:541:b8f0:64d0:3127:9431:c97e)
07:04:26 × _xor quits (~xor@72.49.198.103) (Quit: brb)
07:04:30 alp joins (~alp@user/alp)
07:04:37 <dragestil> jackdk: ghcup is pretty neat
07:04:38 × z0k quits (~z0k@206.84.143.8) (Ping timeout: 246 seconds)
07:07:22 × christiansen quits (~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Remote host closed the connection)
07:10:53 jgeerds joins (~jgeerds@55d45f48.access.ecotel.net)
07:12:07 cfricke joins (~cfricke@user/cfricke)
07:17:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
07:18:29 × zincy quits (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Ping timeout: 255 seconds)
07:22:36 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:26:13 ffi-curious joins (~ffi-curio@94.147.68.197)
07:28:26 <ffi-curious> Hello! I am looking into making bindings to some C functions in MacOS just for my own usage. The tricky thing is that `FSEventStreamCreate` takes a function pointer that is called whenever an event occurs.
07:29:02 <ffi-curious> If I could call a `FunPtr` to `tryPutMVar` from the C code (which I know is possible) that seems like it would ideal for performance. The problem is that I do not know if that is safe for the Haskell runtime.
07:29:08 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
07:29:13 <ffi-curious> Does anyone know much about this scenario?
07:32:38 zincy joins (~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)
07:33:30 <ffi-curious> Alternatively, does anyone know if there's a better place to ask about this?
07:36:49 × ehammarstrom quits (~ehammarst@62-20-203-39-no182.tbcn.telia.com) (Ping timeout: 258 seconds)
07:37:14 zeenk joins (~zeenk@2a02:2f04:a104:ef00:10:581:f80f:b980)
07:39:24 ehammarstrom joins (~ehammarst@62-20-203-39-no182.tbcn.telia.com)
07:39:31 nctcf^ joins (~nctcf@128-092-173-218.biz.spectrum.com)
07:41:34 × causal quits (~user@50.35.83.177) (Quit: WeeChat 3.5)
07:42:12 littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
07:43:04 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
07:43:12 × jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 276 seconds)
07:43:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
07:43:39 gehmehgeh joins (~user@user/gehmehgeh)
07:43:43 × ehammarstrom quits (~ehammarst@62-20-203-39-no182.tbcn.telia.com) (Ping timeout: 258 seconds)
07:44:25 machinedgod joins (~machinedg@24.105.81.50)
07:47:35 <tdammers> Have you read this bit: https://wiki.haskell.org/GHC/Using_the_FFI
07:47:50 <tdammers> the TL;DR: it should be OK as long as you don't mark your imports as `unsafe`.
07:48:27 × trisolaran quits (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds)
07:50:03 <dminuoso> Possibly unpopular opinion: unsafe ffi should be made to behave as safe in GHC.
07:50:16 <dminuoso> It'd be conforming to specification, and reduce quite a few bugs.
07:52:24 <dminuoso> And perhaps add some -f-unsafe-as-unsafe-ffi flag that brings the old behavior back. 5 out of the 5 FFI libraries last used hung up my Haskell programs annoyingly. :(
07:52:48 <ffi-curious> tdammers, I am not so familiar with Windows programming, but I think this is saying, "it is fine for there to be a thread running some C code, and it can call the `FncPtr` as long as you deallocate everything afterwards." Does that match your understanding?
07:53:47 <ffi-curious> The MacOS file watching API needs you to spawn a thread specifically for the watcher. (I assume Haskell doesn't make a "run loop" at least.) So if I am understanding the Windows case right, I think it should be the same for my scenario.
07:53:52 <dminuoso> ffi-curious: An FFI function can be marked `unsafe` or `safe`. If its marked `unsafe` you should (probably must) not invoke functions that can block for a long time, and you may not call back into Haskell land from C.
07:54:24 <dminuoso> In other words: If you want to call back into Haskell code, you should only do this from FFI functions marked as `safe`
07:54:40 <tdammers> Also: https://wiki.haskell.org/GHC/Using_the_FFI#Are_FunPtr.27s_stable.3F
07:57:09 × biberu quits (~biberu@user/biberu) (Read error: Connection reset by peer)
07:57:15 <dminuoso> tdammers: Mmm, that last note about freeing a FunPtr from inside itself is incorrect. The linked thread contains a lot of "uh I worked on it and Im not even sure"
07:57:29 biberu joins (~biberu@user/biberu)
07:57:40 dminuoso should probaby make a wiki account
07:58:07 <tdammers> hmm, good point
07:58:38 × zeenk quits (~zeenk@2a02:2f04:a104:ef00:10:581:f80f:b980) (Quit: Konversation terminated!)
07:58:55 <ffi-curious> Thank you for the great links! This is super helpful info! It's been a bit since I read about the specifics of `safe`. In the file watcher case, the Mac API wants you to `pthread_create` a thread specifically for the "run loop". So my ways of communicating with Haskell from there are (1) write a file descriptor so that I can use `threadWaitRead` or
07:58:55 <ffi-curious> (2) use `tryPutMVar` directly. Would `safe` have any impact on (2)? I thought it was about the specific way the function was called?
08:00:13 <ffi-curious> Hmm, I guess https://github.com/luite/hfsevents/blob/master/System/OSX/FSEvents.hs does use the `safe` calls.
08:01:20 ehammarstrom joins (~ehammarst@62-20-203-39-no182.tbcn.telia.com)
08:01:44 <ffi-curious> My theory on going for (2) is that I can skip having the info go through a pipe (and doing another user space to kernel space to user space traversal)
08:02:04 × littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Remote host closed the connection)
08:02:22 <dminuoso> ffi-curious: safe has no impact on (2) and would be the preferable method.
08:02:36 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
08:02:57 <dminuoso> ffi-curious: Be sure to also consider STM
08:03:13 <dminuoso> (TQueue might be of interest to you as well)
08:04:22 Inst joins (~Liam@c-98-208-218-119.hsd1.fl.comcast.net)
08:04:38 <dminuoso> In fact, the note about pthread_create API is just about internals. When you forkIO/async a separate Haskell thread, you get the same behavior.
08:05:18 <dminuoso> So you have a kind of "run loop" when you write `forkIO watcher` with `watcher = forever $ do tok <- takeMVar ref; stuff`
08:05:28 <ffi-curious> My scenario is just a very bespoke file watcher, so the reason for `tryPutMVar` is that I can use it as a "queue" with a length of 1. It essentially is saying "hey, some events occurred that you should look into".
08:05:55 <dminuoso> Do you care about the file event itself?
08:05:55 <ffi-curious> Where's the note about pthread_create?
08:06:04 <dminuoso> ffi-curious: the one you made.
08:06:26 <dminuoso> `[...] In the file watcher case, the Mac API wants you to `pthread_create` a thread specifically for the "run loop" [...]`
08:07:01 <ffi-curious> Oh, I think I see. Are you saying that GHC will also use pthread_create and call things like tryPutMVar?
08:07:23 <ffi-curious> And in that case, why would it be an issue to call tryPutMVar if the pthread was not created by GHC?
08:07:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
08:07:44 littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
08:07:49 <ffi-curious> (I do not care about the file events. Other code will sort that out.)
08:07:52 <dminuoso> You're reading too much into the requirement of pthread_create
08:08:27 <dminuoso> All this is saying: "you likely want to use a separate thread and somehow notify this on the event [rather than blocking in the callback]"
08:08:42 × Inst quits (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 246 seconds)
08:09:02 × ehammarstrom quits (~ehammarst@62-20-203-39-no182.tbcn.telia.com) (Ping timeout: 246 seconds)
08:09:51 <ffi-curious> From https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/FSEvents_ProgGuide/UsingtheFSEventsFramework/UsingtheFSEventsFramework.html
08:09:51 <ffi-curious> "Once you have created an event stream, you must schedule it on your application’s run loop."
08:09:52 <ffi-curious> "If you don’t already have a run loop, you will need to devote a thread to this task."
08:10:07 <dminuoso> Yes, just use forkIO with forever/infinite recursion.
08:10:17 <dminuoso> That will give you your event loop
08:10:23 <dminuoso> Use MVar or STM to wake it up
08:10:37 <dminuoso> Heck, you could even do this from the main thread without forkIO if you wanted to
08:13:28 ehammarstrom joins (~ehammarst@62-20-203-39-no182.tbcn.telia.com)
08:13:51 <ffi-curious> I am familiar with Haskell's light weight threads and the various concurrency primitives, but I think the MacOS API has stronger requirements.
08:13:51 <ffi-curious> From https://developer.apple.com/library/archive/documentation/CoreFoundation/Conceptual/CFRunLoops/Concepts/RunLoops.html#//apple_ref/doc/uid/20001517-CJBJHAJG
08:13:52 <ffi-curious> "Run loops are strongly tied to the threads in your application. Every thread has exactly one run loop. No more and no less."
08:13:52 <ffi-curious> I do not know the details of `forkOS`, but it does seem safer to just use `pthread_create` so that there's 100% certainty to follow the MacOS rules about runloops
08:15:19 <ffi-curious> Oh, I see, I think you were describing what the Haskell side will be like. That is no problem! The part I'm worried about is the interaction between C and the Haskell runtime when Haskell function like `tryPutMVar` is called from C.
08:15:22 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
08:23:01 <ffi-curious> Maybe I don't see, haha, reading the links more times!
08:25:04 Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net)
08:27:16 × shriekingnoise quits (~shrieking@201.231.16.156) (Quit: Quit)
08:34:14 × coot quits (~coot@213.134.190.95) (Quit: coot)
08:34:47 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
08:35:47 × zincy quits (~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 240 seconds)
08:40:05 coot joins (~coot@213.134.190.95)
08:40:11 × odnes quits (~odnes@5-203-156-66.pat.nym.cosmote.net) (Ping timeout: 246 seconds)
08:40:44 × nctcf^ quits (~nctcf@128-092-173-218.biz.spectrum.com) (Remote host closed the connection)
08:41:49 <ffi-curious> Started looking through the GHC source code and found a very interesting lead!
08:41:50 <ffi-curious> https://gitlab.haskell.org/ghc/ghc/-/blob/master/rts/RtsAPI.c#L906-931
08:43:22 odnes joins (~odnes@5-203-156-66.pat.nym.cosmote.net)
08:43:59 <ffi-curious> https://downloads.haskell.org/~ghc/8.10.7/docs/html/users_guide/ffi-chap.html#waking-up-haskell-threads-from-c
08:48:40 × Feuermagier_ quits (~Feuermagi@2a02:2488:4211:3400:9757:fce7:dee0:8d0e) (Quit: Leaving)
08:48:53 Feuermagier joins (~Feuermagi@user/feuermagier)
08:49:23 <ffi-curious> Incredible, I believe that's the answer! Thank you to tdammers and dminuoso!
08:49:40 krappix joins (~krappix@nat-eduroam-76-gw-01-lne.lille.inria.fr)
08:50:19 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
08:50:50 wootehfoot joins (~wootehfoo@user/wootehfoot)
08:51:33 × odnes quits (~odnes@5-203-156-66.pat.nym.cosmote.net) (Read error: Connection reset by peer)
08:51:58 gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
08:52:54 mc47 joins (~mc47@xmonad/TheMC47)
08:56:21 odnes joins (~odnes@5-203-221-73.pat.nym.cosmote.net)
08:57:41 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 246 seconds)
08:59:46 __monty__ joins (~toonn@user/toonn)
09:00:46 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 258 seconds)
09:03:04 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 258 seconds)
09:05:41 zincy joins (~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)
09:06:13 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
09:07:04 jgeerds joins (~jgeerds@55d45f48.access.ecotel.net)
09:18:04 × littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
09:18:33 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:e9d4:5a2f:7c9:32c2) (Remote host closed the connection)
09:20:27 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
09:21:16 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
09:21:34 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
09:23:18 zaquest joins (~notzaques@5.130.79.72)
09:24:04 × fef quits (~thedawn@user/thedawn) (Ping timeout: 240 seconds)
09:27:25 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
09:32:07 trisolaran joins (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
09:32:39 × trisolaran quits (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Read error: Connection reset by peer)
09:36:54 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
09:36:56 × ffi-curious quits (~ffi-curio@94.147.68.197) (Quit: Client closed)
09:37:41 vglfr joins (~vglfr@coupling.penchant.volia.net)
09:43:00 Pickchea joins (~private@user/pickchea)
09:43:00 CiaoSen joins (~Jura@p200300c95731a0002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
09:44:17 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
09:45:20 vglfr joins (~vglfr@coupling.penchant.volia.net)
09:50:48 odnes_ joins (~odnes@5-203-221-73.pat.nym.cosmote.net)
09:50:54 × odnes quits (~odnes@5-203-221-73.pat.nym.cosmote.net) (Read error: Connection reset by peer)
09:54:31 × odnes_ quits (~odnes@5-203-221-73.pat.nym.cosmote.net) (Client Quit)
09:58:24 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
10:06:12 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
10:07:00 vglfr joins (~vglfr@coupling.penchant.volia.net)
10:09:07 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
10:09:47 × zincy quits (~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 240 seconds)
10:10:00 vglfr joins (~vglfr@coupling.penchant.volia.net)
10:13:18 × krappix quits (~krappix@nat-eduroam-76-gw-01-lne.lille.inria.fr) (Ping timeout: 252 seconds)
10:14:03 targerian1999 joins (~Mular@196.190.62.98)
10:17:04 × gehmehgeh quits (~user@user/gehmehgeh) (Ping timeout: 240 seconds)
10:18:48 × targerian1999 quits (~Mular@196.190.62.98) (Quit: Leaving)
10:18:58 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:f072:4241:498:eedf)
10:19:05 gehmehgeh joins (~user@user/gehmehgeh)
10:19:30 × Pickchea quits (~private@user/pickchea) (Ping timeout: 240 seconds)
10:23:26 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:f072:4241:498:eedf) (Ping timeout: 255 seconds)
10:28:32 titibandit joins (~thibaut@xdsl-87-78-253-243.nc.de)
10:36:15 × Trattue- quits (~Trattue@152.70.182.158) (Quit: bye)
10:37:19 jakalx parts (~jakalx@base.jakalx.net) ()
10:37:38 nun90 joins (~nun@113.111.33.38)
10:39:12 jakalx joins (~jakalx@base.jakalx.net)
10:39:53 <nun90> hey gay
10:41:20 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
10:42:36 <nun90> When I type in stack,I have a problem
10:42:41 × titibandit quits (~thibaut@xdsl-87-78-253-243.nc.de) (Quit: Leaving.)
10:42:49 <nun90> Uploaded file: https://uploads.kiwiirc.com/files/14180d215db0930a2a511e5688562297/logs.txt
10:42:52 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
10:43:08 vglfr joins (~vglfr@coupling.penchant.volia.net)
10:43:29 <nun90> :G
10:44:07 × xff0x quits (~xff0x@s5.HtokyoFL1.vectant.ne.jp) (Ping timeout: 240 seconds)
10:44:07 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
10:44:20 vglfr joins (~vglfr@coupling.penchant.volia.net)
10:46:33 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
10:47:41 vglfr joins (~vglfr@coupling.penchant.volia.net)
10:48:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
10:49:05 × alp quits (~alp@user/alp) (Remote host closed the connection)
10:49:30 alp joins (~alp@user/alp)
10:51:56 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
10:52:11 vglfr joins (~vglfr@coupling.penchant.volia.net)
10:54:17 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
10:54:17 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
10:55:39 vglfr joins (~vglfr@coupling.penchant.volia.net)
10:56:36 zincy joins (~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)
10:58:37 Trattue joins (~Trattue@152.70.182.158)
10:58:37 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
10:59:05 krappix joins (~krappix@nat-eduroam-76-gw-01-lne.lille.inria.fr)
10:59:20 × Me-me quits (~me-me@user/me-me) (Quit: Disconnecting on purpose.)
10:59:49 vglfr joins (~vglfr@coupling.penchant.volia.net)
11:00:23 Me-me joins (~me-me@tunnel690570-pt.tunnel.tserv12.mia1.ipv6.he.net)
11:00:28 × chomwitt quits (~chomwitt@2a02:587:dc10:4700:ae5d:2d37:a960:78b1) (Quit: Leaving)
11:00:40 × zincy quits (~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 244 seconds)
11:01:07 × jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 240 seconds)
11:01:39 kspalaiologos joins (~kspalaiol@user/kspalaiologos)
11:03:00 × Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Ping timeout: 246 seconds)
11:03:07 Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net)
11:04:01 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
11:05:05 vglfr joins (~vglfr@coupling.penchant.volia.net)
11:06:59 chomwitt joins (~chomwitt@2a02:587:dc10:4700:ae5d:2d37:a960:78b1)
11:10:31 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
11:11:37 vglfr joins (~vglfr@coupling.penchant.volia.net)
11:17:37 nctcf^ joins (~nctcf@128-092-173-218.biz.spectrum.com)
11:17:41 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
11:18:58 vglfr joins (~vglfr@coupling.penchant.volia.net)
11:26:28 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
11:26:36 vglfr joins (~vglfr@coupling.penchant.volia.net)
11:30:27 zincy joins (~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)
11:30:27 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
11:31:02 vglfr joins (~vglfr@coupling.penchant.volia.net)
11:43:42 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 276 seconds)
11:43:51 <geekosaur> nun90, I'm not a stack user but my guess is you need a project to be able to use packages that aren't in stackage
11:44:17 <geekosaur> the warning at the top seems to be telling you this (and how to work around it if you really do want to use the global project)
11:45:21 × mbuf quits (~Shakthi@171.61.206.74) (Ping timeout: 246 seconds)
11:46:09 mbuf joins (~Shakthi@171.61.167.50)
11:46:55 xff0x joins (~xff0x@b133147.ppp.asahi-net.or.jp)
11:51:10 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
11:51:44 vglfr joins (~vglfr@coupling.penchant.volia.net)
11:54:42 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
11:56:42 × mbuf quits (~Shakthi@171.61.167.50) (Ping timeout: 276 seconds)
11:57:04 mbuf joins (~Shakthi@122.164.6.41)
12:00:38 Pickchea joins (~private@user/pickchea)
12:03:50 × nctcf^ quits (~nctcf@128-092-173-218.biz.spectrum.com) (Ping timeout: 240 seconds)
12:04:36 × __monty__ quits (~toonn@user/toonn) (Ping timeout: 246 seconds)
12:06:06 __monty__ joins (~toonn@user/toonn)
12:07:12 Guest72 joins (~Guest72@240e:341:3834:600:9c2a:daca:c687:f549)
12:09:30 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
12:09:39 × coot quits (~coot@213.134.190.95) (Quit: coot)
12:10:35 vglfr joins (~vglfr@coupling.penchant.volia.net)
12:12:27 × nun90 quits (~nun@113.111.33.38) (Quit: Connection closed)
12:15:09 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
12:15:23 vglfr joins (~vglfr@coupling.penchant.volia.net)
12:17:44 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
12:18:47 vglfr joins (~vglfr@coupling.penchant.volia.net)
12:23:29 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
12:31:10 × oo_miguel quits (~pi@77.252.47.226) (Ping timeout: 240 seconds)
12:33:15 oo_miguel joins (~pi@77.252.47.226)
12:33:28 jollygood2 joins (www-data@2607:5300:60:8be::1)
12:34:02 × zincy quits (~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 260 seconds)
12:34:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
12:40:13 nctcf^ joins (~nctcf@128-092-173-218.biz.spectrum.com)
12:41:10 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
12:41:55 vglfr joins (~vglfr@coupling.penchant.volia.net)
12:42:21 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
12:43:50 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
12:45:59 Vajb joins (~Vajb@2001:999:600:879a:e69c:7638:2849:8a14)
12:46:29 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
12:46:30 zincy joins (~zincy@host86-160-236-152.range86-160.btcentralplus.com)
12:47:18 vglfr joins (~vglfr@coupling.penchant.volia.net)
12:48:37 × Pickchea quits (~private@user/pickchea) (Ping timeout: 260 seconds)
12:48:41 kuribas joins (~user@ptr-17d51eo168763770uwd.18120a2.ip6.access.telenet.be)
12:51:02 × Guest72 quits (~Guest72@240e:341:3834:600:9c2a:daca:c687:f549) (Quit: Client closed)
12:54:00 nun8 joins (~nun@113.111.33.38)
12:54:13 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.5)
12:54:51 × obabo quits (~obabo@563BF107.catv.pool.telekom.hu) (Ping timeout: 256 seconds)
12:58:16 × __monty__ quits (~toonn@user/toonn) (Ping timeout: 272 seconds)
13:00:19 × kspalaiologos quits (~kspalaiol@user/kspalaiologos) (Quit: Leaving)
13:02:14 × nctcf^ quits (~nctcf@128-092-173-218.biz.spectrum.com) (Ping timeout: 252 seconds)
13:03:27 × acidjnk quits (~acidjnk@p200300d0c7068b57b4ddf1e14e3049be.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
13:05:15 × hughjfchen quits (~hughjfche@vmi556545.contaboserver.net) (Quit: WeeChat 2.8)
13:06:46 califax joins (~califax@user/califx)
13:07:56 hughjfchen joins (~hughjfche@vmi556545.contaboserver.net)
13:10:22 zeenk joins (~zeenk@2a02:2f04:a104:ef00:10:581:f80f:b980)
13:11:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
13:12:50 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
13:13:50 vglfr joins (~vglfr@coupling.penchant.volia.net)
13:14:21 cfricke joins (~cfricke@user/cfricke)
13:14:30 × supersven quits (sid501114@id-501114.ilkley.irccloud.com) (Quit: Connection closed for inactivity)
13:16:32 × Vajb quits (~Vajb@2001:999:600:879a:e69c:7638:2849:8a14) (Read error: Connection reset by peer)
13:16:51 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
13:18:28 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
13:20:26 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
13:21:37 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
13:21:38 × Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 255 seconds)
13:21:43 dcoutts__ joins (~duncan@host86-144-78-203.range86-144.btcentralplus.com)
13:22:59 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
13:23:09 × gurkenglas quits (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 276 seconds)
13:23:12 vglfr joins (~vglfr@coupling.penchant.volia.net)
13:23:27 Pickchea joins (~private@user/pickchea)
13:23:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
13:24:30 × dcoutts_ quits (~duncan@host86-150-41-146.range86-150.btcentralplus.com) (Ping timeout: 258 seconds)
13:24:31 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
13:24:57 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
13:25:15 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
13:25:30 Maxdamantus joins (~Maxdamant@user/maxdamantus)
13:26:02 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
13:27:33 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
13:27:52 vglfr joins (~vglfr@coupling.penchant.volia.net)
13:29:00 × xff0x quits (~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 276 seconds)
13:29:43 × krappix quits (~krappix@nat-eduroam-76-gw-01-lne.lille.inria.fr) (Quit: Client closed)
13:31:30 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 250 seconds)
13:32:59 cfricke joins (~cfricke@user/cfricke)
13:36:47 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
13:37:41 vglfr joins (~vglfr@coupling.penchant.volia.net)
13:40:05 coot joins (~coot@213.134.190.95)
13:40:35 xff0x joins (~xff0x@b133147.ppp.asahi-net.or.jp)
13:40:48 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
13:40:56 vglfr joins (~vglfr@coupling.penchant.volia.net)
13:45:22 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
13:45:33 vglfr joins (~vglfr@coupling.penchant.volia.net)
13:46:22 × nun8 quits (~nun@113.111.33.38) (Quit: Connection closed)
13:46:57 × raym quits (~raym@user/raym) (Quit: kernel update, rebooting...)
13:48:19 raym joins (~raym@user/raym)
13:48:27 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 240 seconds)
13:48:59 × zincy quits (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Ping timeout: 252 seconds)
13:51:06 shapr joins (~user@pool-173-73-44-186.washdc.fios.verizon.net)
13:51:06 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
13:51:15 vglfr joins (~vglfr@coupling.penchant.volia.net)
13:51:37 Infinite joins (~Infinite@49.39.125.79)
13:52:17 <shapr> what are good options for cabal test to show all the things? I've been using: cabal test --test-show-details=direct --test-option=--format=progress
13:52:29 <shapr> but that doesn't show me each of the hspec names, how do I see more?
13:53:01 <shapr> oh, I bet I can find out on http://hspec.github.io/options.html
13:55:19 <maerwald[m]> shapr: I simply don't use `cabal test`, but `cabal run`
13:58:02 × alp quits (~alp@user/alp) (Ping timeout: 260 seconds)
13:58:42 moonsheep joins (~user@user/moonsheep)
14:00:13 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
14:01:23 nun27 joins (~nun@113.111.33.38)
14:01:35 × nun27 quits (~nun@113.111.33.38) (Client Quit)
14:03:05 zincy joins (~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)
14:03:54 <moonsheep> is there a good way to automatically derive a PersistEntity from an already existing type in persistent? (without using the quasiquoter I mean)
14:04:13 <moonsheep> I found derivePersistFieldJSON, but that only creates a PersistField, not the full PersistEntity
14:04:18 × frost quits (~frost@user/frost) (Ping timeout: 252 seconds)
14:04:46 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
14:07:05 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
14:07:25 vglfr joins (~vglfr@coupling.penchant.volia.net)
14:09:43 titibandit joins (~thibaut@xdsl-87-78-253-243.nc.de)
14:09:48 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
14:11:19 jgeerds joins (~jgeerds@55d45f48.access.ecotel.net)
14:13:11 × Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 258 seconds)
14:14:43 × lbseale quits (~quassel@user/ep1ctetus) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
14:15:15 × califax quits (~califax@user/califx) (Remote host closed the connection)
14:16:13 Maxdamantus joins (~Maxdamant@user/maxdamantus)
14:16:23 lbseale joins (~quassel@user/ep1ctetus)
14:17:11 × lbseale quits (~quassel@user/ep1ctetus) (Client Quit)
14:18:31 lbseale joins (~quassel@user/ep1ctetus)
14:19:21 × Pickchea quits (~private@user/pickchea) (Ping timeout: 246 seconds)
14:25:04 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
14:25:07 moonsheep parts (~user@user/moonsheep) (ERC 5.4 (IRC client for GNU Emacs 28.1))
14:25:47 shriekingnoise joins (~shrieking@201.231.16.156)
14:26:26 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
14:27:24 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
14:27:41 slack1256 joins (~slack1256@181.43.227.124)
14:30:21 slac98734 joins (~slack1256@191.125.99.206)
14:32:44 × slack1256 quits (~slack1256@181.43.227.124) (Ping timeout: 255 seconds)
14:41:03 × coot quits (~coot@213.134.190.95) (Quit: coot)
14:44:33 kaskal- is now known as kaskal
14:44:38 Badgerington joins (~Badgering@cpc121256-nmal25-2-0-cust191.19-2.cable.virginm.net)
14:45:06 coot joins (~coot@213.134.190.95)
14:45:19 <Badgerington> Hello I am trying to download Haskell to work on some music in supercollider with Tidalcycles
14:45:45 <geekosaur> we generally recommend ghcup
14:45:52 <Badgerington> I have put this into my terminal window : curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
14:46:14 <Badgerington> curl: (60) SSL certificate problem: certificate has expired
14:46:14 <Badgerington> More details here: https://curl.haxx.se/docs/sslcerts.html
14:47:46 <Badgerington> it also says no such file or directory
14:47:55 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
14:48:08 vglfr joins (~vglfr@coupling.penchant.volia.net)
14:49:43 <geekosaur> the cert on get-ghcup.haskell.org appears to be fine. is your local root certificate chain up to date? (the root cert for *.haskell.org's certificates was updated last August, and the old one has expired)
14:49:47 <int-e> well, that certificate error is odd. (Can't reproduce; the certificate I see is valid until July 24th)
14:50:46 <Badgerington> Is there a way for me to check if it is up to date? Sorry absolute beginner here
14:51:00 <hpc> works for me on fedora 31
14:51:16 <hpc> also jeez, i really need to update
14:51:24 <shapr> oh hey, I've started a series of random talks, and Samuel Gelineau was the first, here's a talk about recursion schemes: https://youtu.be/2O4tYeDga8o
14:51:44 <hpc> Badgerington: what os are you on?
14:52:02 Inst joins (~Liam@c-98-208-218-119.hsd1.fl.comcast.net)
14:52:06 <Badgerington> mojave 10.14.6
14:52:50 <hpc> make sure you have DST Root CA X3 in your root ca store?
14:52:55 <hpc> i don't know much about how mac does certs
14:53:17 <hpc> (see also openssl s_client -connect get-ghcup.haskell.org:443)
14:54:12 <geekosaur> it'll be the Keychain Access app
14:54:36 <geekosaur> I don't know if it has an option to update the root certificates
14:54:41 <hpc> also if you follow that curl.haxx.se link, it tells you how to use firefox's ca bundle
14:54:44 <hpc> which definitely has it
14:56:35 × Inst quits (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 255 seconds)
14:56:56 <hpc> also if you can't get your os cert store updated, curl has --cacert
14:57:54 <Badgerington> i am on the keychain access app and can see that some have expired but there is one that is active
15:00:00 alp joins (~alp@user/alp)
15:00:00 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
15:00:52 vglfr joins (~vglfr@coupling.penchant.volia.net)
15:03:01 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4)
15:03:11 razetime joins (~quassel@117.254.34.190)
15:05:19 × zincy quits (~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 258 seconds)
15:05:22 × coot quits (~coot@213.134.190.95) (Quit: coot)
15:05:58 Guest|59 joins (~Guest|59@220.173.207.42)
15:06:26 × Guest|59 quits (~Guest|59@220.173.207.42) (Client Quit)
15:07:57 × Badgerington quits (~Badgering@cpc121256-nmal25-2-0-cust191.19-2.cable.virginm.net) (Quit: Connection closed)
15:08:42 Sgeo joins (~Sgeo@user/sgeo)
15:10:35 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 260 seconds)
15:14:47 <geekosaur> you need specifically the key for /C=US/O=Internet Security Research Group/CN=ISRG Root X1
15:15:51 <geekosaur> https://apple.stackexchange.com/questions/422332/how-do-i-update-my-root-certificates-on-an-older-version-of-mac-os-e-g-el-capi
15:16:00 <geekosaur> oh, they're gone :(
15:17:48 <int-e> Hah, "antique"
15:18:04 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
15:19:03 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
15:19:24 zincy joins (~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)
15:19:32 ahubers joins (~ahubers@2620:0:e50:1401:3446:aab5:fdae:8c7d)
15:19:49 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:64d0:3127:9431:c97e) (Quit: WeeChat 2.8)
15:20:00 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
15:20:11 vglfr joins (~vglfr@coupling.penchant.volia.net)
15:22:37 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
15:23:15 vglfr joins (~vglfr@coupling.penchant.volia.net)
15:23:19 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:f072:4241:498:eedf)
15:23:42 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
15:24:59 vglfr joins (~vglfr@coupling.penchant.volia.net)
15:27:27 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:f072:4241:498:eedf) (Ping timeout: 240 seconds)
15:27:47 × jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 240 seconds)
15:29:10 wootehfoot joins (~wootehfoo@user/wootehfoot)
15:29:10 × Infinite quits (~Infinite@49.39.125.79) (Quit: Client closed)
15:29:15 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
15:29:26 vglfr joins (~vglfr@coupling.penchant.volia.net)
15:30:11 __monty__ joins (~toonn@user/toonn)
15:30:30 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
15:30:33 nctcf^ joins (~nctcf@128-092-173-218.biz.spectrum.com)
15:31:33 coot joins (~coot@213.134.190.95)
15:31:42 slac98734 is now known as slack1256
15:32:13 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:f072:4241:498:eedf)
15:32:26 vglfr joins (~vglfr@coupling.penchant.volia.net)
15:37:21 gehmehgeh joins (~user@user/gehmehgeh)
15:38:02 × nctcf^ quits (~nctcf@128-092-173-218.biz.spectrum.com) (Remote host closed the connection)
15:40:17 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
15:41:27 × jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 256 seconds)
15:43:48 obabo joins (~obabo@563BF107.catv.pool.telekom.hu)
15:44:25 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
15:45:26 __monty__ joins (~toonn@user/toonn)
15:47:12 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
15:47:53 vglfr joins (~vglfr@coupling.penchant.volia.net)
15:48:21 <Bulby[m]> does recursive State in polysemy work how I think it does (perserving state)
15:53:00 × ahubers quits (~ahubers@2620:0:e50:1401:3446:aab5:fdae:8c7d) (Quit: Client closed)
15:54:30 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
15:55:17 vglfr joins (~vglfr@coupling.penchant.volia.net)
15:55:55 econo joins (uid147250@user/econo)
15:56:27 × chomwitt quits (~chomwitt@2a02:587:dc10:4700:ae5d:2d37:a960:78b1) (Ping timeout: 260 seconds)
15:59:36 chomwitt joins (~chomwitt@athedsl-32480.home.otenet.gr)
15:59:55 <Bulby[m]> because my Haskeline thing will be looping
15:59:55 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
16:00:06 × sekun[m] quits (~hsekmatri@2001:470:69fc:105::d18f) (Quit: You have been kicked for being idle)
16:00:08 vglfr joins (~vglfr@coupling.penchant.volia.net)
16:00:10 <Bulby[m]> and it would be a real issue if it forgot history each loop
16:00:20 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
16:00:20 × oo_miguel quits (~pi@77.252.47.226) (Ping timeout: 244 seconds)
16:00:33 vglfr joins (~vglfr@coupling.penchant.volia.net)
16:02:36 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:f072:4241:498:eedf) (Remote host closed the connection)
16:03:09 × titibandit quits (~thibaut@xdsl-87-78-253-243.nc.de) (Quit: Leaving.)
16:03:43 oo_miguel joins (~pi@77.252.47.226)
16:04:09 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
16:04:59 vglfr joins (~vglfr@coupling.penchant.volia.net)
16:05:51 <[exa]> Bulby[m]: how do you mean recursive State? State action invoking itself?
16:06:01 <Bulby[m]> yes
16:06:46 <[exa]> like, someAction = do { put 123; x <- get; doSomething; someAction } ?
16:07:00 <Bulby[m]> yes - but conditionally
16:07:32 gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
16:07:33 <[exa]> in this case the State is actually not recursive, just the "line" of state actions is generated by recursive function
16:07:45 <Bulby[m]> hm...
16:08:02 <Bulby[m]> that's a problem - how would I create a recursive implementation
16:08:22 <[exa]> you want to backup your State and pop it back if something fails?
16:08:34 <Bulby[m]> https://paste.tomsmeding.com/Hd3SdCSt
16:08:39 <Bulby[m]> this is REPL stuff
16:09:16 <Bulby[m]> `haskelineToInputState` is just an interpreter
16:09:18 Infinite joins (~Infinite@49.39.120.173)
16:09:33 <Bulby[m]> with https://hackage.haskell.org/package/haskeline-0.8.2/docs/System-Console-Haskeline-IO.html
16:09:38 <Bulby[m]> these functions
16:11:15 × oo_miguel quits (~pi@77.252.47.226) (Ping timeout: 258 seconds)
16:11:16 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
16:11:21 <Bulby[m]> I want it to remember when I do recursive stuff
16:11:55 <edwardk> shapr: hey, i know that library! =)
16:12:37 vglfr joins (~vglfr@coupling.penchant.volia.net)
16:12:55 <Bulby[m]> hm, I have an idea - do something like fixpoint but not really
16:13:00 <[exa]> Bulby[m]: ah okay I might have understood it the other way
16:13:15 odnes joins (~odnes@5-203-175-217.pat.nym.cosmote.net)
16:13:28 <Bulby[m]> REPL has to remember it's older inputs
16:14:10 <Bulby[m]> maybe I could add a new effect that handles it?
16:14:57 <Bulby[m]> e.g. `Continue :: m a -> Haskeline m a` ?
16:14:57 <[exa]> aah I get it now
16:15:11 <[exa]> your interpreter discards its output state, right?
16:15:39 <edwardk> is this yet another person being bitten by the fact that Haskeline hides the implementation of InputT?
16:15:43 edwardk tunes in
16:15:46 <[exa]> (your interpreter = haskelineToInputState)
16:15:50 <Bulby[m]> closeInput does that, yes?
16:16:03 <Bulby[m]> edwardk: i'm using the IO
16:16:24 <Bulby[m]> [exa]: all it does is `H.queryInput (daRelatedFunction)`
16:16:31 <edwardk> the IO?
16:16:40 <Bulby[m]> oops, this is irc, sorry for any matrix mess
16:17:00 <Bulby[m]> System.Console.Haskeline.IO
16:18:29 <Bulby[m]> it's stateful, w/e that means
16:18:36 <[exa]> whew, the InputState is internally just a reference to some MVars and a thread ID
16:18:40 Pickchea joins (~private@user/pickchea)
16:18:52 <Bulby[m]> meaning?
16:19:40 × CiaoSen quits (~Jura@p200300c95731a0002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
16:20:10 <[exa]> so technically it doesn't even change, so it should remember its older inputs automagically
16:20:28 <Bulby[m]> really? i'll have to test that
16:21:17 <[exa]> https://hackage.haskell.org/package/haskeline-0.8.2/docs/src/System.Console.Haskeline.IO.html#InputState
16:21:31 <[exa]> OTOH honestly no idea how it works together with polysemy
16:22:27 × zincy quits (~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 240 seconds)
16:22:27 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
16:23:01 <Bulby[m]> haha this is my first effect
16:23:50 × mbuf quits (~Shakthi@122.164.6.41) (Quit: Leaving)
16:23:54 [exa] sees the implementation of InputT
16:24:10 <[exa]> this amount of nested ReaderT can't be unseen
16:24:22 vglfr joins (~vglfr@coupling.penchant.volia.net)
16:25:09 causal joins (~user@50.35.83.177)
16:27:34 × odnes quits (~odnes@5-203-175-217.pat.nym.cosmote.net) (Read error: Connection reset by peer)
16:27:35 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
16:27:36 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
16:27:52 odnes joins (~odnes@5-203-248-1.pat.nym.cosmote.net)
16:27:57 vglfr joins (~vglfr@coupling.penchant.volia.net)
16:28:54 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:f072:4241:498:eedf)
16:31:59 × coot quits (~coot@213.134.190.95) (Quit: coot)
16:31:59 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
16:32:57 vglfr joins (~vglfr@coupling.penchant.volia.net)
16:33:23 oo_miguel joins (~pi@77.252.47.226)
16:34:07 × son0p quits (~ff@181.136.122.143) (Remote host closed the connection)
16:36:01 jakalx joins (~jakalx@base.jakalx.net)
16:36:01 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
16:36:04 ec joins (~ec@gateway/tor-sasl/ec)
16:36:11 vglfr joins (~vglfr@coupling.penchant.volia.net)
16:38:40 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
16:39:32 vglfr joins (~vglfr@coupling.penchant.volia.net)
16:40:23 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 258 seconds)
16:41:50 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
16:43:00 vglfr joins (~vglfr@coupling.penchant.volia.net)
16:46:07 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
16:48:26 zincy joins (~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)
16:51:17 × alp quits (~alp@user/alp) (Ping timeout: 260 seconds)
16:51:25 king_gs joins (~Thunderbi@187.201.176.129)
16:52:00 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
16:52:00 × king_gs quits (~Thunderbi@187.201.176.129) (Client Quit)
16:52:13 vglfr joins (~vglfr@coupling.penchant.volia.net)
16:56:44 × oo_miguel quits (~pi@77.252.47.226) (Ping timeout: 255 seconds)
16:58:38 <Bulby[m]> \o/ it remembers
16:58:40 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
16:58:54 vglfr joins (~vglfr@coupling.penchant.volia.net)
16:58:54 Tuplanolla joins (~Tuplanoll@91-159-68-39.elisa-laajakaista.fi)
17:01:14 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
17:01:30 vglfr joins (~vglfr@coupling.penchant.volia.net)
17:01:35 nate1 joins (~nate@98.45.169.16)
17:01:38 Guest|62 joins (~Guest|62@c-71-205-105-44.hsd1.co.comcast.net)
17:01:40 <Bulby[m]> and it works (at least what I use)
17:02:28 × chele quits (~chele@user/chele) (Quit: Leaving)
17:02:54 Inst joins (~Liam@c-98-208-218-119.hsd1.fl.comcast.net)
17:03:50 oo_miguel joins (~pi@77.252.47.226)
17:04:14 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
17:04:22 sympt7 joins (~sympt@user/sympt)
17:04:24 vglfr joins (~vglfr@coupling.penchant.volia.net)
17:04:33 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 246 seconds)
17:05:41 × sympt quits (~sympt@user/sympt) (Ping timeout: 258 seconds)
17:05:42 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
17:05:49 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
17:06:08 sympt7 is now known as sympt
17:06:24 vglfr joins (~vglfr@coupling.penchant.volia.net)
17:08:22 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
17:08:26 × oo_miguel quits (~pi@77.252.47.226) (Ping timeout: 255 seconds)
17:08:30 vglfr joins (~vglfr@coupling.penchant.volia.net)
17:10:10 oo_miguel joins (~pi@77.252.47.226)
17:12:08 ix joins (~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe)
17:12:50 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Ping timeout: 240 seconds)
17:13:25 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:14:08 <[exa]> Bulby[m]: o great
17:16:27 × Pickchea quits (~private@user/pickchea) (Ping timeout: 246 seconds)
17:18:26 × razetime quits (~quassel@117.254.34.190) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
17:26:26 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
17:26:42 vglfr joins (~vglfr@coupling.penchant.volia.net)
17:26:50 × matijja` quits (~matijja@193.77.181.201) (Quit: ZNC 1.8.2 - https://znc.in)
17:27:11 matijja joins (~matijja@193.77.181.201)
17:31:07 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
17:32:06 vglfr joins (~vglfr@coupling.penchant.volia.net)
17:33:39 <[exa]> Selective question -- I was reading the "Staged selective parser combinators" (willis, wu&pickering from icfp 2020) -- I understood that restricting the parsers to Selectives basically limits the grammars that can be parsed to context-free (with ambiguous <|>) or PEGs (with greedy <|> and no `try`), as opposed to general context-sensitive ones parsed with monads in usual parsecs. Is there some kind of
17:33:45 <[exa]> formal proof that shows why this holds? I'd naively expect that one could simulate the context even with selectives, but probably with a significant definition overhead. Is it the overhead size that makes it infeasible?
17:34:48 emad joins (~emad@102.43.155.242)
17:35:45 <dminuoso> [exa]: Where is it claimed that this limitation is imposed?
17:39:40 <[exa]> it is very implicit, that's why I'm seeking somthing formal. For example section 2 paragraph "Selectives" says: Full context-sensitivity is enabled by monads
17:39:50 <[exa]> q: what's the intermediate state there
17:40:55 off^ joins (~off@128-092-173-218.biz.spectrum.com)
17:41:02 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
17:41:24 <lyxia> I wouldn't read that part too rigorously
17:41:56 <lyxia> as you say you can stretch things a lot with the choice of functor
17:42:18 vglfr joins (~vglfr@coupling.penchant.volia.net)
17:42:58 <brettgilio> I vaguely remember somebody telling me that mainline haskell has support for dependent types now. What is the story here? Looking for info, not finding much.
17:43:05 odnes_ joins (~odnes@5-203-248-1.pat.nym.cosmote.net)
17:43:06 <[exa]> yeah, that's realistically why I'm asking. Is there a formal property of grammars that you lose by going from Monad to Selective?
17:43:47 × odnes quits (~odnes@5-203-248-1.pat.nym.cosmote.net) (Read error: Connection reset by peer)
17:45:31 califax joins (~califax@user/califx)
17:45:31 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
17:45:52 <[exa]> brettgilio: that's tricky, you can do a lot of useful dependent-type-ish stuff. AFAIK this summarizes the state pretty well https://gitlab.haskell.org/ghc/ghc/-/wikis/dependent-haskell
17:45:55 vglfr joins (~vglfr@coupling.penchant.volia.net)
17:46:18 × Kaiepi quits (~Kaiepi@156.34.47.253) (Remote host closed the connection)
17:46:42 Kaiepi joins (~Kaiepi@156.34.47.253)
17:47:05 × califax quits (~califax@user/califx) (Remote host closed the connection)
17:48:13 califax joins (~califax@user/califx)
17:48:27 × zincy quits (~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 240 seconds)
17:49:13 smarton joins (~smarton@gnu/webmaster/smarton)
17:51:18 × califax quits (~califax@user/califx) (Remote host closed the connection)
17:51:27 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 240 seconds)
17:51:34 califax joins (~califax@user/califx)
17:57:14 × odnes_ quits (~odnes@5-203-248-1.pat.nym.cosmote.net) (Quit: Leaving)
17:57:37 pavonia joins (~user@user/siracusa)
18:03:47 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 255 seconds)
18:05:15 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 276 seconds)
18:06:17 _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl)
18:06:56 × mmhat quits (~mmh@p200300f1c70584f2ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
18:09:43 <brettgilio> [exa] it is ongoing work right?
18:09:52 <brettgilio> Thinking of https://www.cis.upenn.edu/~sweirich/publications.html
18:12:39 <lyxia> yes it is still ongoing work
18:13:09 × off^ quits (~off@128-092-173-218.biz.spectrum.com) (Ping timeout: 258 seconds)
18:13:17 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
18:13:26 vglfr joins (~vglfr@coupling.penchant.volia.net)
18:17:00 zincy joins (~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)
18:19:30 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
18:21:42 × zincy quits (~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 260 seconds)
18:22:41 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
18:22:51 vglfr joins (~vglfr@coupling.penchant.volia.net)
18:24:50 machinedgod joins (~machinedg@24.105.81.50)
18:24:50 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
18:25:12 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
18:25:25 vglfr joins (~vglfr@coupling.penchant.volia.net)
18:25:59 mmhat joins (~mmh@p200300f1c715c614ee086bfffe095315.dip0.t-ipconnect.de)
18:26:59 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
18:27:31 × cheater quits (~Username@user/cheater) (Quit: (BitchX) Ping-pong timeout)
18:28:23 cheater joins (~Username@user/cheater)
18:30:47 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
18:31:14 × Infinite quits (~Infinite@49.39.120.173) (Ping timeout: 252 seconds)
18:32:24 × jollygood2 quits (www-data@2607:5300:60:8be::1) (Quit: CGI:IRC (Session timeout))
18:32:35 × Kaiepi quits (~Kaiepi@156.34.47.253) (Ping timeout: 256 seconds)
18:32:42 × Inst quits (~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 258 seconds)
18:33:43 × smarton quits (~smarton@gnu/webmaster/smarton) (Ping timeout: 256 seconds)
18:35:13 zincy joins (~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)
18:35:30 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
18:38:01 Kaiepi joins (~Kaiepi@156.34.47.253)
18:42:12 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
18:42:23 vglfr joins (~vglfr@coupling.penchant.volia.net)
18:43:50 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
18:43:53 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
18:45:00 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:f072:4241:498:eedf) (Remote host closed the connection)
18:50:30 × Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Ping timeout: 240 seconds)
18:50:52 × Guest|62 quits (~Guest|62@c-71-205-105-44.hsd1.co.comcast.net) (Quit: Connection closed)
18:51:43 × adium quits (adium@user/adium) (Quit: Stable ZNC by #bnc4you)
18:52:53 Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net)
18:52:58 oxide joins (~lambda@user/oxide)
18:53:30 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:f072:4241:498:eedf)
18:56:36 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 276 seconds)
18:58:05 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:f072:4241:498:eedf) (Ping timeout: 260 seconds)
19:04:43 adium joins (adium@user/adium)
19:06:50 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:12:07 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
19:12:19 vglfr joins (~vglfr@coupling.penchant.volia.net)
19:13:09 chddr joins (~Thunderbi@91.226.34.169)
19:13:43 boxscape joins (~boxscape@user/boxscape)
19:13:54 <Bulby[m]> can state recursively remember as well in polysemy
19:14:57 stackdroid18 joins (14094@user/stackdroid)
19:16:00 <chddr> Hi guys, I'm a little confused with what data type to use as a replacement for [a]. I want something with usual imperative array complexity. There's array library, but also vector, and there are boxed/unboxed and mutable/immutable ones, is there a good resource to read about the topic?
19:18:31 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
19:18:38 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Client Quit)
19:19:22 <slack1256> chddr: Most of the modules on the `vector` package explain usage and difference to the other representation. For example https://hackage.haskell.org/package/vector-0.12.3.1/docs/Data-Vector-Mutable.html gives a good idea how to use it.
19:19:47 <chddr> So vector would be a good default to use?
19:20:10 <slack1256> Yeah, I would start with `Data.Vector` from the `vector package.
19:20:20 <slack1256> Only if you know what you are doing, then you can see the other modules.
19:20:33 <chddr> Thanks!
19:23:41 × obabo quits (~obabo@563BF107.catv.pool.telekom.hu) (Quit: WeeChat 3.5)
19:25:15 Entertainment joins (~entertain@104.246.145.85)
19:26:47 × slack1256 quits (~slack1256@191.125.99.206) (Remote host closed the connection)
19:28:58 slack1256 joins (~slack1256@191.125.99.206)
19:29:34 cfricke joins (~cfricke@user/cfricke)
19:30:25 × Entertainment quits (~entertain@104.246.145.85) ()
19:30:39 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
19:30:48 vglfr joins (~vglfr@coupling.penchant.volia.net)
19:32:53 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
19:33:06 vglfr joins (~vglfr@coupling.penchant.volia.net)
19:34:18 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
19:35:39 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:f072:4241:498:eedf)
19:35:49 jgeerds joins (~jgeerds@55d45f48.access.ecotel.net)
19:35:52 coot joins (~coot@213.134.190.95)
19:37:32 × zincy quits (~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 260 seconds)
19:37:48 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
19:37:59 vglfr joins (~vglfr@coupling.penchant.volia.net)
19:40:20 jmdaemon joins (~jmdaemon@user/jmdaemon)
19:41:41 × phma quits (phma@2001:5b0:211b:8168:966b:7bf1:a9ed:d6d9) (Read error: Connection reset by peer)
19:41:49 titibandit joins (~thibaut@xdsl-87-78-253-243.nc.de)
19:42:08 acidjnk joins (~acidjnk@p200300d0c7068b57b4ddf1e14e3049be.dip0.t-ipconnect.de)
19:42:22 phma joins (~phma@2001:5b0:211f:4518:bf0d:fbb9:9134:fb7a)
19:43:41 <[exa]> Bulby[m]: in this case it was the IO that "remembered" they contents of MVars and other stuff. I'd say for State it will be the same unless you explicitly break it somehow
19:44:35 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
19:45:17 vglfr joins (~vglfr@coupling.penchant.volia.net)
19:47:13 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:50:45 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
19:50:46 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
19:50:57 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
19:51:36 vglfr joins (~vglfr@coupling.penchant.volia.net)
19:54:43 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
19:54:43 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
19:54:43 wroathe joins (~wroathe@user/wroathe)
19:59:56 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
19:59:56 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
20:00:40 vglfr joins (~vglfr@coupling.penchant.volia.net)
20:01:21 × kuribas quits (~user@ptr-17d51eo168763770uwd.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
20:02:57 <Bulby[m]> how would I add a recurse effect to my Haskeline thing
20:03:20 jgeerds_ joins (~jgeerds@55d45f48.access.ecotel.net)
20:03:21 × jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Read error: Connection reset by peer)
20:06:07 zincy joins (~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)
20:08:22 × emad quits (~emad@102.43.155.242) (Quit: Leaving)
20:08:40 emad joins (~emad@102.43.155.242)
20:09:09 × emad quits (~emad@102.43.155.242) (Remote host closed the connection)
20:10:24 × _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
20:12:13 <Bulby[m]> https://hackage.haskell.org/package/polysemy-readline 😠
20:14:28 <Bulby[m]> at least my code basically looks the same 🙂
20:14:34 <Cale> Any particular reason you're going with Polysemy?
20:14:43 <Bulby[m]> no 🙂
20:15:02 <Bulby[m]> i go with it because we like to have fun here
20:18:09 <Bulby[m]> https://hackage.haskell.org/package/polysemy-readline-0.2.0.0/docs/src/Polysemy.Readline.html#interpretReadlineAsInputT
20:18:10 × slack1256 quits (~slack1256@191.125.99.206) (Read error: Connection reset by peer)
20:18:13 <Bulby[m]> basically what my interpreter looks like
20:18:21 × chomwitt quits (~chomwitt@athedsl-32480.home.otenet.gr) (Quit: Leaving)
20:18:27 <Bulby[m]> except it uses the IO stuff not InputT
20:18:39 slack1256 joins (~slack1256@181.43.227.124)
20:18:42 chomwitt joins (~chomwitt@2a02:587:dc11:7d00:f083:eec9:d0b0:a50f)
20:19:02 <Cale> If you're having fun with it, then by all means, go ahead. :) I remember seeing that it had some strange issues with semantics early on that I'm not sure if they got sorted out or not, and personally I tend to just define my monads in a straightforward way with transformers, and then define application-specific classes rather than using the MTL ones, and that's always worked fairly well. There are cases where if
20:19:02 <Cale> transformers pile up, and certain compiler optimisations don't fire, you can have issues, but it's rare, and possible to sidestep in a bunch of ways.
20:20:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
20:20:38 <Bulby[m]> kinda angry I didn't see that library but I'm happy my code looks basically the same
20:22:05 <Bulby[m]> not sure how I feel about the remembering wizardry tho
20:24:08 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 272 seconds)
20:25:57 <monochrom> I don't know polysemy, but I know how "State s a = s -> (a, s)" "remembers". (It doesn't have to. It just has to take a parameter and return the same thing or a new thing.)
20:25:58 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
20:26:00 × Kaiepi quits (~Kaiepi@156.34.47.253) (Remote host closed the connection)
20:26:14 vglfr joins (~vglfr@coupling.penchant.volia.net)
20:26:23 <c_wraith> I mean... functions in general remember by closing over values
20:26:34 Kaiepi joins (~Kaiepi@156.34.47.253)
20:27:54 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
20:29:31 <monochrom> I was very relieved and in awe when I learned that mutable state can be mathematically modelled by state transition functions.
20:29:43 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
20:30:50 <monochrom> To be sure you could ask thorny efficiency issues such as "but it says that to update one element of a huge array you speak of cloning the whole array". But the mathematcial model is only obliged to predict answers, not costs.
20:32:10 <monochrom> The real semantically thorny issue though is sharable heap-allocated things. Then that's still an open question. People are working on it using separation logics.
20:33:38 × martin02 quits (~silas@141.84.69.76) (Ping timeout: 272 seconds)
20:34:36 <monochrom> The relief and awe is "oh so imperative programming is pointfree functional programming!" >:)
20:34:50 × Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
20:35:15 <tomsmeding> with completely different syntax :p
20:35:23 <monochrom> Yeah!
20:35:50 <tomsmeding> which makes all the difference for the programmer, but maybe less so for the theoretical computer scientist ;)
20:35:59 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
20:37:56 <monochrom> To some extent Backus gets to say "I told you so". He advocated "even if you want state, think and write in terms of state transition functions and composing them".
20:38:29 <monochrom> I think he almost invented the State monad.
20:38:55 × coot quits (~coot@213.134.190.95) (Quit: coot)
20:38:56 <monochrom> (In his "can programming be liberated from the von Neumann model" talk and paper.)
20:39:55 <monochrom> His explanation got really close to either (x,s)->(y, s) or s->(y,s)
20:40:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
20:41:16 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
20:43:11 <monochrom> I am a theoretical person. I keep underestimating the ergonomics of syntax and how much it affects other people, yeah.
20:43:55 zebrag joins (~chris@user/zebrag)
20:44:12 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.5)
20:44:43 <tomsmeding> I am a partially theoretical person (in cases like this), but I am acutely aware of how syntax matters when programming
20:45:39 martin02 joins (~silas@141.84.69.76)
20:45:39 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
20:45:56 <tomsmeding> I like writing and reading `data Tree a = Leaf | Node (Tree a) a (Tree a)` a lot more than `type 'a tree = | Leaf | Node oif 'a tree * 'a * 'a tree;;`
20:46:05 <tomsmeding> oops, s/oif/of/
20:46:26 vglfr joins (~vglfr@coupling.penchant.volia.net)
20:46:31 <tomsmeding> also C++ template syntax
20:47:16 <tomsmeding> also: I like writing an inherently imperative algorithm in C++ much more than writing it in ST
20:47:42 × vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer)
20:47:56 <tomsmeding> those people saying that "haskell is the best imperative programming language" be damned, writing an imperative, mutating algorithm in ST is just plain verbose and annoying :p
20:48:15 vglfr joins (~vglfr@coupling.penchant.volia.net)
20:48:30 <monochrom> I had a classmate (in the aforementioned course using C++ and LLVM API) who said "C++ syntax is toxic". I think maybe that's an exaggeration, but I see the point. (I personally have little qualm, but only because I learned a simpler version of C++ a long time ago, got used to it and bit the bullet.)
20:49:56 <tomsmeding> there's a lot in C++ syntax that's not nice, but for writing an imperative, mutating algorithm you don't need template metaprogramming, class inheritance, constexpr, the *. syntax, or any of the other stuff that I'm forgetting
20:50:03 <monochrom> Yeah I tried using ST to write the standard random shuffling algorithm. It's a bit too verbose and COBOLy.
20:50:36 <tomsmeding> the thing is that you start wanting to reach for neat monadic combinators to reduce the verbosity, but that _severly_ impacts readability
20:51:16 henninb joins (~henninb@97-116-138-116.mpls.qwest.net)
20:54:48 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
20:54:51 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
20:54:52 × mmhat quits (~mmh@p200300f1c715c614ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.5)
20:55:01 <monochrom> There are some proponents of a syntax so that inside special brackets (e.g., applicative brackets but I need monadic here) {| writeArray a i (readArray a i + 1) |} is desugared to "fmap (+ 1) (readArray a i) >>= writeArray a i", and at least it restores the syntactic convenience of "a[i] = a[i] + 1".
20:55:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
20:56:04 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 258 seconds)
20:57:24 <boxscape> I like Idris' !-notation to take care of that verbosity. Writing a GHC plugin to have it in Haskell atm
20:57:32 <tomsmeding> that certainly improves things; the fmap-desugaring that you gave (though I know that you didn't write it as being good haskell code, just as being the desugaring) is precisely such an example of overuse of monadic combinators in this setting I think
20:57:47 <tomsmeding> boxscape: example?
20:58:04 <boxscape> tomsmeding: main = putStrLn !getLine
20:58:07 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds)
20:58:25 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
20:58:50 <tomsmeding> boxscape: where `f !a ... !z` ~> `a >>= \a' -> ... z >>= \z' -> f a' ... z'`?
20:59:05 <boxscape> pretty much yes
20:59:21 <boxscape> actually what I'm spending most time on with the plugin is to have it support more than the idris, so that you can get intuitive behavior inside case and if and such
20:59:28 <boxscape> s/idris/idris version
21:00:04 <monochrom> That is going to be pretty tedious engineering.
21:00:15 <monochrom> I mean, thanks for all the hard work! :)
21:00:16 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
21:00:29 <boxscape> I have a concrete solution in mind but yeah there's quite a lot of AST wrangling
21:01:08 <tomsmeding> yes that's pretty cool; I'm not sure whether I'd use it much in practice because I'm kind of hesitant to use ghc plugins in general, but this really sounds super nice
21:01:27 <boxscape> yeah I also tend to use plugins very little if I'm being honest
21:01:50 <monochrom> There is a chance if a specific ghc plugin becomes very popular, it gets absorbed into ghc out-of-the-box.
21:02:21 <monochrom> I mean, even {-# language Arrow #-} started out as a preprocessor haha.
21:02:47 <monochrom> Surely this plugin is actually more popular than arrows.
21:02:57 <boxscape> yeah it seems like a sensible pathway for extensions to take
21:03:55 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Read error: Connection reset by peer)
21:05:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
21:05:35 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 255 seconds)
21:06:46 × titibandit quits (~thibaut@xdsl-87-78-253-243.nc.de) (Remote host closed the connection)
21:11:05 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:11:07 × zincy quits (~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c) (Ping timeout: 240 seconds)
21:11:54 × oxide quits (~lambda@user/oxide) (Quit: oxide)
21:12:04 <henninb> greetings, I am looking at the function withNthWorkspace and am currently passing greedyView. If I want to make an additional call to spawn within the call how would I do that?
21:12:17 <tomsmeding> #xmonad ?
21:18:17 <henninb> I want to do it within the anonymous function `+ zipM "M-" "Move to workspace" wsKeys [0..] (withNthWorkspace (\i -> W.greedyView i))`
21:19:12 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
21:19:58 <tomsmeding> henninb: try the #xmonad channel :)
21:20:23 <henninb> thank you littlebobeep.
21:20:28 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
21:24:29 × slack1256 quits (~slack1256@181.43.227.124) (Ping timeout: 255 seconds)
21:27:03 × cheater quits (~Username@user/cheater) (Ping timeout: 246 seconds)
21:30:11 Pickchea joins (~private@user/pickchea)
21:30:16 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
21:30:46 cheater joins (~Username@user/cheater)
21:31:04 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:36:05 smarton joins (~smarton@gnu/webmaster/smarton)
21:39:10 zincy joins (~zincy@host86-160-236-152.range86-160.btcentralplus.com)
21:39:34 × zeenk quits (~zeenk@2a02:2f04:a104:ef00:10:581:f80f:b980) (Quit: Konversation terminated!)
21:48:20 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
21:55:12 × smarton quits (~smarton@gnu/webmaster/smarton) (Ping timeout: 260 seconds)
21:55:43 × michalz quits (~michalz@185.246.204.101) (Remote host closed the connection)
21:56:00 × chddr quits (~Thunderbi@91.226.34.169) (Ping timeout: 276 seconds)
21:57:36 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
21:57:46 × bgs quits (~bgs@212.85.160.171) (Remote host closed the connection)
21:59:39 bgs joins (~bgs@212-85-160-171.dynamic.telemach.net)
22:01:09 nate1 joins (~nate@98.45.169.16)
22:06:13 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds)
22:11:35 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
22:18:22 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
22:29:36 × acidjnk quits (~acidjnk@p200300d0c7068b57b4ddf1e14e3049be.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
22:43:23 wonko joins (~wjc@user/wonko)
22:44:53 × chomwitt quits (~chomwitt@2a02:587:dc11:7d00:f083:eec9:d0b0:a50f) (Ping timeout: 244 seconds)
22:50:01 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:52:57 × wonko quits (~wjc@user/wonko) (Ping timeout: 260 seconds)
22:56:56 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
23:03:35 × bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
23:04:14 srk- joins (~sorki@user/srk)
23:05:13 <Bulby[m]> remembering state would be something like `do state <- get; runState state someSem`
23:05:27 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:f072:4241:498:eedf) (Remote host closed the connection)
23:05:40 Guest9361 joins (~landon@pool-98-111-246-199.pitbpa.ftas.verizon.net)
23:06:06 bgs joins (~bgs@212-85-160-171.dynamic.telemach.net)
23:06:11 × srk quits (~sorki@user/srk) (Ping timeout: 255 seconds)
23:06:56 srk- is now known as srk
23:08:10 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:f072:4241:498:eedf)
23:08:29 × Guest9361 quits (~landon@pool-98-111-246-199.pitbpa.ftas.verizon.net) (Client Quit)
23:09:57 srk- joins (~sorki@user/srk)
23:13:41 × srk quits (~sorki@user/srk) (Ping timeout: 258 seconds)
23:13:42 srk- is now known as srk
23:20:36 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
23:27:20 nun5 joins (~nun@113.111.33.38)
23:28:45 × nun5 quits (~nun@113.111.33.38) (Client Quit)
23:29:11 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
23:30:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
23:33:56 vicfred joins (~vicfred@user/vicfred)
23:36:11 × stackdroid18 quits (14094@user/stackdroid) (Quit: hasta la vista... tchau!)
23:36:59 × Tuplanolla quits (~Tuplanoll@91-159-68-39.elisa-laajakaista.fi) (Quit: Leaving.)
23:37:49 baaash[m] joins (~baaashmat@2001:470:69fc:105::2:1e90)
23:38:45 <dsal> :t runState
23:38:47 <lambdabot> State s a -> s -> (a, s)
23:39:15 <dsal> Running state with state inside a state monad confuses me. Is that some kind of `StateT StateT`
23:39:34 <Bulby[m]> we have fun here 🙂
23:39:59 <geekosaur> seems like roughly the `StateT` equivalent of `local`
23:40:12 <dsal> Yeah, that'd make sense if it were transformed.
23:40:13 <geekosaur> (see ReaderT)
23:40:19 <dsal> My brain reduces that to a noop.
23:40:30 <dsal> Except for the state-in-state thing.
23:40:44 <geekosaur> it's not a noop if it's followed by `put state`
23:41:01 <dsal> Makes sense. I don't use StateT much -- does it have something like local?
23:41:06 <geekosaur> no
23:41:26 <geekosaur> I seem to have to reinvent it every third Haskell program I write
23:41:39 <geekosaur> there's a couple implementations on hackage but none of them worth importing just for that
23:42:51 <Bulby[m]> https://hackage.haskell.org/package/polysemy-1.7.1.0/docs/Polysemy-State.html#v:modify is this what local is
23:44:50 <geekosaur> no. looks like modify there is the same as in StateT, it applies a modification directly to the state
23:45:27 <geekosaur> local runs an operation with a (possibly modified) copy of the state, then restores the original state afterward
23:45:47 × zincy quits (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Ping timeout: 255 seconds)
23:46:22 <geekosaur> sadly, in the standard libraries local is only for ReaderT, not StateT. as I said, I keep having to reinvent local for StateT in my own programs
23:46:51 <geekosaur> and hackage tells me I'm not the only one, so I *think* this isn't simply an indication that I don't "get" some part of StateT yet
23:47:54 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
23:51:55 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
23:53:13 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
23:54:18 jakalx joins (~jakalx@base.jakalx.net)
23:55:59 <DigitalKiwi> geekosaur: well it could be that it's just you and the other 2 that don't ;p
23:57:56 zincy joins (~zincy@2a00:23c8:970c:4801:2cec:2611:c697:bc3c)

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