Home liberachat/#haskell: Logs Calendar

Logs on 2023-05-20 (liberachat/#haskell)

00:01:51 × freeside_ quits (~mengwong@103.252.202.151) (Ping timeout: 256 seconds)
00:03:00 × califax quits (~califax@user/califx) (Remote host closed the connection)
00:05:38 <probie> Does anyone else wish there were automatically erased newtypes (or some other lightweight way to reorder type variables)?
00:06:12 <davean> probie: how does erasing new types reorder type variables?
00:06:30 <probie> as in something like `newtype Flip f b a = Flip (f a b)`
00:07:04 califax joins (~califax@user/califx)
00:07:26 <probie> so I could do something like `type (~>) f g = forall a . f a -> g a`, `foo :: Flip f b ~> g`, but not have to worry about `Flip` in the definition of foo
00:08:37 × spatchkaa quits (~spatchkaa@S010600fc8da47b63.gv.shawcable.net) (Quit: Client closed)
00:09:04 <davean> but thats a newtype - the point of which is nominal
00:09:13 <davean> if you wanted what you describe why not use type etc?
00:09:41 <davean> or a type function?
00:09:58 <probie> You can't partially apply type synonyms (or type families) though, but you can partially apply a newtype
00:10:49 <davean> but you've declared something nominally about Flip, so it isn't just (f a b)
00:10:54 <davean> So youre errasure is incorrect
00:11:21 <probie> which is why I want something new
00:11:48 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds)
00:13:43 <probie> ignore most of my original statement - I was still thinking how best to phrase it, and simply bumped the enter key. The sort of thing I really want is a type level function for rearranging things that can be partially applied
00:21:03 <davean> That makes a ton more sense!@
00:26:46 <probie> I have something like `data T (a :: *) (b :: *) (r :: * -> * -> *)`, but I keep needing to swap between `r` being the first argument, and `r` being the last argument. It needs to be the last argument for typeclass purposes
00:28:47 boukenshaou joins (~Boukensha@223.178.86.188)
00:30:27 <probie> But I want to be able to use something like `type (~>>) f g = forall a b . f a b -> g a b`, so then I can write a function with a nice readable type (with `r` now being the first parameter) like `(T f ~>> f) -> (Fix2 T ~>> f)` without needing to sprinkle foralls everywhere
00:30:41 × boukenshaou quits (~Boukensha@223.178.86.188) (Client Quit)
00:30:58 boukenshaou joins (~Boukensha@223.178.86.188)
00:34:18 bgs joins (~bgs@212-85-160-171.dynamic.telemach.net)
00:34:48 × ctearrrrrrrrrrrr quits (~ctearrrrr@73.237.206.60) (Remote host closed the connection)
00:40:01 × falafel quits (~falafel@2603-8000-d700-115c-e4af-b9a0-55a4-148f.res6.spectrum.com) (Ping timeout: 240 seconds)
00:46:25 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
00:53:43 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
00:53:43 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
00:53:43 wroathe joins (~wroathe@user/wroathe)
00:54:06 NetworkPolicy joins (~NetworkPo@S01069050ca4e3573.cg.shawcable.net)
00:57:29 × evincar quits (~evincar@user/evincar) (Ping timeout: 246 seconds)
00:57:55 <NetworkPolicy> is haskell just syntactic sugar?
00:59:34 × boukenshaou quits (~Boukensha@223.178.86.188) (Remote host closed the connection)
01:04:04 × bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
01:08:27 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
01:11:01 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:13:01 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds)
01:13:28 <nitrix> Sometimes it's syntactic junk food.
01:14:13 <NetworkPolicy> fine line between syntactic sugar and semantic fat imo
01:14:29 <nitrix> Probably depends on the lenses you're wearing that day.
01:17:09 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:18:55 <NetworkPolicy> I'd like to find a programming language capatable make life decisions through mathematical game theory
01:19:25 × vandita quits (~vandit@84-236-10-12.pool.digikabel.hu) (Ping timeout: 240 seconds)
01:19:28 <NetworkPolicy> so every decision I make that's sufficiently complex I could code it into a program and have it decide the outcome
01:21:19 <SrPx> https://twitter.com/VictorTaelin/status/1659724812057452549
01:21:32 <NetworkPolicy> or ranked outcome - reward based on my aversion to risk at that moment
01:21:33 vandita joins (~vandit@176-241-62-236.pool.digikabel.hu)
01:25:06 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
01:25:09 remsen joins (ianremsen@tilde.team)
01:29:15 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
01:29:35 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds)
01:31:15 <nitrix> SrPx, Someone took "paper" quite literally :)
01:31:43 <SrPx> ^^
01:38:42 Lycurgus joins (~juan@user/Lycurgus)
01:40:30 dsrt^ joins (~dsrt@73.237.206.60)
01:42:36 <hololeap> NetworkPolicy: sounds like the programming language called "reality"
01:49:37 × sympt quits (~sympt@user/sympt) (Quit: Ping timeout (120 seconds))
01:50:32 sympt joins (~sympt@user/sympt)
01:51:51 × NetworkPolicy quits (~NetworkPo@S01069050ca4e3573.cg.shawcable.net) (Quit: Client closed)
01:52:55 nate2 joins (~nate@98.45.169.16)
01:53:33 evincar joins (~evincar@user/evincar)
01:57:28 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
01:58:17 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
02:01:11 × evincar quits (~evincar@user/evincar) (Ping timeout: 240 seconds)
02:01:27 × Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
02:03:44 caryhartline joins (~caryhartl@168.182.58.169)
02:04:02 evincar joins (~evincar@user/evincar)
02:09:35 × td_ quits (~td@i53870931.versanet.de) (Ping timeout: 240 seconds)
02:10:23 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
02:11:46 td_ joins (~td@i53870916.versanet.de)
02:24:08 NetworkPolicy joins (~NetworkPo@S01069050ca4e3573.cg.shawcable.net)
02:26:24 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
02:26:34 <NetworkPolicy> hololeap: i mean, it might be a subset of reality not an entire simulation im just talking individual decisions not TREE(3).
02:27:38 <NetworkPolicy> it'd be like having an entire team of experts working for you on each decision
02:28:31 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 240 seconds)
02:28:33 <NetworkPolicy> you wouldn't need to use it for anything simple like what do i eat for breakfast. but major life decisions where there's a cost to failure
02:29:14 <NetworkPolicy> any language that claims to be mathematical should be able to do this easily
02:30:14 monochrom is a logician, takes advantage of the mistaken wording (but still very precise and unambiguous) of "for every decision there exists a program".
02:31:19 <monochrom> Let a decision D be given. For example D = "I decide to sleep now". Then the program that outputs D is `main = putStrLn "sleep now!"`
02:41:28 × terrorjack quits (~terrorjac@2a01:4f8:c17:87f8::) (Quit: The Lounge - https://thelounge.chat)
02:42:55 terrorjack joins (~terrorjac@2a01:4f8:c17:87f8::)
02:54:56 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
02:55:18 × kimjetwav quits (~user@2607:fea8:235e:b600:7132:be12:79fb:18e8) (Ping timeout: 250 seconds)
02:55:25 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
02:55:58 falafel joins (~falafel@2603-8000-d700-115c-25e2-07e8-7aef-02db.res6.spectrum.com)
02:56:26 × NetworkPolicy quits (~NetworkPo@S01069050ca4e3573.cg.shawcable.net) (Quit: Client closed)
02:57:16 NetworkPolicy joins (~NetworkPo@S01069050ca4e3573.cg.shawcable.net)
02:57:31 × evincar quits (~evincar@user/evincar) (Ping timeout: 240 seconds)
02:58:26 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
02:59:46 evincar joins (~evincar@user/evincar)
02:59:47 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds)
03:01:24 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
03:01:24 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
03:01:24 wroathe joins (~wroathe@user/wroathe)
03:10:47 × vandita quits (~vandit@176-241-62-236.pool.digikabel.hu) (Ping timeout: 240 seconds)
03:12:33 × use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Remote host closed the connection)
03:12:44 vandita joins (~vandit@92-249-182-123.pool.digikabel.hu)
03:12:52 use-value joins (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
03:14:21 cheater_ joins (~Username@user/cheater)
03:15:34 × cheater quits (~Username@user/cheater) (Ping timeout: 265 seconds)
03:15:36 cheater_ is now known as cheater
03:17:21 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
03:23:24 cheater_ joins (~Username@user/cheater)
03:25:51 × cheater quits (~Username@user/cheater) (Ping timeout: 268 seconds)
03:25:59 cheater_ is now known as cheater
03:30:05 × xameer quits (~xameer@144.48.224.179) (Ping timeout: 240 seconds)
03:35:57 bgs joins (~bgs@212-85-160-171.dynamic.telemach.net)
03:40:22 trev joins (~trev@user/trev)
03:40:47 freeside_ joins (~mengwong@103.252.202.151)
03:42:40 cheater_ joins (~Username@user/cheater)
03:43:41 × extor quits (~extor@ns3018124.ip-149-202-82.eu) (Quit: ZNC 1.8.2+deb2build5 - https://znc.in)
03:43:48 × foul_owl quits (~kerry@71.212.137.212) (Ping timeout: 240 seconds)
03:45:01 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
03:45:05 cheater_ is now known as cheater
03:47:57 × freeside_ quits (~mengwong@103.252.202.151) (Ping timeout: 256 seconds)
03:57:10 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
03:59:03 foul_owl joins (~kerry@212.102.47.39)
04:08:25 × evincar quits (~evincar@user/evincar) (Ping timeout: 240 seconds)
04:14:23 czy joins (~user@host-140-24.ilcub310.champaign.il.us.clients.pavlovmedia.net)
04:15:31 × ddellacosta quits (~ddellacos@146.70.185.10) (Ping timeout: 240 seconds)
04:16:38 ddellacosta joins (~ddellacos@143.244.47.75)
04:17:48 yaroot_ joins (~yaroot@p3001131-ipngn7601souka.saitama.ocn.ne.jp)
04:17:59 evincar joins (~evincar@user/evincar)
04:19:01 tessier joins (~treed@ec2-184-72-149-67.compute-1.amazonaws.com)
04:19:08 × yaroot quits (~yaroot@2400:4052:ac0:d900:1cf4:2aff:fe51:c04c) (Ping timeout: 240 seconds)
04:19:09 yaroot_ is now known as yaroot
04:30:58 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 265 seconds)
04:34:48 × tessier quits (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) (Ping timeout: 240 seconds)
04:35:45 NetworkPolicy parts (~NetworkPo@S01069050ca4e3573.cg.shawcable.net) ()
04:36:24 econo joins (uid147250@user/econo)
04:37:13 tessier joins (~treed@ec2-184-72-149-67.compute-1.amazonaws.com)
04:37:51 xameer joins (~xameer@144.48.224.179)
04:38:31 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
04:44:29 freeside_ joins (~mengwong@103.252.202.151)
04:49:59 × freeside_ quits (~mengwong@103.252.202.151) (Ping timeout: 240 seconds)
04:50:59 wiosna joins (~karangura@c-73-93-95-154.hsd1.ca.comcast.net)
04:51:00 × falafel quits (~falafel@2603-8000-d700-115c-25e2-07e8-7aef-02db.res6.spectrum.com) (Ping timeout: 250 seconds)
05:01:50 × vito_ quits (sid1962@id-1962.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
05:04:19 <Inst> does anyone here use data files in cabal?
05:04:25 <Inst> i suppose a lot of people do
05:04:27 <Inst> on Windows?
05:05:44 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
05:12:23 × vglfr quits (~vglfr@209.198.137.192) (Ping timeout: 240 seconds)
05:12:35 vglfr joins (~vglfr@209.198.137.192)
05:12:50 <Inst> nope
05:12:52 <Inst> oh well
05:16:05 × vandita quits (~vandit@92-249-182-123.pool.digikabel.hu) (Ping timeout: 240 seconds)
05:16:49 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:18:11 vandita joins (~vandit@92-249-193-45.pool.digikabel.hu)
05:22:24 × evincar quits (~evincar@user/evincar) (Ping timeout: 268 seconds)
05:25:14 × vglfr quits (~vglfr@209.198.137.192) (Ping timeout: 246 seconds)
05:26:13 vglfr joins (~vglfr@209.198.137.192)
05:26:33 <probie> Data files are rare, as "on Windows" is probably also less common than you'd think (and you've asked the question late at night for the US, and early in the morning for Europe further reducing the pool of active users to respond)
05:27:10 <probie> s/as "on Windows"/and "on Windows"/
05:27:10 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
05:34:04 evincar joins (~evincar@user/evincar)
05:35:54 <Inst> yeah i'm wondering if cabal is bugging out
05:36:02 <Inst> and since we're looking at double rare, no one has tested this
05:41:42 harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
05:45:59 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
05:46:23 × vglfr quits (~vglfr@209.198.137.192) (Ping timeout: 256 seconds)
05:50:32 vglfr joins (~vglfr@2a0d:3344:1b4f:9e10:dcf5:c871:1414:3355)
05:54:24 nate2 joins (~nate@98.45.169.16)
05:59:01 machinedgod joins (~machinedg@88.128.88.155)
05:59:05 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
06:00:23 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds)
06:06:21 abrantesasf joins (abrantesas@gateway/vpn/protonvpn/abrantesasf)
06:09:33 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
06:10:31 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
06:28:07 falafel joins (~falafel@2603-8000-d700-115c-e9b9-b6fb-0482-eed0.res6.spectrum.com)
06:28:59 acidjnk joins (~acidjnk@p200300d6e7072f309de47f84a0a0c5f9.dip0.t-ipconnect.de)
06:33:16 × falafel quits (~falafel@2603-8000-d700-115c-e9b9-b6fb-0482-eed0.res6.spectrum.com) (Ping timeout: 250 seconds)
06:36:17 jinsun joins (~jinsun@user/jinsun)
06:38:29 × vglfr quits (~vglfr@2a0d:3344:1b4f:9e10:dcf5:c871:1414:3355) (Read error: Connection reset by peer)
06:38:54 vglfr joins (~vglfr@209.198.137.192)
06:38:57 × vglfr quits (~vglfr@209.198.137.192) (Read error: Connection reset by peer)
06:39:11 vglfr joins (~vglfr@209.198.137.192)
06:41:11 × vglfr quits (~vglfr@209.198.137.192) (Read error: Connection reset by peer)
06:41:14 extor joins (~extor@ns3018124.ip-149-202-82.eu)
06:42:32 vglfr joins (~vglfr@209.198.137.192)
06:43:37 × vglfr quits (~vglfr@209.198.137.192) (Read error: Connection reset by peer)
06:45:12 × abrantesasf quits (abrantesas@gateway/vpn/protonvpn/abrantesasf) (Remote host closed the connection)
06:45:19 × wiosna quits (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
06:46:54 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
06:47:37 vglfr joins (~vglfr@2a0d:3344:1b4f:9e10:dcf5:c871:1414:3355)
06:57:38 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Ping timeout: 246 seconds)
06:57:45 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
07:02:59 davl_ joins (~davl@207.154.228.18)
07:03:13 × davl quits (~davl@207.154.228.18) (Ping timeout: 265 seconds)
07:03:37 freeside_ joins (~mengwong@103.252.202.151)
07:07:42 oo_miguel joins (~Thunderbi@77.252.47.84)
07:08:28 × freeside_ quits (~mengwong@103.252.202.151) (Ping timeout: 268 seconds)
07:08:40 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
07:09:16 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
07:10:36 wiosna joins (~karangura@c-73-93-95-154.hsd1.ca.comcast.net)
07:17:25 × vandita quits (~vandit@92-249-193-45.pool.digikabel.hu) (Ping timeout: 240 seconds)
07:19:33 vandita joins (~vandit@92-249-182-123.pool.digikabel.hu)
07:24:06 zeenk joins (~zeenk@2a02:2f04:a105:f00::fba)
07:27:47 freeside_ joins (~mengwong@103.252.202.151)
07:31:11 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds)
07:32:31 × freeside_ quits (~mengwong@103.252.202.151) (Ping timeout: 268 seconds)
07:32:55 × vglfr quits (~vglfr@2a0d:3344:1b4f:9e10:dcf5:c871:1414:3355) (Ping timeout: 256 seconds)
07:47:30 vglfr joins (~vglfr@2a0d:3344:1b4f:9e10:dcf5:c871:1414:3355)
07:49:47 × evincar quits (~evincar@user/evincar) (Ping timeout: 268 seconds)
07:53:52 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
07:59:44 <[exa]> Inst: what's the issue? (I'm normally installing datafiles and it works everywhere)
08:01:50 freeside_ joins (~mengwong@103.252.202.151)
08:03:51 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
08:06:11 <Inst> well, i don't get an error message when the data files can't be found, more importantly, i don't get the asset folder built into my test build
08:06:28 × freeside_ quits (~mengwong@103.252.202.151) (Ping timeout: 240 seconds)
08:07:49 gmg joins (~user@user/gehmehgeh)
08:08:13 <[exa]> what's your cabal config and how do you produce the test build?
08:10:34 <Inst> define cabal config, cabal file?
08:11:50 <Inst> https://paste.tomsmeding.com/GhGBqCiV
08:13:40 <Inst> and, nothing's in the paths
08:19:44 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
08:23:01 × vglfr quits (~vglfr@2a0d:3344:1b4f:9e10:dcf5:c871:1414:3355) (Ping timeout: 240 seconds)
08:32:45 Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
08:33:20 <Inst> hmmm, it seems the present problem is that while
08:37:00 ShalokShalom joins (~ShalokSha@mobiledyn-62-240-134-108.mrsn.at)
08:38:21 × paulpaul1076 quits (~textual@95-29-4-192.broadband.corbina.ru) (Remote host closed the connection)
08:39:51 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
08:41:41 × ShalokShalom quits (~ShalokSha@mobiledyn-62-240-134-108.mrsn.at) (Client Quit)
08:42:12 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:510d:16a:b9b3:3b4) (Remote host closed the connection)
08:48:48 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds)
08:49:08 freeside_ joins (~mengwong@103.252.202.151)
08:49:47 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
08:50:08 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
08:50:31 <Inst> cabal can see the files, it won't load it to the dist newstyle
08:53:25 × freeside_ quits (~mengwong@103.252.202.151) (Ping timeout: 240 seconds)
08:53:26 Pickchea joins (~private@user/pickchea)
08:56:28 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds)
08:56:51 × harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
09:00:17 <sclv> thats by design iirc. it doesn’t copy them for inplace builds, only “install” builds?
09:00:52 zer0bitz_ joins (~zer0bitz@user/zer0bitz)
09:01:52 × zer0bitz quits (~zer0bitz@user/zer0bitz) (Ping timeout: 248 seconds)
09:04:22 zer0bitz joins (~zer0bitz@user/zer0bitz)
09:05:17 × calamaxes[m] quits (~calamaxes@2001:470:69fc:105::3:47b2) (Remote host closed the connection)
09:05:28 × zer0bitz_ quits (~zer0bitz@user/zer0bitz) (Ping timeout: 240 seconds)
09:08:09 zer0bitz_ joins (~zer0bitz@user/zer0bitz)
09:08:39 freeside_ joins (~mengwong@103.252.202.151)
09:09:28 × zer0bitz quits (~zer0bitz@user/zer0bitz) (Ping timeout: 240 seconds)
09:12:02 radioredwagon joins (~radioredw@user/radioredwagon)
09:12:40 × m1dnight quits (~christoph@78-22-4-67.access.telenet.be) (Quit: WeeChat 3.8)
09:13:14 × vandita quits (~vandit@92-249-182-123.pool.digikabel.hu) (Ping timeout: 265 seconds)
09:14:31 <Inst> not copied into install builds either
09:14:52 vandita joins (~vandit@178-164-188-109.pool.digikabel.hu)
09:16:28 × freeside_ quits (~mengwong@103.252.202.151) (Ping timeout: 240 seconds)
09:18:30 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
09:19:24 img joins (~img@user/img)
09:21:00 m1dnight joins (~christoph@78-22-4-67.access.telenet.be)
09:21:28 × zer0bitz_ quits (~zer0bitz@user/zer0bitz) (Ping timeout: 240 seconds)
09:21:31 zer0bitz joins (~zer0bitz@user/zer0bitz)
09:22:01 × jle` quits (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 240 seconds)
09:24:20 jle` joins (~jle`@cpe-23-240-75-236.socal.res.rr.com)
09:25:48 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
09:29:44 MajorBiscuit joins (~MajorBisc@2001:1c00:2492:e200:7978:ae95:74b8:679a)
09:30:56 img joins (~img@user/img)
09:31:17 × radioredwagon quits (~radioredw@user/radioredwagon) (Quit: Leaving)
09:35:19 × zeenk quits (~zeenk@2a02:2f04:a105:f00::fba) (Remote host closed the connection)
09:35:40 zeenk joins (~zeenk@2a02:2f04:a105:f00::7fe)
09:36:05 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
09:38:47 × xameer quits (~xameer@144.48.224.179) (Ping timeout: 240 seconds)
09:40:49 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
09:42:04 × trev quits (~trev@user/trev) (Quit: trev)
09:42:35 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
09:45:08 × oo_miguel quits (~Thunderbi@77.252.47.84) (Ping timeout: 240 seconds)
09:45:40 freeside_ joins (~mengwong@103.252.202.151)
09:46:32 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
09:46:47 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
09:47:52 user____3 joins (~user@dynamic-046-114-181-048.46.114.pool.telefonica.de)
09:47:58 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
09:49:33 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
09:51:44 × freeside_ quits (~mengwong@103.252.202.151) (Ping timeout: 250 seconds)
09:52:49 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
09:53:44 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
09:55:54 nate2 joins (~nate@98.45.169.16)
09:56:12 × ddellacosta quits (~ddellacos@143.244.47.75) (Ping timeout: 268 seconds)
09:58:41 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
09:59:35 × machinedgod quits (~machinedg@88.128.88.155) (Remote host closed the connection)
10:01:08 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
10:04:21 titibandit joins (~titibandi@user/titibandit)
10:06:29 × acidjnk quits (~acidjnk@p200300d6e7072f309de47f84a0a0c5f9.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
10:07:27 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
10:19:42 xameer joins (~xameer@144.48.224.179)
10:27:59 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds)
10:31:36 cheater joins (~Username@user/cheater)
10:34:55 freeside_ joins (~mengwong@103.252.202.151)
10:39:21 × freeside_ quits (~mengwong@103.252.202.151) (Ping timeout: 256 seconds)
10:39:58 × Luj quits (~Luj@2a01:e0a:5f9:9681:5880:c9ff:fe9f:3dfb) (Quit: The Lounge - https://thelounge.chat)
10:40:05 gensyst joins (~gensyst@user/gensyst)
10:40:36 <gensyst> When/how are async exceptions actually usually used/called in PRACTICE? Apart from early termination with Ctrl-C, what else?
10:40:51 <gensyst> When/why do threads usually throwTo another thread?
10:41:02 <gensyst> what are the practical use cases out there?
10:41:08 × user____3 quits (~user@dynamic-046-114-181-048.46.114.pool.telefonica.de) (Ping timeout: 250 seconds)
10:41:42 Luj joins (~Luj@2a01:e0a:5f9:9681:5880:c9ff:fe9f:3dfb)
10:45:10 × MajorBiscuit quits (~MajorBisc@2001:1c00:2492:e200:7978:ae95:74b8:679a) (Quit: WeeChat 3.6)
10:53:35 × xameer quits (~xameer@144.48.224.179) (Remote host closed the connection)
10:54:31 <probie> gensyst: It's a way to implement asynchronous message passing between threads in Haskell
10:56:20 <gensyst> what does that mean?
10:56:38 × xff0x quits (~xff0x@ai098135.d.east.v6connect.net) (Quit: xff0x)
10:58:28 xff0x joins (~xff0x@ai098135.d.east.v6connect.net)
10:58:50 <gensyst> probie,
11:00:04 <probie> gensyst: If I have two threads currently executing code, and one thread wants to tell the other to stop what it's doing and do something else "right now", it can do that by throwing an exception at the other thread
11:00:30 <probie> e.g. main thread for a board game telling an ai thread it needs to yield a move right now
11:04:08 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
11:04:19 cheater joins (~Username@user/cheater)
11:05:32 <gensyst> probie, as in the "ai thread" normally doing other things (things other than yielding moves)?
11:06:02 xameer joins (~xameer@144.48.224.179)
11:06:03 <gensyst> is this really a contrived use case? how would other languages do it? is this related to green threads?
11:06:24 <[Leary]> gensyst: Suppose you're performing some parallel search, but you only need some fixed number of results. The moment you have them, you want to send async exceptions to kill all the other threads so they stop eating your processor. This is a low level interface, however, and mostly you want to work at a higher level via e.g. stm, async, ki.
11:07:29 <mauke> gensyst: "other things" = searching for a better move
11:07:30 × phma quits (~phma@host-67-44-208-177.hnremote.net) (Read error: Connection reset by peer)
11:08:05 phma joins (~phma@host-67-44-208-203.hnremote.net)
11:09:22 trev joins (~trev@user/trev)
11:11:27 × xff0x quits (~xff0x@ai098135.d.east.v6connect.net) (Quit: xff0x)
11:12:55 xff0x joins (~xff0x@ai098135.d.east.v6connect.net)
11:13:10 vglfr joins (~vglfr@209.198.137.192)
11:13:47 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
11:14:54 use-value1 joins (~Thunderbi@2a00:23c6:8a03:2f01:2973:25bc:e202:9763)
11:16:06 <tomsmeding> gensyst: System.Timeout.timeout
11:16:13 <gensyst> [Leary], for async, are you referring to cancel? https://hackage.haskell.org/package/async-2.2.4/docs/Control-Concurrent-Async.html#v:cancel
11:16:44 <gensyst> interesting.
11:16:52 <gensyst> i'm just curious, is this mechanism unique to haskell?
11:17:23 <tomsmeding> isn't this also kind of how posix signals work
11:17:35 <tomsmeding> modulo their idiosyncracies
11:17:56 × use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Ping timeout: 265 seconds)
11:17:56 use-value1 is now known as use-value
11:19:01 <gensyst> what i mean is, do i also have to "always worry about async exceptions" when writing code in other languages?
11:19:11 × xameer quits (~xameer@144.48.224.179) (Remote host closed the connection)
11:19:13 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
11:19:19 <gensyst> (it's been a while since i seriously used other languages so i forgot, if I ever knew)
11:19:29 xameer joins (~xameer@144.48.224.179)
11:21:28 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
11:23:35 <tomsmeding> many languages have synchronous exceptions and usually worrying about those is bad enough
11:23:44 × vandita quits (~vandit@178-164-188-109.pool.digikabel.hu) (Ping timeout: 248 seconds)
11:23:59 <tomsmeding> c++, java's exceptions, e.g. std::badalloc
11:24:20 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
11:24:54 <[Leary]> gensyst: `cancel` is one case, but normally the cancellation happens under the hood, e.g. in `race`. The `ki` equivalent is the automatic killing of all scoped threads upon exiting the scope.
11:25:23 vandita joins (~vandit@91-83-11-193.pool.digikabel.hu)
11:25:44 × zeenk quits (~zeenk@2a02:2f04:a105:f00::7fe) (Quit: Konversation terminated!)
11:26:05 <gensyst> And what about the whole program killing Ctr+C case? how long time does the program (that handles async exceptions) get to cleanup (e.g. close database handle)? milliseconds?
11:26:07 <gensyst> is it OS dependent?
11:26:52 <probie> gensyst: it doesn't even have to terminate on that. sigint isn't sigterm or sigkill
11:27:08 <gensyst> & couldn't the OS kill the program *without* giving it a chance to do cleanup?
11:27:24 <tomsmeding> yes: on linux with SIGKILL, e.g. with the venerable kill -9
11:28:03 <tomsmeding> on linux, SIGKILL and SIGSTOP are the only signals a program cannot catch, block or ignore (see man 7 signal)
11:29:42 shriekingnoise_ joins (~shrieking@186.137.175.87)
11:29:43 <probie> for example, upon receiving a sigint (ctrl-c), ghci doesn't stop, it just cancels whatever it's currently evaluating (if anything)
11:30:00 <gensyst> interesting
11:32:15 × shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 250 seconds)
11:32:39 tremon joins (~tremon@83.80.159.219)
11:33:16 dhil joins (~dhil@78.45.150.83.ewm.ftth.as8758.net)
11:34:21 × czy quits (~user@host-140-24.ilcub310.champaign.il.us.clients.pavlovmedia.net) (Remote host closed the connection)
11:34:44 czy joins (~user@host-140-24.ilcub310.champaign.il.us.clients.pavlovmedia.net)
11:35:12 <tomsmeding> also if I remember correctly, sending ctrl-c to a Haskell program once instructs the runtime system to try and exit gracefully, but sending it a second will immediately terminate the program
11:39:08 shriekingnoise joins (~shrieking@186.137.175.87)
11:41:29 × shriekingnoise_ quits (~shrieking@186.137.175.87) (Ping timeout: 246 seconds)
11:43:00 × vglfr quits (~vglfr@209.198.137.192) (Read error: Connection reset by peer)
11:43:09 user____3 joins (~user@dynamic-046-114-181-048.46.114.pool.telefonica.de)
11:47:15 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
11:47:44 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
11:54:00 <gensyst> thanks for this info mates
11:55:36 × Luj quits (~Luj@2a01:e0a:5f9:9681:5880:c9ff:fe9f:3dfb) (Quit: The Lounge - https://thelounge.chat)
11:56:16 michalz joins (~michalz@185.246.204.93)
11:56:16 titibandit joins (~titibandi@user/titibandit)
11:57:08 Luj joins (~Luj@2a01:e0a:5f9:9681:5880:c9ff:fe9f:3dfb)
11:57:35 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds)
11:58:38 × user____3 quits (~user@dynamic-046-114-181-048.46.114.pool.telefonica.de) (Ping timeout: 246 seconds)
12:00:00 × mjrosenb quits (7U2UjFMg@WHELK.CLUB.CC.CMU.EDU) (Remote host closed the connection)
12:09:17 Albina_Pavlovna joins (~Albina_Pa@2603-7000-76f0-76e0-444d-2bd4-302e-4c30.res6.spectrum.com)
12:10:50 user____3 joins (~user@dynamic-046-114-181-048.46.114.pool.telefonica.de)
12:26:08 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
12:27:44 × user____3 quits (~user@dynamic-046-114-181-048.46.114.pool.telefonica.de) (Ping timeout: 248 seconds)
12:38:43 × michalz quits (~michalz@185.246.204.93) (Remote host closed the connection)
12:38:45 o-90 joins (~o-90@gateway/tor-sasl/o-90)
12:45:10 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:510d:16a:b9b3:3b4)
12:47:22 × o-90 quits (~o-90@gateway/tor-sasl/o-90) (Quit: Leaving)
12:47:31 × dhil quits (~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 240 seconds)
12:49:24 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:510d:16a:b9b3:3b4) (Ping timeout: 250 seconds)
12:54:54 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
12:55:28 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
12:57:43 <gensyst> Is onException's final action guaranteed to be called on the same thread?
12:57:58 <gensyst> if original was bound OS thread
12:58:32 <gensyst> (unlike mkWeakIORef and, it turns out, unlike ForeignPtr finalizer - cc. geekosaur (learned this from #ghc yesterday))
12:59:11 <gensyst> terrorjack, cc
13:14:08 acidjnk joins (~acidjnk@p200300d6e7072f30242f00cc193c3fe9.dip0.t-ipconnect.de)
13:14:26 L29Ah joins (~L29Ah@wikipedia/L29Ah)
13:15:18 × mechap quits (~mechap@user/mechap) (Quit: WeeChat 3.8)
13:15:45 × reverse quits (~inversed@bcdcac82.skybroadband.com) (Read error: Connection reset by peer)
13:17:38 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
13:19:54 × Albina_Pavlovna quits (~Albina_Pa@2603-7000-76f0-76e0-444d-2bd4-302e-4c30.res6.spectrum.com) (Quit: ZZZzzz…)
13:22:30 wiosna_ joins (~karangura@c-73-93-95-154.hsd1.ca.comcast.net)
13:23:51 cheater joins (~Username@user/cheater)
13:24:31 × bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Ping timeout: 240 seconds)
13:25:15 × vandita quits (~vandit@91-83-11-193.pool.digikabel.hu) (Ping timeout: 268 seconds)
13:25:32 × wiosna quits (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 265 seconds)
13:26:44 vandita joins (~vandit@92-249-185-242.pool.digikabel.hu)
13:27:48 reverse joins (~inversed@bcdcac82.skybroadband.com)
13:31:09 Albina_Pavlovna joins (~Albina_Pa@2603-7000-76f0-76e0-444d-2bd4-302e-4c30.res6.spectrum.com)
13:31:11 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
13:32:05 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds)
13:35:43 mechap joins (~mechap@user/mechap)
13:42:20 bgs joins (~bgs@212-85-160-171.dynamic.telemach.net)
13:43:13 × Albina_Pavlovna quits (~Albina_Pa@2603-7000-76f0-76e0-444d-2bd4-302e-4c30.res6.spectrum.com) (Quit: ZZZzzz…)
13:45:20 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
13:48:04 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
13:48:39 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
13:52:50 mzg joins (~mzg@host-195-80-133-95.wtvk.pl)
13:57:26 nate2 joins (~nate@98.45.169.16)
13:59:20 × aweinstock quits (~aweinstoc@cpe-74-76-189-75.nycap.res.rr.com) (Ping timeout: 265 seconds)
13:59:47 Cagalations3-16 joins (~Cagalatio@138.84.54.9)
13:59:59 <Cagalations3-16> omg
14:00:05 <Cagalations3-16> The channel with the greatest sense of humor
14:00:07 <Cagalations3-16> #haskell
14:00:11 <Cagalations3-16> Malcolm in the Middle Season 8 Episodes 1 and 2: 2. Reese Wilkerson Teams with Canadian Mountie Secret Agents to Trap and Torture Pedophile Tom Cruise https://justpaste.it/Tom_Cruise_BDSM_Tortured_Reese 1. Reese meets Edna Skilton, Fills Her Pussy with Shit, and Fucks that poopy cooter! https://justpaste.it/Reese_Fucks_Edna_Skilton_Malcolm
14:00:50 <mauke> @where ops
14:00:50 <lambdabot> byorgey Cale conal copumpkin dcoutts dibblego dolio edwardk geekosaur glguy jmcarthur johnw mniip monochrom quicksilver shachaf shapr ski
14:00:56 aweinstock joins (~aweinstoc@cpe-74-76-189-75.nycap.res.rr.com)
14:01:02 <Cagalations3-16> OMG channel emergency!
14:01:08 <Cagalations3-16> Watch the Freenode nerds panic
14:01:23 ChanServ sets mode +o mniip
14:01:23 mniip sets mode +kb-o *!*@138.84.54.9 *!*@138.84.54.9 mniip
14:01:31 ChanServ sets mode +o mniip
14:01:31 Cagalations3-16 is kicked by mniip (Inappropriate ioctl for device)
14:01:31 mniip sets mode -o mniip
14:01:42 ChanServ sets mode +o mniip
14:01:42 mniip sets mode -o mniip
14:02:08 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
14:03:33 ChanServ sets mode +o mniip
14:03:33 mniip sets mode -k *
14:03:36 mniip sets mode -o mniip
14:03:51 <int-e> phew
14:04:03 <mniip> rusty and accidentally set +k >.>
14:04:20 <int-e> (I was just about to point that out)
14:06:58 <ncf> "inappropriate ioctl for device"
14:11:06 <hpc> that's what the I in IRC stands for, donchaknow
14:13:15 <int-e> IO = IRC Operator? :)
14:16:52 machinedgod joins (~machinedg@84-115-229-216.cable.dynamic.surfer.at)
14:19:32 boukenshaou joins (~Boukensha@223.178.86.188)
14:24:00 × hugo- quits (znc@verdigris.lysator.liu.se) (Ping timeout: 248 seconds)
14:28:17 × machinedgod quits (~machinedg@84-115-229-216.cable.dynamic.surfer.at) (Ping timeout: 256 seconds)
14:29:05 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
14:35:02 hugo- joins (znc@verdigris.lysator.liu.se)
14:38:41 shapr joins (~user@76.29.230.19)
14:42:08 × hugo- quits (znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds)
14:45:06 × glider_ quits (~glider@user/glider) (Ping timeout: 250 seconds)
14:45:17 × anderson quits (~ande@user/anderson) (Ping timeout: 265 seconds)
14:45:43 <Athas> Has there been any talk of GHC always defaulting to UTF-8, rather than pretending it's still the 1990s whenever the locale is not sufficiently set?
14:50:30 hugo- joins (znc@verdigris.lysator.liu.se)
14:55:03 freeside_ joins (~mengwong@103.252.202.151)
15:00:30 × gensyst quits (~gensyst@user/gensyst) (Quit: Leaving)
15:00:42 × freeside_ quits (~mengwong@103.252.202.151) (Ping timeout: 250 seconds)
15:02:36 machinedgod joins (~machinedg@84-115-229-216.cable.dynamic.surfer.at)
15:03:11 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds)
15:03:19 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
15:06:07 × mzg quits (~mzg@host-195-80-133-95.wtvk.pl) (Quit: leaving)
15:07:22 × freeside quits (~mengwong@103.252.202.151) (Quit: Lost terminal)
15:07:22 mzg joins (mzg@lazy.unconscious.biz)
15:08:40 gensyst joins (~gensyst@user/gensyst)
15:10:35 freeside joins (~mengwong@103.252.202.151)
15:16:04 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
15:16:19 <gensyst> Are exception handlers (e.g. onException) called from the *same thread* as the original action? e.g. same bound thread (crucial for some c libraries)
15:18:31 <[exa]> gensyst: I'd love to have an assurance on that. Did you check the RTS code?
15:19:57 × freeside quits (~mengwong@103.252.202.151) (Ping timeout: 268 seconds)
15:20:29 Kuttenbrunzer joins (~Kuttenbru@2a02:8108:8b80:1d48::b1f4)
15:20:36 <c_wraith> exception handlers? There's nothing special about them. They run in the thread that called the exception-handling function.
15:20:54 <c_wraith> Note - if working with FFI, that might not be the same thread that called the native code
15:21:11 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
15:21:15 <c_wraith> Because the safe FFI has a pool of threads that it will call native code from
15:22:03 <hololeap> gensyst: you should read this: https://www.fpcomplete.com/blog/2018/04/async-exception-handling-haskell/
15:22:48 <c_wraith> well. Ok, the big problem is that there are two different ideas of "thread" here
15:25:45 <gensyst> c_wraith, "They run in the thread that called the exception-handling function." is this documented anywhere conclusively (or at least clearly visible from looking at some internal code)?
15:25:45 <gensyst> c_wraith, "safe FFI has a pool of threads". But if the original code also involved some FFI code, will the former (the resource allocation) FFI functions be called on the same thread as the cleanup FFI functions?
15:25:45 <gensyst> c_wraith, and does the same not apply for unsafe FFI?
15:26:38 <c_wraith> gensyst: it's just how functions work.
15:27:03 <c_wraith> Except, as I said, there are two different ideas of "thread"
15:27:28 <c_wraith> and that's basically the wrong question, because it's asking about Haskell
15:27:38 <c_wraith> And you actually care about native code
15:28:08 × vandita quits (~vandit@92-249-185-242.pool.digikabel.hu) (Ping timeout: 240 seconds)
15:28:12 <c_wraith> from https://hackage.haskell.org/package/base-4.18.0.0/docs/Control-Concurrent.html#boundthreads : the operating system thread takes care of all the foreign calls made by the bound thread.
15:29:14 <c_wraith> If you're using a bound thread on the haskell side, all foreign calls it makes will be from the same OS thread
15:30:03 <c_wraith> whether that thread also runs the Haskell code really doesn't matter, as that should be irrelevant to the native code
15:30:06 titibandit joins (~titibandi@user/titibandit)
15:30:10 vandita joins (~vandit@94-21-233-126.pool.digikabel.hu)
15:31:25 <c_wraith> and if you have some expression (foo `onException` bar), that's just a function call. Unless foo or bar create their own threads, it's all going to run in the same Haskell thread. Which may or may not be the same OS thread.
15:32:51 <c_wraith> But you really can't talk about this unless you're very clear whether you're asking about Haskell threads or OS threads
15:33:22 <gensyst> ok, i see what you're driving at. let's focus on the ffi calls only then (for clarity). How do we really know that my_c_ffi_init() and my_c_ffi_dealloc() will be called on the same os thread? (i.e. why not different os threads)? We can be dealing with multiple bound threads, after all (with -threaded)
15:33:31 azimut joins (~azimut@gateway/tor-sasl/azimut)
15:34:23 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
15:34:36 <c_wraith> Are they running in the same (bound) Haskell thread? Then the FFI calls will be on the same OS thread.
15:35:00 <c_wraith> Code never magically changes Haskell threads.
15:35:14 motherfsck joins (~motherfsc@user/motherfsck)
15:35:33 <gensyst> c_wraith, ah... thanks i'm getting it now
15:36:12 <gensyst> c_wraith, BTW this is completely different from ForeignPtr and mkWeakRefIO where we have no guarantees where the finalizer will run.
15:36:24 <c_wraith> yes, that is entirely different
15:36:31 <c_wraith> as are signal handlers
15:36:38 <gensyst> so channels (with exception handling) are the only option for properly doing FFI
15:36:49 <gensyst> (well, FFI that requires same os thread)
15:37:13 <c_wraith> yeah. when there's thread-local state, it needs to be handled entirely from one bound thread
15:37:33 <Helle> Do I feel like pain, do I feel like doing this new Vulkan shader demo from Haskell
15:38:35 × titibandit quits (~titibandi@user/titibandit) (Ping timeout: 264 seconds)
15:39:00 <Helle> eeeh, may give it a shot
15:39:47 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 264 seconds)
15:40:11 × jero98772 quits (~jero98772@2800:484:1d84:9000::2) (Ping timeout: 246 seconds)
15:40:19 <gensyst> c_wraith, thanks!
15:40:33 <c_wraith> you're welcome
15:49:31 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:510d:16a:b9b3:3b4)
15:51:41 <jade[m]> How would you use the ghc wasm backend to write some basic frontend code?
15:51:46 jero98772 joins (~jero98772@2800:484:1d84:9000:8822:84bd:a4f4:947f)
15:52:10 <jade[m]> I suppose I'm not sure where to start in regards to resources about actually using the wasm backend
15:52:30 <jade[m]> or wasm in general for that matter
15:52:43 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
15:55:48 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
15:55:49 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
15:55:49 wroathe joins (~wroathe@user/wroathe)
15:57:37 econo joins (uid147250@user/econo)
15:58:11 zeenk joins (~zeenk@2a02:2f04:a105:f00::7fe)
15:58:23 × machinedgod quits (~machinedg@84-115-229-216.cable.dynamic.surfer.at) (Ping timeout: 246 seconds)
15:59:53 Barfolomew joins (~Barfolome@cgn-89-1-58-198.nc.de)
16:00:47 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 264 seconds)
16:03:20 freeside joins (~mengwong@103.252.202.151)
16:07:12 Feuermagier_ joins (~Feuermagi@user/feuermagier)
16:07:55 × Barfolomew quits (~Barfolome@cgn-89-1-58-198.nc.de) (Quit: Client closed)
16:08:02 × boukenshaou quits (~Boukensha@223.178.86.188) (Quit: Leaving)
16:08:21 boukenshaou joins (~Boukensha@223.178.86.188)
16:08:23 × freeside quits (~mengwong@103.252.202.151) (Ping timeout: 240 seconds)
16:08:45 × boukenshaou quits (~Boukensha@223.178.86.188) (Client Quit)
16:09:00 × Feuermagier_ quits (~Feuermagi@user/feuermagier) (Client Quit)
16:09:52 × Feuermagier quits (~Feuermagi@user/feuermagier) (Ping timeout: 265 seconds)
16:12:52 <gensyst> Any ideas about what's the overhead of newEmptyMVar?
16:13:08 <gensyst> (trying to get ideas if it's worth it to reuse existing mvar, vs. just creating a new one every time)
16:13:11 <gensyst> in some tight loop
16:14:12 <hpc> measure it perhaps?
16:16:59 × hugo- quits (znc@verdigris.lysator.liu.se) (Ping timeout: 264 seconds)
16:20:11 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
16:22:31 <jade[m]> 5cm
16:26:06 <[exa]> gensyst: ghc/rts/PrimOps.cmm has all the effects
16:26:27 <int-e> gensyst: it's a heap allocation, 4 words I think.
16:26:53 <[exa]> gensyst: the newMVar wrapper just takes the result and rewraps it nicely, which should disappear, but there's another MVar allocation (MVar is data)
16:27:51 hugo- joins (znc@verdigris.lysator.liu.se)
16:30:32 <gensyst> ok cool
16:30:36 <gensyst> we're talking only nanoseconds
16:33:15 Guest42 joins (~Guest42@2404:7c00:44:ddfd:becd:94ab:5e65:8ddc)
16:34:16 × Guest42 quits (~Guest42@2404:7c00:44:ddfd:becd:94ab:5e65:8ddc) (Client Quit)
16:34:23 freeside joins (~mengwong@103.252.202.151)
16:34:51 <int-e> newMVar is a tad more expensive than newEmptyMVar... it'll actually take an uncontested lock to do its job since it's implemented as newEmptyMVar followed by putMVar.
16:35:52 rf joins (~rf@2605:59c8:179c:f610:1a48:f594:f5b9:7d51)
16:40:23 × freeside quits (~mengwong@103.252.202.151) (Ping timeout: 264 seconds)
16:43:31 × euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 240 seconds)
16:43:54 shapr` joins (~user@76.29.230.19)
16:45:28 × shapr quits (~user@76.29.230.19) (Ping timeout: 240 seconds)
16:48:55 euandreh joins (~Thunderbi@189.6.18.7)
16:50:28 × jero98772 quits (~jero98772@2800:484:1d84:9000:8822:84bd:a4f4:947f) (Ping timeout: 265 seconds)
16:52:03 freeside joins (~mengwong@103.252.202.151)
16:54:17 × euandreh quits (~Thunderbi@189.6.18.7) (Remote host closed the connection)
16:54:53 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
16:54:55 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
16:55:44 euandreh joins (~Thunderbi@189.6.18.7)
16:56:08 × freeside quits (~mengwong@103.252.202.151) (Ping timeout: 240 seconds)
16:59:55 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
17:03:13 × Kuttenbrunzer quits (~Kuttenbru@2a02:8108:8b80:1d48::b1f4) (Quit: Where is it)
17:03:28 titibandit joins (~titibandi@user/titibandit)
17:03:40 jero98772 joins (~jero98772@2800:484:1d84:9000:8822:84bd:a4f4:947f)
17:05:27 freeside joins (~mengwong@103.252.202.151)
17:09:47 × freeside quits (~mengwong@103.252.202.151) (Ping timeout: 256 seconds)
17:17:49 user__ joins (~user@dynamic-046-114-176-045.46.114.pool.telefonica.de)
17:36:11 × vandita quits (~vandit@94-21-233-126.pool.digikabel.hu) (Ping timeout: 264 seconds)
17:37:11 × user__ quits (~user@dynamic-046-114-176-045.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
17:37:15 × Athas quits (athas@sigkill.dk) (Ping timeout: 248 seconds)
17:37:36 vandita joins (~vandit@178-164-208-203.pool.digikabel.hu)
17:39:17 × nick_ quits (~nick@2600:8807:9103:b700:4573:4de0:330c:f2fa) (Ping timeout: 265 seconds)
17:51:02 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
17:51:52 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
17:53:25 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds)
17:56:35 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
17:58:18 user__ joins (~user@dynamic-046-114-176-045.46.114.pool.telefonica.de)
17:58:55 nate2 joins (~nate@98.45.169.16)
18:03:28 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
18:03:36 evincar joins (~evincar@user/evincar)
18:10:02 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
18:16:05 × shapr` quits (~user@76.29.230.19) (Ping timeout: 256 seconds)
18:20:32 freeside joins (~mengwong@103.252.202.151)
18:24:25 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
18:24:47 × freeside quits (~mengwong@103.252.202.151) (Ping timeout: 240 seconds)
18:26:54 Athas joins (athas@sigkill.dk)
18:28:33 × Athas quits (athas@sigkill.dk) (Client Quit)
18:35:35 × wiosna_ quits (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
18:40:57 <gensyst> Can someone clarify this? https://hackage.haskell.org/package/base-4.18.0.0/docs/Control-Concurrent-MVar.html#v:modifyMVar_
18:41:06 <gensyst> "This function is only atomic if there are no other producers for this MVar. In other words, it cannot guarantee that, by the time modifyMVar_ gets the chance to write to the MVar, the value of the MVar has not been altered by a write operation from another thread."
18:41:21 spatchkaa joins (~spatchkaa@S010600fc8da47b63.gv.shawcable.net)
18:41:34 <gensyst> What does it mean by "other producers"? Functions other than modifyMVar_ to modify the mvar, or just any producer in general?
18:41:56 <gensyst> i.e. can't I fearlessly call modifyMVar_ from multiple threads on the same mvar?
18:42:26 <mauke> no concurrent putMVar
18:42:44 <mauke> if all your threads only use modifyMVar, you should be safe
18:43:50 <gensyst> the doc should be more clear imo lol
18:43:52 <gensyst> mauke, thanks
18:44:46 <mauke> modifyMVar_ is basically take + put
18:45:11 <mauke> which is "atomic" if everyone else is blocked on take
18:46:47 eugenrh joins (~eugenrh@2a02:2f08:4707:3e00:454b:9ac4:8552:8de8)
18:47:14 <Rembane> What happens if they aren't blocked? Can another thread sneak in somewhere in the middle?
18:47:55 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds)
18:48:16 <gensyst> Rembane, according to the doc they somehow can
18:48:40 <mauke> if they sneak in (between our take and put) with take, they will be blocked at that point
18:49:02 <mauke> if they sneak in with their own put, they will succeed and break our "atomicity"
18:49:19 Athas joins (athas@sigkill.dk)
18:50:07 <Rembane> Interesting. Is that ever a problem in practice?
18:50:35 <mauke> uh. if you design your program wrong, yes, I guess?
18:51:04 <Rembane> Seems reasonable.
18:52:26 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
18:53:15 <mauke> the way this is meant to be used is to have a single "state" value (shared across all threads, protected by the MVar)
18:53:50 <mauke> all threads that touch the state must retrieve the current version first and then update it
18:54:24 <mauke> as long as no thread tries to manufacture a new "state" from scratch, modifyMVar_ will be atomic in that setting
18:54:48 × mcglk quits (~mcglk@131.191.19.145) (Read error: Connection reset by peer)
18:55:12 <Rembane> Then it doesn't sound too hard to code using MVars in a way that won't bite.
18:57:01 mcglk joins (~mcglk@131.191.19.145)
18:59:25 wiosna joins (~karangura@c-73-93-95-154.hsd1.ca.comcast.net)
19:02:38 <hololeap> "is that ever a problem in practice?" those kinds of bugs WILL surface themselves eventually if you have a long-running program, which is why they are such a pain
19:02:51 <hololeap> (like on the order of weeks or months)
19:03:02 <hololeap> log back in ... "why is it crashed?"
19:03:46 <hololeap> which is why STM is better :3
19:06:39 <gensyst> will the concurrency book (marlow) teach STM?
19:06:51 <gensyst> (and all this stuff)
19:07:35 × wiosna quits (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
19:07:44 <Rembane> gensyst: Yes! :D https://www.oreilly.com/library/view/parallel-and-concurrent/9781449335939/ch10.html
19:08:31 <hololeap> yeah although with STM you don't have to understand how it works to use it
19:09:02 <mauke> note that MVars are fairly low-level building blocks
19:09:11 <mauke> using them you can trivially create deadlocks, etc
19:13:43 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Read error: Connection reset by peer)
19:15:17 × use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:2973:25bc:e202:9763) (Remote host closed the connection)
19:15:36 use-value joins (~Thunderbi@2a00:23c6:8a03:2f01:2973:25bc:e202:9763)
19:15:36 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-11ef-7e9b-10a4-0f94.rev.sfr.net)
19:16:48 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
19:22:53 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
19:25:28 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds)
19:28:48 × evincar quits (~evincar@user/evincar) (Ping timeout: 240 seconds)
19:30:21 wootehfoot joins (~wootehfoo@user/wootehfoot)
19:33:48 × gensyst quits (~gensyst@user/gensyst) (Quit: Leaving)
19:33:51 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
19:34:34 × euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 250 seconds)
19:37:04 × vandita quits (~vandit@178-164-208-203.pool.digikabel.hu) (Ping timeout: 248 seconds)
19:38:59 vandita joins (~vandit@84-236-122-31.pool.digikabel.hu)
19:41:36 euandreh joins (~Thunderbi@189.6.18.7)
19:53:10 <EvanR> gentauro, even if you only use takeMVar and putMVar "properly", a thread that fails badly might not put the value back, freezing everything. Another good reason to use modifyMVar_
19:53:50 pavonia joins (~user@user/siracusa)
19:55:44 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
19:56:29 freeside joins (~mengwong@103.252.202.151)
19:56:34 evincar joins (~evincar@user/evincar)
19:56:54 azimut joins (~azimut@gateway/tor-sasl/azimut)
19:57:32 <hpc> or possibly a reason to try and arrange things so you're not relying on many things borrowing from the same single var
19:58:10 <EvanR> but my global state!
19:58:11 <hpc> maybe your code can be arranged so any particular part of it only takes or puts, so it's more like Chan
19:59:56 <mauke> thread-chan, you're looking cute today
20:00:54 × freeside quits (~mengwong@103.252.202.151) (Ping timeout: 265 seconds)
20:01:26 × evincar quits (~evincar@user/evincar) (Ping timeout: 250 seconds)
20:05:04 × euandreh quits (~Thunderbi@189.6.18.7) (Remote host closed the connection)
20:08:30 euandreh joins (~Thunderbi@189.6.18.7)
20:08:39 <jean-paul[m]> is there a lighter-weight NFC normalizer than the one in text-icu (bindings to the substantial ICU library)?
20:09:27 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
20:10:27 <jean-paul[m]> oh, maybe unicode-transforms
20:14:10 evincar joins (~evincar@user/evincar)
20:19:02 × evincar quits (~evincar@user/evincar) (Ping timeout: 268 seconds)
20:23:53 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
20:25:10 <ghostbuster> anyone read this book https://haskellbook.com ? i see a lot of comments on various sites saying it worked better for them than LYAH
20:26:21 <[exa]> I didn't but the bits I've seen were good
20:26:26 <geekosaur> lyah's pretty poor, because it'slargely devoid of exercises so you never actually learn much. contrariwise haskellbook is >1000 pages and some people find it rather wordy for its content
20:27:01 <jade[m]> geekosaur: in the end you learn the most by actually programming :)
20:27:03 <ghostbuster> i stalled out last time i tried lyah.. i have a bit of motivation to try again but wondering if i should try a different resource
20:27:23 <geekosaur> trying other resources is always a good idea
20:27:35 <ghostbuster> i have some experience with math and lots of experience with imperative languages
20:27:56 <[exa]> ghostbuster: where you stalled btw?
20:27:57 <geekosaur> jade[m], trust me, I know, that's how I learned
20:28:13 <geekosaur> pretty much how I've always learned
20:28:17 <jade[m]> if you're an audiovisual person you might like "haskell for imperative programmers" on youtube
20:28:29 <jade[m]> helped me get started besides actually programming as geekosaur said
20:28:32 <ghostbuster> [exa]: i didn't really get stuck, just got bored maybe.. too much typing things into repl
20:28:46 <jade[m]> I like to choose a project and just try to get as far as I can and learn along the way
20:29:04 <[exa]> ghostbuster: did you try to make a shooting game in Gloss?
20:29:11 Sgeo joins (~Sgeo@user/sgeo)
20:29:18 <ghostbuster> i think i need IO for any real projects, right?
20:29:28 <jade[m]> yesn't
20:29:34 [exa] rofls
20:29:37 <jade[m]> depends on what you mean by "real" project
20:30:00 <[exa]> ghostbuster: well 99% of haskell is how to dodge full IO with other, more useful monads
20:30:28 <ghostbuster> i'm not sure what is full IO, i don't understand how a program can be useful that doesn't accept input nor produce output
20:30:54 <[exa]> ghostbuster: anyway I always recommend Gloss for starting because there you don't need to touch IO at all, and it draws nice animated graphics generated by your pure functions
20:30:58 <ghostbuster> maybe i'll skip to chapter 9 of LYAH and start with hello world
20:31:02 <geekosaur> there's a lot that can happen between doing the input and doing the output
20:31:05 <jade[m]> usually you can have `main = print $ foo x` or `main = readLn >>= (print . foo)` and get away with all of that being your entire IO
20:31:08 <geekosaur> much of that can be done without IO
20:31:28 <ghostbuster> geekosaur: wouldn't any sane compiler optimize it out if it was never printed? heh
20:31:31 <[exa]> yap `interact` ftw. :D
20:31:38 <jade[m]> jade[m]: the latter would just be `interacr`
20:31:57 <jade[m]> s/interacr/interact
20:32:11 <geekosaur> ghostbuster, input -> transform -> output
20:32:27 <geekosaur> much or all of the "transform" part can be pure
20:33:00 <ghostbuster> geekosaur: sure but if there is no input ther is nothing to transform
20:33:02 <geekosaur> and yes, not only the compiler but the runtime via laziness can optimize unused parts away
20:33:18 <geekosaur> nobody is telling you not to do input, or not to do output
20:33:19 <jade[m]> you can also output from no input
20:33:24 <jade[m]> constant input
20:33:36 <geekosaur> people are telling you that you can use simple recipes for those and concentrate on the "transform" part
20:35:42 <ghostbuster> gotcha
20:36:14 <geekosaur> `interact` is such a recipe, it takes a pure transformation and does the I/O for you
20:37:01 <mauke> main = interact (map toUpper) -- transform input to uppercase
20:37:10 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
20:37:21 <mauke> main = interact ((++ "\n") . show . length) -- count number of characters
20:37:35 <jade[m]> my favorite way to learn the very basics of a language is to implement a function that lists primes. It usually involves most of the basics of a language and is still fairly small.
20:38:40 <mauke> meh. doesn't touch on input or string operations
20:39:38 <jade[m]> That's fair, you might extend it to print a given number of primes based on user input and also output in a nice format
20:40:48 × trev quits (~trev@user/trev) (Quit: trev)
20:47:32 michalz joins (~michalz@185.246.204.72)
20:48:17 evincar joins (~evincar@user/evincar)
20:51:41 <[exa]> hm, is there any good shortcut for: (>>= sequence) . fmap (fmap inits) . (>>= sequence) ?
20:52:14 <jade[m]> can you describe what it does? I'm having a hard time reading that in my head
20:52:27 <[exa]> (the first fmap might as well be a map, and the second fmap is over (a,)
20:53:46 <[exa]> basically I take a list of [(Item, [dir])] where dir is [String], and I want a list [(Item, [dir])] where there are also all encompassing directories
20:54:11 × user__ quits (~user@dynamic-046-114-176-045.46.114.pool.telefonica.de) (Ping timeout: 256 seconds)
20:54:27 <[exa]> > (>>= sequence) . map (fmap inits) . (>>= sequence) $ [("a", [["b","c"], ["d"]])]
20:54:29 <lambdabot> [("a",[]),("a",["b"]),("a",["b","c"]),("a",[]),("a",["d"])]
20:55:00 <[exa]> hm maybe I might triplefmap the inits first
20:55:28 <jade[m]> jesus christ, what a structure
20:56:01 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds)
20:56:18 <[exa]> it's for hierarchical tags
20:56:52 <[exa]> (pages, slashed_tag_list) -> (page, all_implied_slashed_tag_lists)
20:57:16 <jade[m]> > (>>= sequence) . map (fmap inits) . (>>= sequence) $ [("a", [["b","c"], ["d"]]), ("e", [])]
20:57:18 <lambdabot> [("a",[]),("a",["b"]),("a",["b","c"]),("a",[]),("a",["d"])]
20:57:36 <[exa]> actually I think list comprehensions might be cool here
20:57:48 <jade[m]> \> (>>= sequence) . map (fmap inits) . (>>= sequence) $ [("a", [["b","c"], ["d"]]), ("e", [[]])]
20:58:06 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
20:58:06 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
20:58:06 wroathe joins (~wroathe@user/wroathe)
20:58:15 <geekosaur> you had a backslash in there
20:58:18 <jade[m]> > (>>= sequence) . map (fmap inits) . (>>= sequence) $ [("a", [["b","c"], ["d"]]), ("e", [[]])]
20:58:19 <lambdabot> [("a",[]),("a",["b"]),("a",["b","c"]),("a",[]),("a",["d"]),("e",[])]
20:58:31 × eugenrh quits (~eugenrh@2a02:2f08:4707:3e00:454b:9ac4:8552:8de8) (Ping timeout: 240 seconds)
20:58:47 <jade[m]> I think I understand what the function does in general, let me think about it
20:59:26 <[exa]> ah yeah wunderbar, [(p,t) | (p,htl) <- x, ht <- htl, t <- inits ht]
20:59:43 <jade[m]> oh haha amazing
20:59:47 <[exa]> (p = page, htl = hierarchical-tag list)
21:00:00 <[exa]> (honestly thanks for rubberducking)
21:00:02 <jade[m]> that's a lot more expressive
21:00:09 <jade[m]> very readable as well
21:00:11 <[exa]> still the (>>=sequence) doesn't have a name?
21:00:41 <jade[m]> :t >>= sequence
21:00:42 <lambdabot> error: parse error on input ‘>>=’
21:00:53 <[exa]> (my brain: you used it twice there ofcourse it has to have a name!!!111)
21:00:54 <jade[m]> :t (>>= sequence)
21:00:55 <lambdabot> (Monad m, Traversable t) => m (t (m a)) -> m (t a)
21:01:14 <[exa]> it does an interesting kind of squash right?
21:01:22 <mauke> :t concatMap sequence
21:01:23 <lambdabot> (Traversable t1, Foldable t2) => t2 (t1 [a]) -> [t1 a]
21:01:29 <jade[m]> hoogle finds nothing
21:02:38 <jade[m]> [exa]: indeed
21:03:02 <[exa]> well let's leave this open, tbh I can't imagine anyone naming this sensibly
21:03:21 <[exa]> (my brain now: it's transverse!)
21:03:50 <jade[m]> I believe that's something else hmm hmm
21:04:33 <[exa]> ah yeah true, recursion schemes have that one
21:04:36 <[exa]> ointeressant
21:05:04 <jade[m]> I was thinking of something else entirely, but that's ok hahaha
21:06:01 <Profpatsch> Is there a way to expland a template haskell splice within GHCi?
21:06:16 wiosna joins (~karangura@c-73-93-95-154.hsd1.ca.comcast.net)
21:06:35 <[exa]> (I love how "expland" mid-rhymes with "splice")
21:06:51 <jade[m]> based on the structure it could be something along the lines of unpack + sequence, because it essentially removes a monadic layer and then applies a sequence
21:06:57 <jade[m]> (just based off the type)
21:07:25 <jade[m]> but like a reversed sequence
21:07:29 <jade[m]> wow the type is really weird
21:07:40 <Rembane> cosequence! :D
21:07:53 user__ joins (~user@dynamic-046-114-176-045.46.114.pool.telefonica.de)
21:07:57 <jade[m]> jade[m]: disregard this
21:08:09 <[exa]> Profpatsch: expand as in "you want to see what code comes out of it" ?
21:08:19 <jade[m]> Rembane: consequence? ;)
21:09:05 <Profpatsch> [exa]: exactly
21:09:19 <[exa]> Profpatsch: anyway I'd go with -ddump-splices and I'm really not sure if there's anything dynamic for that in ghci
21:09:19 <Profpatsch> it’s a thingy that creates multiple toplevel bindings, akin to makeLenses
21:09:45 <Rembane> jade[m]: That's a good one. :)
21:10:08 jank11 joins (~jank11@17-14-122.cgnat.fonira.net)
21:10:37 × wiosna quits (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
21:11:25 <[exa]> oh noes ghci can't -ddump-*
21:12:39 <ncf> cosequence is distribute
21:13:31 <Profpatsch> [exa]: it can, I just tried it
21:13:57 <geekosaur> turning ot back off is the trick
21:13:59 <geekosaur> *it
21:18:13 <[exa]> oh really
21:18:27 <[exa]> I blindly trusted the --show-options
21:18:30 <[exa]> cool
21:22:02 × bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
21:23:56 <geekosaur> ":seti -ddump-*" works for me
21:25:25 <geekosaur> like I said though, you can't turn it back off; there doesn't seme to be 'no' options for most -ddump-* options
21:33:35 × jank11 quits (~jank11@17-14-122.cgnat.fonira.net) (Quit: Lost terminal)
21:40:23 × vandita quits (~vandit@84-236-122-31.pool.digikabel.hu) (Ping timeout: 240 seconds)
21:42:09 × zeenk quits (~zeenk@2a02:2f04:a105:f00::7fe) (Quit: Konversation terminated!)
21:42:21 vandita joins (~vandit@92-249-150-135.static.digikabel.hu)
21:47:06 jforberg joins (~jforberg@c-56aa70d5.016-9-6c756e3.bbcust.telenor.se)
21:52:47 × evincar quits (~evincar@user/evincar) (Ping timeout: 240 seconds)
21:52:51 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
22:00:25 nate2 joins (~nate@98.45.169.16)
22:01:07 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
22:03:55 × jforberg quits (~jforberg@c-56aa70d5.016-9-6c756e3.bbcust.telenor.se) (Remote host closed the connection)
22:04:12 jforberg joins (~jforberg@c-56aa70d5.016-9-6c756e3.bbcust.telenor.se)
22:05:20 evincar joins (~evincar@user/evincar)
22:05:43 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
22:08:59 × jforberg quits (~jforberg@c-56aa70d5.016-9-6c756e3.bbcust.telenor.se) (Ping timeout: 256 seconds)
22:09:48 × evincar quits (~evincar@user/evincar) (Ping timeout: 240 seconds)
22:24:05 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 246 seconds)
22:25:05 wiosna joins (~karangura@c-73-93-95-154.hsd1.ca.comcast.net)
22:27:18 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
22:33:24 × michalz quits (~michalz@185.246.204.72) (Remote host closed the connection)
22:37:25 × wiosna quits (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
22:38:02 evincar joins (~evincar@user/evincar)
22:43:28 × acidjnk quits (~acidjnk@p200300d6e7072f30242f00cc193c3fe9.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
22:45:49 × tremon quits (~tremon@83.80.159.219) (Quit: getting boxed in)
22:53:46 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
23:02:58 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-11ef-7e9b-10a4-0f94.rev.sfr.net) (Remote host closed the connection)
23:03:36 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:510d:16a:b9b3:3b4) (Remote host closed the connection)
23:07:54 wiosna joins (~karangura@c-73-93-95-154.hsd1.ca.comcast.net)
23:12:01 × wiosna quits (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
23:16:28 wiosna joins (~karangura@c-73-93-95-154.hsd1.ca.comcast.net)
23:20:31 × wiosna quits (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
23:23:11 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
23:27:31 ddellacosta joins (~ddellacos@143.244.47.88)
23:30:28 freeside joins (~mengwong@103.252.202.151)
23:30:45 mauke_ joins (~mauke@user/mauke)
23:31:20 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
23:32:40 × mauke quits (~mauke@user/mauke) (Ping timeout: 268 seconds)
23:32:41 mauke_ is now known as mauke
23:34:31 × freeside quits (~mengwong@103.252.202.151) (Ping timeout: 240 seconds)
23:38:31 × vandita quits (~vandit@92-249-150-135.static.digikabel.hu) (Ping timeout: 240 seconds)
23:40:38 vandita joins (~vandit@178-164-207-235.pool.digikabel.hu)
23:42:47 × evincar quits (~evincar@user/evincar) (Ping timeout: 264 seconds)
23:43:17 × hiredman quits (~hiredman@frontier1.downey.family) (Remote host closed the connection)
23:57:48 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
23:57:57 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)

All times are in UTC on 2023-05-20.