Home liberachat/#haskell: Logs Calendar

Logs on 2023-01-11 (liberachat/#haskell)

00:00:11 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 264 seconds)
00:06:40 × mizlan quits (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078) (Ping timeout: 252 seconds)
00:09:22 jmdaemon joins (~jmdaemon@user/jmdaemon)
00:17:50 × caryhartline quits (~caryhartl@2600:1700:2d0:8d30:8c24:7477:2459:2106) (Quit: caryhartline)
00:21:38 × freeside quits (~mengwong@103.252.202.159) (Ping timeout: 268 seconds)
00:25:37 scoopahdoopah joins (~quassel@050-089-109-059.res.spectrum.com)
00:28:01 mizlan joins (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078)
00:28:05 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds)
00:28:10 × acidjnk quits (~acidjnk@p200300d6e715c440647ad5b3d6a6efb6.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
00:31:10 jmdaemon joins (~jmdaemon@user/jmdaemon)
00:31:36 × [Leary] quits (~Leary]@user/Leary/x-0910699) (Remote host closed the connection)
00:32:14 × mizlan quits (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078) (Ping timeout: 246 seconds)
00:33:15 [Leary] joins (~Leary]@user/Leary/x-0910699)
00:33:39 freeside joins (~mengwong@103.252.202.159)
00:40:25 × zeenk quits (~zeenk@2a02:2f04:a110:ac00::fba) (Quit: Konversation terminated!)
00:43:59 oldfashionedcow is now known as gen43
00:46:19 wroathe joins (~wroathe@user/wroathe)
00:50:01 acidjnk joins (~acidjnk@p200300d6e715c4239935b01ac656f8cf.dip0.t-ipconnect.de)
00:50:43 × Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 252 seconds)
00:50:56 gen43 is now known as username236
00:58:30 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Quit: Lost terminal)
00:58:53 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
00:59:57 mizlan joins (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078)
01:01:31 <maralorn> Huh, the stackage nightly rss feed tells me, that 2023-01-11 dropped bascilly all packages from nightly. e.g. text.
01:02:52 username236 is now known as oldfashionedcow
01:04:30 × tremon quits (~tremon@83-85-213-108.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in)
01:06:40 × talismanick quits (~talismani@campus-004-215.ucdavis.edu) (Ping timeout: 272 seconds)
01:08:07 × xff0x quits (~xff0x@2405:6580:b080:900:86c4:71c7:793f:fbf7) (Quit: xff0x)
01:09:56 xff0x joins (~xff0x@2405:6580:b080:900:49d8:de61:74a:e5ea)
01:09:59 thongpv87 joins (~thongpv87@103.199.71.100)
01:10:31 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:12:23 × thongpv quits (~thongpv87@2402:9d80:3f6:bf92:7fcb:6344:e6bc:6a06) (Ping timeout: 252 seconds)
01:16:38 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:26:58 × mizlan quits (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078) (Ping timeout: 252 seconds)
01:33:47 × xff0x quits (~xff0x@2405:6580:b080:900:49d8:de61:74a:e5ea) (Ping timeout: 264 seconds)
01:37:49 mizlan joins (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078)
01:38:43 × freeside quits (~mengwong@103.252.202.159) (Ping timeout: 268 seconds)
01:38:45 cheater_ joins (~Username@user/cheater)
01:41:19 × cheater quits (~Username@user/cheater) (Ping timeout: 252 seconds)
01:41:21 cheater_ is now known as cheater
01:41:40 × codaraxis quits (~codaraxis@user/codaraxis) (Quit: Leaving)
01:41:53 × mizlan quits (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078) (Ping timeout: 246 seconds)
01:42:08 × acidjnk quits (~acidjnk@p200300d6e715c4239935b01ac656f8cf.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
01:56:16 mizlan joins (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078)
01:56:42 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 272 seconds)
01:59:19 razetime joins (~Thunderbi@117.254.34.3)
02:02:20 × Tuplanolla quits (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.)
02:02:43 razetime1 joins (~Thunderbi@117.254.34.41)
02:03:23 × razetime quits (~Thunderbi@117.254.34.3) (Ping timeout: 248 seconds)
02:03:24 razetime1 is now known as razetime
02:06:50 freeside joins (~mengwong@103.252.202.159)
02:08:10 <sm> maralorn: strange, https://www.stackage.org/diff/nightly-2023-01-10/nightly-2023-01-11 doesn't show that
02:13:03 × Lycurgus quits (~juan@user/Lycurgus) (Ping timeout: 260 seconds)
02:17:12 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 252 seconds)
02:18:08 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
02:18:17 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds)
02:20:59 × sammelweis quits (~quassel@c-68-48-18-140.hsd1.mi.comcast.net) (Quit: No Ping reply in 180 seconds.)
02:21:16 × Blightmain quits (~Blightmai@203.29.154.219) (Remote host closed the connection)
02:22:31 jmdaemon joins (~jmdaemon@user/jmdaemon)
02:27:12 × oldfashionedcow quits (~Rahul_San@user/oldfashionedcow) (Quit: WeeChat 3.7.1)
02:28:07 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
02:28:22 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 272 seconds)
02:29:06 irrgit_ joins (~irrgit@89.47.234.74)
02:32:14 × irrgit quits (~irrgit@89.47.234.26) (Ping timeout: 252 seconds)
02:32:59 jinsun__ joins (~jinsun@user/jinsun)
02:32:59 × jinsun quits (~jinsun@user/jinsun) (Killed (iridium.libera.chat (Nickname regained by services)))
02:32:59 jinsun__ is now known as jinsun
02:35:36 × Umeaboy quits (~Umeaboy@94-255-145-133.cust.bredband2.com) (Quit: Leaving)
02:42:19 fizbin joins (~fizbin@user/fizbin)
02:46:00 × mizlan quits (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078) (Ping timeout: 255 seconds)
02:57:35 Maxdamantus joins (~Maxdamant@user/maxdamantus)
03:03:08 opticblast joins (~Thunderbi@secure-165.caltech.edu)
03:05:40 × td_ quits (~td@83.135.9.5) (Ping timeout: 268 seconds)
03:06:53 td_ joins (~td@83.135.9.16)
03:11:09 × freeside quits (~mengwong@103.252.202.159) (Ping timeout: 260 seconds)
03:12:46 × jero98772 quits (~jero98772@2800:484:1d80:d8ce:9815:cfda:3661:17bb) (Remote host closed the connection)
03:13:38 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:ac96:e33a:7cce:aea0)
03:19:41 × hgolden quits (~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
03:29:16 × Maxdamantus quits (~Maxdamant@user/maxdamantus) (Read error: Connection reset by peer)
03:34:11 freeside joins (~mengwong@103.252.202.159)
03:35:47 Maxdamantus joins (~Maxdamant@user/maxdamantus)
03:38:29 × freeside quits (~mengwong@103.252.202.159) (Ping timeout: 246 seconds)
03:40:13 freeside joins (~mengwong@103.252.202.159)
03:45:43 talismanick joins (~talismani@2601:200:c181:8250::ce24)
03:56:51 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
03:56:51 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
03:56:51 finn_elija is now known as FinnElija
04:03:22 × td_ quits (~td@83.135.9.16) (Ping timeout: 272 seconds)
04:04:58 td_ joins (~td@83.135.9.40)
04:19:56 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
04:19:56 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
04:19:56 wroathe joins (~wroathe@user/wroathe)
04:26:15 fizbin_ joins (~fizbin@user/fizbin)
04:30:09 × fizbin quits (~fizbin@user/fizbin) (Ping timeout: 268 seconds)
04:30:33 × talismanick quits (~talismani@2601:200:c181:8250::ce24) (Remote host closed the connection)
04:31:25 talismanick joins (~talismani@2601:200:c181:8250::ce24)
04:32:57 × thegeekinside quits (~thegeekin@189.217.82.244) (Remote host closed the connection)
04:33:25 <talismanick> How best to apply a function (like `dropWhile isSpace`) to the front and back of `t :: Text`?
04:34:44 <mauke> https://hackage.haskell.org/package/text-2.0.1/docs/Data-Text.html#v:strip
04:35:07 <talismanick> mauke: ah, thanks
04:35:15 <talismanick> haven't seen `droupAround` before
04:35:31 finsternis joins (~X@23.226.237.192)
04:37:23 <talismanick> Is there a class which lets you write "do something to the start and end" for arbitrary finite containers?
04:37:39 <talismanick> like a double-zipper of sorts
04:37:41 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
04:39:27 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds)
04:42:48 mizlan joins (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078)
04:44:35 × freeside quits (~mengwong@103.252.202.159) (Ping timeout: 260 seconds)
04:47:10 × mizlan quits (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078) (Ping timeout: 260 seconds)
04:49:34 <glguy> talismanick: no, probably not
04:51:44 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 268 seconds)
04:57:21 zaquest joins (~notzaques@5.130.79.72)
04:59:06 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 272 seconds)
05:01:36 × fizbin_ quits (~fizbin@user/fizbin) (Ping timeout: 268 seconds)
05:01:36 × Vajb quits (~Vajb@2001:999:78d:d7:457c:7773:573e:6903) (Read error: Connection reset by peer)
05:01:38 freeside joins (~mengwong@103.252.202.159)
05:02:17 Vajb joins (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi)
05:03:18 mbuf joins (~Shakthi@49.204.135.44)
05:03:33 × johnw quits (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Quit: ZNC - http://znc.in)
05:07:47 johnw joins (~johnw@2600:1700:cf00:db0:2df3:add9:d7a8:37bf)
05:10:32 × lewisje quits (~lewisje@2001:470:1f11:14e:1753:f4c6:e607:e65f) (Quit: Leaving)
05:10:50 × Vajb quits (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer)
05:11:04 Vajb joins (~Vajb@2001:999:78d:d7:457c:7773:573e:6903)
05:16:52 alfonsox joins (~quassel@103.87.57.33)
05:30:28 trev joins (~trev@user/trev)
05:44:34 × Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-159-86.dhcp-dynamic.fibreop.nb.bellaliant.net) (Ping timeout: 260 seconds)
05:48:28 thegeekinside joins (~thegeekin@189.217.82.244)
05:57:47 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 246 seconds)
05:59:40 Sciencentistguy1 joins (~sciencent@hacksoc/ordinary-member)
06:02:01 × Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Ping timeout: 252 seconds)
06:02:01 Sciencentistguy1 is now known as Sciencentistguy
06:02:59 Batzy_ joins (~quassel@user/batzy)
06:04:54 × freeside quits (~mengwong@103.252.202.159) (Ping timeout: 252 seconds)
06:05:43 × Batzy quits (~quassel@user/batzy) (Ping timeout: 265 seconds)
06:10:49 × Batzy_ quits (~quassel@user/batzy) (Ping timeout: 260 seconds)
06:11:08 × califax quits (~califax@user/califx) (Remote host closed the connection)
06:11:27 freeside joins (~mengwong@103.252.202.159)
06:12:45 califax joins (~califax@user/califx)
06:14:06 × chiselfuse quits (~chiselfus@user/chiselfuse) (Remote host closed the connection)
06:14:38 chiselfuse joins (~chiselfus@user/chiselfuse)
06:16:43 × koz quits (~koz@121.99.240.58) (Ping timeout: 248 seconds)
06:17:14 × opticblast quits (~Thunderbi@secure-165.caltech.edu) (Read error: Connection reset by peer)
06:17:31 opticblast joins (~Thunderbi@secure-165.caltech.edu)
06:20:59 koz joins (~koz@121.99.240.58)
06:20:59 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:39:23 lewisje joins (~lewisje@2001:470:1f11:14e:f874:d68f:347f:c7da)
06:42:13 × hueso quits (~root@user/hueso) (Quit: hueso)
06:50:23 hueso joins (~root@user/hueso)
06:53:39 mizlan joins (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078)
06:56:47 biberu joins (~biberu@user/biberu)
06:58:07 × mizlan quits (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078) (Ping timeout: 252 seconds)
07:11:43 kenran joins (~user@user/kenran)
07:12:59 caryhartline joins (~caryhartl@2600:1700:2d0:8d30:c4a5:2436:d206:1b42)
07:15:59 lortabac joins (~lortabac@2a01:e0a:541:b8f0:4c7a:8e07:664d:5b65)
07:18:09 × caryhartline quits (~caryhartl@2600:1700:2d0:8d30:c4a5:2436:d206:1b42) (Quit: caryhartline)
07:20:56 jakalx parts (~jakalx@base.jakalx.net) ()
07:21:43 × bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
07:23:06 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
07:26:12 shapr` joins (~user@68.54.166.125)
07:27:24 × shapr quits (~user@68.54.166.125) (Ping timeout: 265 seconds)
07:32:57 hsw joins (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net)
07:34:30 × hsw quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Client Quit)
07:34:44 hsw joins (~hsw@2001-b030-2303-0104-0172-0025-0012-0123.hinet-ip6.hinet.net)
07:34:56 × hsw quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0123.hinet-ip6.hinet.net) (Remote host closed the connection)
07:35:09 hsw joins (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net)
07:38:13 × hsw quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Client Quit)
07:38:29 hsw joins (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net)
07:40:08 mizlan joins (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078)
07:44:52 avicenzi joins (~avicenzi@2a00:ca8:a1f:b004::c32)
07:46:21 jakalx joins (~jakalx@base.jakalx.net)
07:46:54 × thegeekinside quits (~thegeekin@189.217.82.244) (Read error: Connection reset by peer)
07:59:13 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
08:00:05 × off^ quits (~off@76.145.190.81) (Remote host closed the connection)
08:02:38 mmhat joins (~mmh@p200300f1c7123cf3ee086bfffe095315.dip0.t-ipconnect.de)
08:02:43 × mmhat quits (~mmh@p200300f1c7123cf3ee086bfffe095315.dip0.t-ipconnect.de) (Client Quit)
08:08:06 fserucas joins (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7)
08:09:15 nut joins (~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
08:09:27 mastarija joins (~mastarija@188.252.197.182)
08:10:19 <mastarija> Am I carzy, or does a function like this really doesn't exist? `ToJSONKey a => a -> Key`
08:11:21 × nonzen quits (~nonzen@user/nonzen) (Quit: Gone)
08:11:37 nonzen joins (~nonzen@user/nonzen)
08:12:54 × wagle quits (~wagle@quassel.wagle.io) (Remote host closed the connection)
08:13:34 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:14:03 wagle joins (~wagle@quassel.wagle.io)
08:19:34 <freeside> https://hackage.haskell.org/package/aeson-2.1.1.0/docs/src/Data.Aeson.Types.ToJSON.html#line-1829
08:23:37 × scoopahdoopah quits (~quassel@050-089-109-059.res.spectrum.com) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
08:24:52 MajorBiscuit joins (~MajorBisc@83.232.58.225)
08:26:33 titibandit1 joins (~titibandi@xdsl-87-78-235-220.nc.de)
08:27:33 × mizlan quits (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078) (Ping timeout: 255 seconds)
08:28:59 nschoe joins (~q@141.101.51.197)
08:32:57 × MajorBiscuit quits (~MajorBisc@83.232.58.225) (Read error: Connection reset by peer)
08:39:43 zeenk joins (~zeenk@2a02:2f04:a110:ac00::fba)
08:44:34 × titibandit1 quits (~titibandi@xdsl-87-78-235-220.nc.de) (Remote host closed the connection)
08:45:10 × earthy quits (~arthurvl@2a02:a469:f5e2:1:ba27:ebff:fea0:40b0) (Ping timeout: 256 seconds)
08:47:38 <Athas> Amusing problem: I get 'failed to create OS thread: Cannot allocate memory' when launching my Haskell program. This is because the program is built to start one Haskell thread for every core, and this machine apparently has 256 of those.
08:48:42 mizlan joins (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078)
08:49:29 <merijn> Athas: Nice, also, bad habit :p
08:50:20 <merijn> A colleague ran a bunch of benchmarks on, like, 64 core machines (admittedly almost a decade ago now) where after 20-30ish capabilities things had quite some overhead
08:52:22 <Athas> Well, is there a sensible way of handling this? I just use '+RTS -N', which launches a systems thread per core.
08:53:00 <Athas> This machine only lets me map 64GiB of virtual memory, and apparently that is not enough for 256 GHC threads.
08:53:38 <Athas> I can just hardcode it to a lower limit - it's unlikely this Haskell program will scale beyond say 16 threads - but that seems hacky.
08:54:12 <freeside> 640K ought to be enough for anybody.
08:54:31 <merijn> Athas: you can control -N from code
08:54:44 <merijn> getNumProcessors + setNumCapabilities
08:55:04 <merijn> add some sensible logic in between those to do, like "max(32, actual)" :p
08:56:23 <merijn> Athas: Does it run with -N1 or does it run out of virtual memory then too?
08:57:16 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
08:57:26 × panovia quits (~user@user/siracusa) (Quit: Bye!)
08:58:58 <Athas> merijn: works fine up to about -N140.
08:59:14 <Athas> It's not a particularly mysterious problem.
08:59:50 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:ac96:e33a:7cce:aea0) (Remote host closed the connection)
09:00:47 <mauke> Athas: `+RTS -maxN16`
09:01:43 <Athas> mauke: ah, that's nice. It also means users can override that with their own RTS options, which would not be the case if I just added my own logic in Haskell code.
09:04:40 <mauke> assuming you compile with -rtsopts=all
09:05:02 <Athas> I compile with plain -rtsopts, but I haven o reason to be stingy with them.
09:06:42 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
09:07:42 earthy joins (~arthurvl@2a02-a469-f5e2-1-ba27-ebff-fea0-40b0.fixed6.kpn.net)
09:08:22 <mastarija> When dealing with parsers, I want to mapM a parser over a list of string, is there a standard way to collect all the results that have succeeded and drop the failures?
09:08:49 <mastarija> Somehing like `collect :: t (f a) -> f (t a)`
09:09:36 <mastarija> If I sequence, and any of the `f a`s has failed, the whole thing fails.
09:09:38 <c_wraith> :t sequenceA
09:09:39 <lambdabot> (Traversable t, Applicative f) => t (f a) -> f (t a)
09:09:46 <c_wraith> oh
09:09:57 <mastarija> That would stop on the first one, no?
09:10:01 <c_wraith> yes
09:10:02 chele joins (~chele@user/chele)
09:10:29 <c_wraith> It's a bit unusual to want to ignore failing parses.
09:10:38 <mastarija> Hm..., but why `f (t a)` instead of just `f a` if it stops on the first ones?
09:11:17 × nineonine quits (~nineonine@2604:3d08:7780:cd00:4d52:82fa:2c2:5ed4) (Remote host closed the connection)
09:11:34 <mastarija> c_wraith: I kind of have a list of tagged union types, but they are encoded as simple strings.
09:12:09 <c_wraith> hmm. back up a bit.. mapM is already sequence + map
09:12:21 shriekingnoise_ joins (~shrieking@186.137.175.87)
09:12:34 <merijn> mastarija: Sounds like you wanna parse permutations? I think there was a library for that already
09:12:37 <mastarija> So I have to parse the list once, and collect all the items that belong to the type T1, and then again and collect all the types that belong to the T2.
09:13:28 <c_wraith> hmm. not clear to me if you want permutation parsing or just to parse and then sort.
09:13:40 <merijn> mastarija: Why not have a parser that returns Either T1 T2 and just run a single parse?
09:13:49 <mastarija> Like, T1 = T1A | T1B | T1C and T2 = T2A | T2B | T2C.
09:14:26 <mastarija> And I have a list [T1A, T2B, T2C, T1B, ...]
09:14:46 <c_wraith> merijn's suggestion sounds good
09:14:52 <mastarija> And I want to parse that into a structure Struct { t1s, t2s }
09:14:58 × shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 272 seconds)
09:14:59 <mastarija> Yes, now that I think about it :)
09:15:03 <c_wraith> :t partitionEithers
09:15:05 <lambdabot> [Either a b] -> ([a], [b])
09:15:06 <mastarija> I can sort out eithers
09:15:14 <mastarija> Thanks!
09:16:45 <mastarija> Hm... I'm parsing JSON, not sure if the `Either` instance is what I want, I think they "tagg" either values.
09:16:58 <mastarija> I'm using Aeson
09:17:41 MajorBiscuit joins (~MajorBisc@145.94.179.130)
09:17:46 × zeenk quits (~zeenk@2a02:2f04:a110:ac00::fba) (Remote host closed the connection)
09:18:08 zeenk joins (~zeenk@2a02:2f04:a110:ac00::7fe)
09:18:38 <mastarija> Hm.. maybe not.
09:18:46 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 272 seconds)
09:20:32 gtdg joins (~gtdg@nat-eduroam-76-gw-01-lne.lille.inria.fr)
09:20:37 × gtdg quits (~gtdg@nat-eduroam-76-gw-01-lne.lille.inria.fr) (Changing host)
09:20:37 gtdg joins (~gtdg@user/gtdg)
09:30:10 × shriekingnoise_ quits (~shrieking@186.137.175.87) (Ping timeout: 272 seconds)
09:30:12 × nut quits (~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Remote host closed the connection)
09:33:34 × MajorBiscuit quits (~MajorBisc@145.94.179.130) (Quit: WeeChat 3.6)
09:37:23 × chiselfuse quits (~chiselfus@user/chiselfuse) (Ping timeout: 255 seconds)
09:39:57 <VOID[m]> Fellas, quick question. I want to use `do` notation for depth first search. I can get each element from possible by doing `n <- arr`, but I'd also need tails (because in my case order doesn't matter, but repetitions aren't allowed). I was thinking of using `tails`, just wanted to ask if anyone has a better idea, of the top of your head?
09:40:20 chiselfuse joins (~chiselfus@user/chiselfuse)
09:41:10 <VOID[m]> something along the lines of `(n, t) <- zip arr (tail (tails arr))`
09:41:16 <VOID[m]> Is it ok? Is there prettier way?
09:44:07 teo joins (~teo@user/teo)
09:46:09 <Athas> VOID[m]: I have used that pattern before.
09:47:45 <Athas> I have one of my favourite problems: linker trouble. Compiling any Haskell program fails with "collect2: fatal error: cannot find 'ld'". Now, 'ld' works fine in the command line, so I'm not sure what is going on.
09:48:19 <Athas> I also get "Warning: Couldn't figure out linker information!" from GHC itself. But it's just GNU ld!
09:48:43 <merijn> Athas: there's a compiler/linker config file in the GHC install
09:49:01 <merijn> Athas: If you install the bindists yourself configure should've picked up ld
09:49:21 <Athas> I've installed GHC from ghcup, but maybe my environment changed since...
09:49:22 <merijn> but if you didn't run configure and your ld is in a weird place things may be borked?
09:50:07 <Athas> Oh, I see ghcup actually warns "CC/LD environment variable is set."
09:51:44 <VOID[m]> Athas: Thanks, in this case I'll keep it that way
09:52:25 × talismanick quits (~talismani@2601:200:c181:8250::ce24) (Ping timeout: 256 seconds)
09:53:31 × foul_owl quits (~kerry@157.97.134.63) (Ping timeout: 260 seconds)
09:59:45 × zer0bitz quits (~zer0bitz@dsl-hkibng32-54fb48-32.dhcp.inet.fi) (Read error: Connection reset by peer)
10:00:18 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:ac96:e33a:7cce:aea0)
10:01:21 zer0bitz joins (~zer0bitz@dsl-hkibng32-54fb48-32.dhcp.inet.fi)
10:01:45 MajorBiscuit joins (~MajorBisc@145.94.179.130)
10:04:58 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:ac96:e33a:7cce:aea0) (Ping timeout: 260 seconds)
10:06:14 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 268 seconds)
10:07:03 foul_owl joins (~kerry@157.97.134.60)
10:10:42 × [Leary] quits (~Leary]@user/Leary/x-0910699) (Remote host closed the connection)
10:11:19 [Leary] joins (~Leary]@user/Leary/x-0910699)
10:13:13 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
10:14:09 jwiegley joins (~jwiegley@2600:1700:cf00:db0:2df3:add9:d7a8:37bf)
10:14:22 christiansen[m] joins (~christian@2001:470:69fc:105::2:f23d)
10:15:46 <maralorn> <sm> "maralorn: strange, https://www...." <- Yeah, I noticed.
10:20:11 × troydm quits (~troydm@user/troydm) (Ping timeout: 252 seconds)
10:26:26 <tomsmeding> Athas: I don't have $LD but ghcup has always worked fine for me?
10:26:44 <tomsmeding> I also don't have $CC
10:26:53 <tomsmeding> (though I do have `cc`)
10:28:20 <Athas> tomsmeding: yes, exactly. It breaks when those are set.
10:28:52 <tomsmeding> ... oh I misread the warning that you quoted
10:29:06 <tomsmeding> makes no sense though, unless they are set to very odd values
10:29:08 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
10:30:04 × kenran quits (~user@user/kenran) (Remote host closed the connection)
10:31:04 kenran joins (~user@user/kenran)
10:33:16 <merijn> Athas: GHC's compiler and linker are set at install time and I don't think it nicely follows CC/LD unless you make it
10:34:05 <Athas> They are probably set to odd values. This is an HPC system.
10:34:35 <Athas> Anyway, works nicely now.
10:42:56 enoq joins (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
10:44:34 Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-55-159-86.dhcp-dynamic.fibreop.nb.bellaliant.net)
10:46:23 ccapndave joins (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch)
10:49:05 Guest9971 joins (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
10:49:27 × ccapndave quits (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch) (Client Quit)
11:01:12 xff0x joins (~xff0x@ai071162.d.east.v6connect.net)
11:07:13 × gtdg quits (~gtdg@user/gtdg) (Quit: Client closed)
11:09:39 irrgit__ joins (~irrgit@146.70.27.242)
11:10:10 __monty__ joins (~toonn@user/toonn)
11:12:46 × irrgit_ quits (~irrgit@89.47.234.74) (Ping timeout: 252 seconds)
11:20:51 × nschoe quits (~q@141.101.51.197) (Ping timeout: 268 seconds)
11:23:54 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
11:31:04 jinsun__ joins (~jinsun@user/jinsun)
11:31:04 × jinsun quits (~jinsun@user/jinsun) (Killed (zinc.libera.chat (Nickname regained by services)))
11:31:04 jinsun__ is now known as jinsun
11:34:56 × mechap1 quits (~mechap@user/mechap) (Ping timeout: 272 seconds)
11:35:08 × SasoriZero quits (~SasoriZer@098-147-198-034.res.spectrum.com) (Quit: Client closed)
11:36:17 mechap1 joins (~mechap@user/mechap)
11:50:20 troydm joins (~troydm@user/troydm)
12:05:03 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Remote host closed the connection)
12:05:30 <Inst> hmmm, is there any advice for dealing with servant + blaze + postgresql-simple spaceleaks?
12:05:41 <Inst> I have it fairly bad, 1 request = 300 kb
12:06:02 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
12:08:19 Umeaboy joins (~Umeaboy@94-255-145-133.cust.bredband2.com)
12:08:38 azimut joins (~azimut@gateway/tor-sasl/azimut)
12:12:17 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds)
12:13:59 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
12:14:09 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
12:21:37 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Remote host closed the connection)
12:27:50 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.7.1)
12:30:18 azimut joins (~azimut@gateway/tor-sasl/azimut)
12:30:23 oldfashionedcow joins (~Rahul_San@user/oldfashionedcow)
12:32:43 tremon joins (~tremon@83-85-213-108.cable.dynamic.v4.ziggo.nl)
12:36:47 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
12:44:02 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 255 seconds)
12:46:42 × Guest9971 quits (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Remote host closed the connection)
12:47:53 nschoe joins (~q@141.101.51.197)
12:48:37 × califax quits (~califax@user/califx) (Remote host closed the connection)
12:50:40 califax joins (~califax@user/califx)
12:58:14 titibandit1 joins (~titibandi@xdsl-87-78-235-220.nc.de)
13:00:54 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
13:02:28 <Inst> hi troydm
13:07:02 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
13:13:15 × titibandit1 quits (~titibandi@xdsl-87-78-235-220.nc.de) (Ping timeout: 248 seconds)
13:13:42 titibandit1 joins (~titibandi@xdsl-87-78-235-220.nc.de)
13:14:16 <troydm> hey Inst
13:18:07 epolanski joins (uid312403@id-312403.helmsley.irccloud.com)
13:19:47 hgolden joins (~hgolden@cpe-172-251-233-141.socal.res.rr.com)
13:20:42 × Guest8366 quits (uid583562@id-583562.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
13:42:28 <[exa]> Any advice on how to force pandoc's `writeMarkdown` to include the YAML header? The doc says "turn on standalone mode with -s" but there's no such option for writers.
13:43:53 × hgolden quits (~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
13:47:44 Guest52 joins (~Guest52@58.171.243.251)
13:48:35 hgolden joins (~hgolden@cpe-172-251-233-141.socal.res.rr.com)
13:49:31 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
13:50:04 × califax quits (~califax@user/califx) (Remote host closed the connection)
13:50:22 jero98772 joins (~jero98772@2800:484:1d80:d8ce:9815:cfda:3661:17bb)
13:51:20 califax joins (~califax@user/califx)
13:52:41 × mechap1 quits (~mechap@user/mechap) (Quit: WeeChat 3.7.1)
13:52:43 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
13:53:16 azimut joins (~azimut@gateway/tor-sasl/azimut)
13:54:36 × hgolden quits (~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
13:55:24 × kenran quits (~user@user/kenran) (Remote host closed the connection)
13:58:49 mechap joins (~mechap@user/mechap)
14:04:13 hgolden joins (~hgolden@cpe-172-251-233-141.socal.res.rr.com)
14:10:26 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
14:10:39 × califax quits (~califax@user/califx) (Remote host closed the connection)
14:12:28 × FurudeRika[m] quits (~chitandae@2001:470:69fc:105::1:6039) (Changing host)
14:12:28 FurudeRika[m] joins (~chitandae@user/FurudeRika)
14:12:47 califax joins (~califax@user/califx)
14:18:15 kurbus joins (~kurbus@user/kurbus)
14:18:32 thegeekinside joins (~thegeekin@189.217.82.244)
14:28:40 n0den1te joins (~n0den1te@223.178.82.174)
14:28:43 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
14:35:15 <Inst> does anyone have experience with servant?
14:35:34 <maerwald> half of all haskellers
14:35:49 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Remote host closed the connection)
14:36:03 <Inst> i'm trying to figure out why servant is chewing up another 400 kb of ram every time i push a request to it, and this is with a toy program
14:36:08 <Inst> is servant known to leak like this?
14:36:32 <Inst> i already stuffed strict and strict data on all the files associated with it
14:37:09 × foul_owl quits (~kerry@157.97.134.60) (Ping timeout: 260 seconds)
14:37:19 × tstat quits (~tstat@user/tstat) (Quit: ZNC 1.8.2 - https://znc.in)
14:38:07 <Inst> or could it be a windows only thing?
14:39:27 <lortabac> I have been using Servant for years in production, it has never caused a leak
14:39:46 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
14:40:11 <lortabac> of course it can't be excluded, but I'd start by looking at what the handlers are doing
14:40:44 <merijn> Inst: depends what you're doing with said requests...
14:40:59 <Inst> could be blaze instead
14:41:16 <Inst> i have 3 endpoints, one just gives you instructions, two gives you instructions, but connects to an sql server and drags data from there
14:41:24 <lortabac> regarding strict data, IME leaks due to laziness are much rarer than people think
14:41:35 <Inst> it's possible that it's just because i'm using
14:41:51 <Inst> import Web.FormUrlEncoded <--- which I have never heard of
14:41:51 <lortabac> most of the time it's things like an ever-growing cache or connection-pool
14:43:55 <Inst> why would it be cache? tbh, I can probably test it by disconnecting the straight HTML API and just having it produce some numbers instead
14:44:24 <Inst> could it also be that i'm not closing my SQL handles?
14:44:40 <lortabac> Inst: yes, that's much more likely than Servant itself
14:45:57 CiaoSen joins (~Jura@p200300c9574fa4002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
14:48:15 × razetime quits (~Thunderbi@117.254.34.41) (Remote host closed the connection)
14:49:46 kenran joins (~user@user/kenran)
14:50:04 shriekingnoise joins (~shrieking@186.137.175.87)
14:50:04 × kenran quits (~user@user/kenran) (Remote host closed the connection)
14:52:47 foul_owl joins (~kerry@157.97.134.62)
14:54:19 × n0den1te quits (~n0den1te@223.178.82.174) (Quit: leaving)
14:56:45 × zer0bitz quits (~zer0bitz@dsl-hkibng32-54fb48-32.dhcp.inet.fi) (Read error: Connection reset by peer)
14:59:04 bhrgunatha joins (~bhrgunath@2001-b011-8005-2149-f5be-404a-a930-4185.dynamic-ip6.hinet.net)
15:00:06 × bhrgunatha quits (~bhrgunath@2001-b011-8005-2149-f5be-404a-a930-4185.dynamic-ip6.hinet.net) (Client Quit)
15:00:14 zer0bitz joins (~zer0bitz@dsl-hkibng32-54fb48-32.dhcp.inet.fi)
15:00:50 <Inst> okay, this is dumb
15:01:08 <Inst> bypassServer :: Server BypassAPI
15:01:08 <Inst> bypassServer
15:01:08 <Inst> = pure "2394820384290384920384092384920384920389402839402739472309472093472934072934702937402"
15:01:15 <Inst> type BypassAPI
15:01:16 <Inst> = "index" :> Get '[HTML] Html
15:01:17 <Inst> what
15:01:25 <merijn> Inst: Also, how are you measuring the memory usage?
15:01:50 <Inst> wait, maybe this is just my misunderstanding of the runtime or something?
15:02:38 <Inst> the memory usage measured in Windows Task manager goes up +60 every time I call the endpoint
15:03:11 × Feuermagier quits (~Feuermagi@user/feuermagier) (Ping timeout: 264 seconds)
15:03:16 <Inst> +60 kb
15:03:56 × shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 272 seconds)
15:04:40 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:ac96:e33a:7cce:aea0)
15:05:39 <merijn> I don't even know what windows task manager displays
15:06:22 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
15:07:00 <merijn> You want to know how much resident memory you have (which you can report with +RTS -s)
15:07:35 shapr` is now known as shapr
15:09:35 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:ac96:e33a:7cce:aea0) (Ping timeout: 260 seconds)
15:10:33 <Inst> someone told me that in linux, linux resource manager won't GC until you run out of memory
15:10:37 <int-e> @@ abc
15:10:37 <lambdabot> abc
15:10:52 <int-e> @. @ @ abc
15:10:52 <lambdabot> abc
15:10:54 <int-e> yay
15:11:07 <int-e> @? abc
15:11:07 <lambdabot> abc
15:11:20 <geekosaur> still think I forgot to document that
15:11:54 <int-e> Sorry actually, I meant to do that elsewhere.
15:12:30 <Inst> on windows, the appearance is "active private working set" on the log
15:12:36 shriekingnoise joins (~shrieking@186.137.175.87)
15:12:40 <lortabac> Inst: if you use ekg you can easily see the graph of memory usage, otherwise try to profile with GHC's memory profiler
15:12:59 <lortabac> I wouldn't use the OS to debug a memory leak
15:15:53 <Inst> yeah, it's probably just an issue with allocations and the OS isn't reliable in that regard
15:15:54 × thongpv87 quits (~thongpv87@103.199.71.100) (Remote host closed the connection)
15:16:03 × kurbus quits (~kurbus@user/kurbus) (Quit: Client closed)
15:16:10 <lortabac> Inst: https://downloads.haskell.org/ghc/latest/docs/users_guide/hints.html#hints-os-memory
15:16:10 <Inst> profiler shows 38560 max residency for the simple case
15:16:35 thongpv joins (~thongpv87@2402:9d80:307:760e:3c34:cc21:e6b2:3db)
15:16:37 <lortabac> Inst: https://downloads.haskell.org/ghc/latest/docs/users_guide/runtime_control.html?highlight=disable%20delayed%20os%20memory%20return#rts-flag---disable-delayed-os-memory-return
15:16:45 <Inst> i saw
15:16:48 <Inst> thanks
15:17:10 × titibandit1 quits (~titibandi@xdsl-87-78-235-220.nc.de) (Quit: Leaving.)
15:18:23 xff0x_ joins (~xff0x@2405:6580:b080:900:2f22:406e:df40:398b)
15:21:40 × xff0x quits (~xff0x@ai071162.d.east.v6connect.net) (Ping timeout: 272 seconds)
15:21:45 <Inst> anyways, thanks, i think the memory residency based off reports is now normal
15:23:16 × oldfashionedcow quits (~Rahul_San@user/oldfashionedcow) (Read error: Connection reset by peer)
15:25:13 × Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-159-86.dhcp-dynamic.fibreop.nb.bellaliant.net) (Ping timeout: 260 seconds)
15:27:58 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
15:30:54 <geekosaur> okay, now @@ is documented.
15:31:02 × Guest52 quits (~Guest52@58.171.243.251) (Quit: Client closed)
15:31:18 cheater_ joins (~Username@user/cheater)
15:32:18 Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-55-159-86.dhcp-dynamic.fibreop.nb.bellaliant.net)
15:34:54 × cheater quits (~Username@user/cheater) (Ping timeout: 260 seconds)
15:34:55 cheater_ is now known as cheater
15:38:44 Batzy joins (~quassel@user/batzy)
15:40:15 jmdaemon joins (~jmdaemon@user/jmdaemon)
15:42:20 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds)
15:43:22 cheater_ joins (~Username@user/cheater)
15:44:38 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
15:45:42 × cheater quits (~Username@user/cheater) (Ping timeout: 252 seconds)
15:45:47 cheater_ is now known as cheater
15:49:39 × mei quits (~mei@user/mei) (Quit: mei)
15:50:01 mei joins (~mei@user/mei)
15:54:00 Sgeo joins (~Sgeo@user/sgeo)
15:59:39 titibandit1 joins (~titibandi@xdsl-87-78-235-220.nc.de)
16:00:38 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Quit: ZNC 1.8.2 - https://znc.in)
16:01:27 jmdaemon joins (~jmdaemon@user/jmdaemon)
16:07:47 cheater_ joins (~Username@user/cheater)
16:08:32 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 272 seconds)
16:10:23 × cheater quits (~Username@user/cheater) (Ping timeout: 256 seconds)
16:10:32 cheater_ is now known as cheater
16:16:14 × titibandit1 quits (~titibandi@xdsl-87-78-235-220.nc.de) (Remote host closed the connection)
16:18:02 × MajorBiscuit quits (~MajorBisc@145.94.179.130) (Ping timeout: 272 seconds)
16:20:22 cheater_ joins (~Username@user/cheater)
16:21:13 × cheater quits (~Username@user/cheater) (Ping timeout: 260 seconds)
16:21:17 cheater_ is now known as cheater
16:23:59 MajorBiscuit joins (~MajorBisc@145.94.179.130)
16:25:49 acidjnk joins (~acidjnk@p200300d6e715c423cc17ec598020e768.dip0.t-ipconnect.de)
16:29:06 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:4c7a:8e07:664d:5b65) (Quit: WeeChat 2.8)
16:32:57 acidjnk_new joins (~acidjnk@p200300d6e715c423f492b91f65fccc9f.dip0.t-ipconnect.de)
16:33:20 × acidjnk quits (~acidjnk@p200300d6e715c423cc17ec598020e768.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
16:35:53 jmdaemon joins (~jmdaemon@user/jmdaemon)
16:36:03 econo joins (uid147250@user/econo)
16:36:43 × avicenzi quits (~avicenzi@2a00:ca8:a1f:b004::c32) (Ping timeout: 260 seconds)
16:37:18 <jean-paul[m]> Why is fourmolu adding \ escapes to my haddock markup?
16:38:00 tstat joins (~tstat@user/tstat)
16:42:11 <jean-paul[m]> Hm. Because it appears in places haddock doesn't look, it would seem.
16:42:52 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:ac96:e33a:7cce:aea0)
16:44:44 × mizlan quits (~mizlan@2607:f010:2a7:1005:ac8b:dc79:8fea:7078) (Ping timeout: 252 seconds)
16:45:01 jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
16:45:02 kurbus joins (~kurbus@user/kurbus)
16:48:11 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 264 seconds)
16:52:02 × fserucas quits (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Remote host closed the connection)
16:54:14 shriekingnoise_ joins (~shrieking@186.137.175.87)
16:54:23 × abhixec quits (~abhinav@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
16:55:05 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 268 seconds)
16:57:11 × shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 264 seconds)
16:59:14 kenaryn joins (~aurele@89-88-44-27.abo.bbox.fr)
16:59:27 SasoriZero joins (~SasoriZer@098-147-198-034.res.spectrum.com)
17:02:58 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
17:08:14 × MajorBiscuit quits (~MajorBisc@145.94.179.130) (Ping timeout: 260 seconds)
17:10:05 × kurbus quits (~kurbus@user/kurbus) (Quit: Client closed)
17:10:25 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:ac96:e33a:7cce:aea0) (Remote host closed the connection)
17:12:09 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 256 seconds)
17:12:41 × opticblast quits (~Thunderbi@secure-165.caltech.edu) (Quit: opticblast)
17:13:07 opticblast joins (~Thunderbi@secure-165.caltech.edu)
17:14:58 jmdaemon joins (~jmdaemon@user/jmdaemon)
17:15:09 × segfaultfizzbuzz quits (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Quit: segfaultfizzbuzz)
17:15:30 segfaultfizzbuzz joins (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
17:15:30 segfaultfizzbuzz is now known as rustisafungus
17:16:25 × chele quits (~chele@user/chele) (Remote host closed the connection)
17:17:22 × CiaoSen quits (~Jura@p200300c9574fa4002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
17:19:37 × mcglk quits (~mcglk@131.191.49.120) (Read error: Connection reset by peer)
17:21:36 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 268 seconds)
17:22:29 Guest|56 joins (~Guest|56@77.234.44.164)
17:22:56 × Guest|56 quits (~Guest|56@77.234.44.164) (Client Quit)
17:26:19 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 260 seconds)
17:26:49 × enoq quits (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
17:28:22 × alfonsox quits (~quassel@103.87.57.33) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
17:30:22 × mbuf quits (~Shakthi@49.204.135.44) (Quit: Leaving)
17:31:58 × kenaryn quits (~aurele@89-88-44-27.abo.bbox.fr) (Quit: leaving)
17:34:04 mcglk joins (~mcglk@131.191.49.120)
17:34:10 kurbus joins (~kurbus@user/kurbus)
17:37:32 × kurbus quits (~kurbus@user/kurbus) (Client Quit)
17:38:47 × teo quits (~teo@user/teo) (Ping timeout: 246 seconds)
17:40:29 × acidjnk_new quits (~acidjnk@p200300d6e715c423f492b91f65fccc9f.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
17:40:59 Tuplanolla joins (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi)
17:41:02 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
17:47:51 freeside_ joins (~mengwong@bb115-66-48-84.singnet.com.sg)
17:47:53 ec joins (~ec@gateway/tor-sasl/ec)
17:49:39 × freeside quits (~mengwong@103.252.202.159) (Ping timeout: 260 seconds)
17:51:02 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds)
17:52:43 × ncf quits (~n@monade.li) (Quit: Fairfarren.)
17:52:57 ncf joins (~n@monade.li)
17:53:09 kurbus joins (~kurbus@user/kurbus)
17:57:28 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
18:03:38 × nschoe quits (~q@141.101.51.197) (Ping timeout: 246 seconds)
18:06:53 × zeenk quits (~zeenk@2a02:2f04:a110:ac00::7fe) (Quit: Konversation terminated!)
18:11:11 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
18:11:47 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
18:14:01 <raehik> If I ask `cabal -O2`, will it perform optimizations for all my dependencies too?
18:15:18 <geekosaur> no. you need to put that in your `cabal.project`
18:15:50 <geekosaur> https://github.com/geekosaur/xmonad.hs/blob/skkukuk/cabal.project
18:16:47 <geekosaur> (you don't need the `-g`, that's leftover from trying to diagnose what turned out to be a ghc bug)
18:18:10 <raehik> ty. what if I want to optimize one build but not others? like `cabal test` can be -O1 or -O0, but building an exe should be -O2
18:18:54 <raehik> (also is there a diff between -O1 and -O2)
18:19:17 acidjnk_new joins (~acidjnk@p200300d6e715c419193affabe67df89f.dip0.t-ipconnect.de)
18:19:33 <geekosaur> there's a difference, but mostly that -O2 takes much longer to build. it doesn't usually gain you much
18:19:35 <sclv> O1 is "normal" O2 is "lots, even at the cost of code size and compilation speed" and O0 is "optimize for compilation speed"
18:20:08 <sclv> for optimizing different builds you just need to pass the flag explicitly on the command line
18:20:29 <sclv> but typically once you have the lib built at one opt level you should leave it for the test suite, so that the lib doesn't get rebuilt at a new opt level
18:20:39 <geekosaur> if you want to change it per kind of build, have multiple `cabal.project` files. like cabal itself has a `cabal.project.release` you use to build releases instead of for development
18:21:15 <geekosaur> hm, guess that depends on how thorough you want to be and what other options you miht want to change
18:22:03 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Remote host closed the connection)
18:23:45 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
18:24:19 <raehik> ooer crash. thanks geekosaur and sclv
18:24:34 <eldritchcookie[4> how does the CApi calling convention work it claims to be able to import values defined as macros, what if i have something like AL_FUNC(return type,function called, more stuff i have no idea about ) would i be able to import that ?
18:25:26 <geekosaur> it builds a C stub, so it can do whatever C can do. the old `ccall` api, when used with `-fasm`, just attempts a direct call to it as if it were a function available via asm
18:25:29 <glguy> eldritchcookie[4: it doesn't import anything; it makes a little C stub that it compiles with a C compiler
18:31:44 ec_ joins (~ec@gateway/tor-sasl/ec)
18:33:57 ec__ joins (~ec@gateway/tor-sasl/ec)
18:34:14 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds)
18:34:29 <raehik> if anyone here uses haskell-flake or Nix with haskell: how can I configure flags for my Nix builds? can I ask it to disable optimizations for all pkgs for a build?
18:35:06 × SasoriZero quits (~SasoriZer@098-147-198-034.res.spectrum.com) (Quit: Client closed)
18:35:23 SasoriZero joins (~SasoriZer@098-147-198-034.res.spectrum.com)
18:37:50 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds)
18:39:43 <raehik> Nix somehow produces outstandingly tiny binaries compared to regular `cabal build` wish I knew what went on in there. mostly opts and symbol (?) stripping but it still saved space after disabling them
18:40:10 <merijn> raehik: Is Nix using dynamic linking by default?
18:40:19 <merijn> raehik: That'd cut down a lot without actually cutting down
18:40:55 <merijn> raehik: Also, are you using split-objs?
18:41:12 <geekosaur> split-sections these days, works better and is a lot faster
18:41:21 <merijn> eh, yeah
18:41:33 <merijn> I meant split-sections, I even checked and then my brain typed the wrong one
18:41:38 <raehik> `ldd` output on both looks the same. unsure about split-objs etc
18:42:09 <merijn> raehik: split-sections lets the linker include only what is used from a library (including transitively), leading to dramatic shrinkage
18:43:57 <raehik> interesting, looks like nix's haskell tooling enables it with enableDeadCodeElimination flag
18:43:57 × dagit quits (~dagit@2001:558:6025:38:6476:a063:d05a:44da) (Read error: Connection reset by peer)
18:44:16 dagit joins (~dagit@2001:558:6025:38:6476:a063:d05a:44da)
18:45:03 <raehik> are these not default otherwise? they seem like comfortable wins
18:48:18 <geekosaur> possibly -split-sections should be on platforms/object file formats that support it (ELF, eCOFF)
18:48:59 <geekosaur> it does have the downside that those unused parts won't be available from ghci or other effectively dynamic calls (e.g. plugins package)
18:49:51 <merijn> raehik: Not default, no
18:50:14 <merijn> at least not when I last checked a few years back
18:50:55 <geekosaur> a ghc issue might be appropriate (probably not a proposal, wrong level)
18:52:40 <geekosaur> there was good reason for -split-objs to not be default (it slowed linking down a whole lot); I think that was simply carried over without really revisiting whether it was still a factor
18:52:43 <raehik> last thing I'm confused about, regardless of `optimization: X` in cabal.project.local, the build products all link to the same libs (in the Nix store). pre-Nix I was used to a change like that making evvverything recompile
18:53:19 <geekosaur> it is possible that you need something like `package *\n optimization: 2`
18:53:27 <geekosaur> I haven't checked
18:53:34 <geekosaur> sclv?
18:54:20 <merijn> Or in ~/.cabal/config :p
19:01:19 mizlan joins (~mizlan@2607:f010:2e9:21:181d:5524:60f4:7388)
19:02:32 <raehik> guess this hardly matters because Hackage pkgs on Nix are almost certainly built with -O1 and not needing to rebuild to use with -O0 is fine by me. just confused how Nix can do so much without being told to
19:05:37 × kurbus quits (~kurbus@user/kurbus) (Quit: Client closed)
19:07:45 × epolanski quits (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
19:10:43 <davean> I don't know about currently, but nix use to rip out VERY important things ... like my dependency constraint on 'directory'
19:10:50 <davean> it might just be ripping it out
19:11:19 <davean> (This caused me dataloss)
19:14:01 <raehik> rip out? like ignore? that's surprising
19:14:05 <davean> YEP!
19:14:29 <davean> Just deleted the constraint, assumed the version of directory with the compiler would always be fine
19:15:17 <davean> *I'd specificly gotten directory fixed because it was not fine and required the fixed version* - there *was* an entire set of packages they just trusted to not need version bounds
19:18:05 <davean> I don't know if they stopped or not but I will never stop being angry about that
19:20:00 × troydm quits (~troydm@user/troydm) (Ping timeout: 268 seconds)
19:20:10 CiaoSen joins (~Jura@p200300c9574fa4002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
19:25:16 <sclv> geekosaur: that sounds right about setting that in cabal.project.local. its not a nix thing afaik but cabal changed the scope of ghc-options to be local by default unless otherwise speciied
19:33:35 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
19:35:00 wootehfoot joins (~wootehfoo@user/wootehfoot)
19:37:39 kuribas joins (~user@d51529C17.access.telenet.be)
19:38:43 × jero98772 quits (~jero98772@2800:484:1d80:d8ce:9815:cfda:3661:17bb) (Ping timeout: 260 seconds)
19:38:43 × kuribas quits (~user@d51529C17.access.telenet.be) (Read error: Connection reset by peer)
19:38:55 × mizlan quits (~mizlan@2607:f010:2e9:21:181d:5524:60f4:7388) (Ping timeout: 256 seconds)
19:39:32 jero98772 joins (~jero98772@2800:484:1d80:d8ce:9815:cfda:3661:17bb)
19:43:00 mizlan joins (~mizlan@2607:f010:2e9:21:181d:5524:60f4:7388)
19:43:25 <eldritchcookie[4> how can i get all declarations of a module with template haskell?
19:44:30 <geekosaur> (a) your TH would need to be at the very end of the file, since it's executed as the file is compiled (b) you would need to look at the ghc api to see how to get at everything in the current AST
19:48:24 <geekosaur> for practical examples, try looking at one of the test frameworks that includes autodiscovery of embedded tests
19:49:48 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
19:50:57 wootehfoot joins (~wootehfoo@user/wootehfoot)
19:51:36 <geekosaur> for example https://github.com/nick8325/quickcheck/blob/master/src/Test/QuickCheck/All.hs
19:51:45 son0p joins (~ff@2800:e2:f80:867:8077:75e8:74b:f48d)
19:51:50 × mizlan quits (~mizlan@2607:f010:2e9:21:181d:5524:60f4:7388) (Ping timeout: 246 seconds)
19:55:16 × freeside_ quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 272 seconds)
19:58:40 <eldritchcookie[4> how can i partially apply a function at compile time?
19:58:47 gmg joins (~user@user/gehmehgeh)
19:59:32 <Rembane> eldritchcookie[4: f x y = x + y; g y = f 7 y
20:01:36 × crns quits (~netcrns@user/crns) (Ping timeout: 272 seconds)
20:03:06 crns joins (~netcrns@p4ff5e2c3.dip0.t-ipconnect.de)
20:03:06 × crns quits (~netcrns@p4ff5e2c3.dip0.t-ipconnect.de) (Changing host)
20:03:06 crns joins (~netcrns@user/crns)
20:03:18 <int-e> which you can write as g = f 7 (with some caveats regarding type signatures in light of the monomorphism restriction)
20:04:21 <int-e> (Regarding `f` as a two-argument function, `f 7 y` isn't actually a partial application here. But `f 7` is.)
20:04:51 × CiaoSen quits (~Jura@p200300c9574fa4002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
20:06:03 × Inst quits (~Inst@2601:6c4:4081:54f0:e9bd:b9a0:edd8:a4) (Ping timeout: 248 seconds)
20:06:10 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
20:13:04 panovia joins (~user@user/siracusa)
20:25:32 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
20:26:20 freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg)
20:26:51 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
20:37:45 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
20:40:14 troydm joins (~troydm@user/troydm)
20:46:30 × SasoriZero quits (~SasoriZer@098-147-198-034.res.spectrum.com) (Quit: Client closed)
20:48:25 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:ac96:e33a:7cce:aea0)
20:51:00 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
20:54:09 × trev quits (~trev@user/trev) (Remote host closed the connection)
20:55:56 kurbus joins (~kurbus@user/kurbus)
20:59:45 <mastarija> I'm trying to organize my understanding of Functor, Applicative, Monad relationship a bit.
21:00:16 <mastarija> We can say that functor can bring a function into another domain, right e.g. (a -> b) -> (f a -> f b)
21:00:35 <lyxia> sure
21:01:20 <merijn> mastarija: The link is that the functor interface is a subset of the monad interface (i.e. it is less powerful) and as a result the things that *are* functors is a superset of things that are monads
21:01:21 <mastarija> Applicative is an upgrade because it allows us to apply arguments from that new domain to a lifted function e.g. f (a -> b) -> f a -> f b
21:01:48 oldfashionedcow joins (~Rahul_San@user/oldfashionedcow)
21:02:17 <mastarija> Now, I remember there was nice comparison of fmap, and <*> and how "symetrical" they are
21:02:47 <mastarija> But I also remember bind was in that comparison, but somehow when I look at them together bind is not really similar
21:02:48 SasoriZero joins (~SasoriZer@098-147-198-034.res.spectrum.com)
21:03:02 <merijn> "fmap f x = pure f <*> x"
21:03:25 × kurbus quits (~kurbus@user/kurbus) (Quit: Client closed)
21:03:49 <mastarija> Yes, I get that more powerul things can implement less powerful ones.
21:03:50 <mauke> bind :: (a -> f b) -> f a -> f b
21:04:13 <mastarija> hm... is it not the other way around?
21:04:25 <mauke> technically, yes
21:04:32 <mastarija> f a -> (a -> f b) -> f b
21:04:32 <mauke> :t (=<<)
21:04:34 <lambdabot> Monad m => (a -> m b) -> m a -> m b
21:04:44 <lyxia> mastarija: a comparison like this? https://en.wikibooks.org/wiki/Haskell/Applicative_functors#A_sliding_scale_of_power
21:04:55 <mauke> @src =<<
21:04:55 <lambdabot> f =<< x = x >>= f
21:05:29 <mastarija> lyxia: yes :)
21:05:35 <mauke> it's simply swapping the order of arguments, nothing fancy
21:06:03 <geekosaur> :t (>=>)
21:06:04 <lambdabot> Monad m => (a -> m b) -> (b -> m c) -> a -> m c
21:06:16 <mauke> you could also think of it as f =<< x = join (fmap f x)
21:06:16 <mastarija> Also, what can we say about the "meaning" of applicative and monad. I remember that applicative represents paralel actions, and monad represents sequential actions
21:06:44 <mastarija> Any resource that expands on that interpretation?
21:06:50 <mauke> (where join embodies the secret power of monads)
21:07:46 <mastarija> so, the main thing of monads is that we are able to pull out nested monad out?
21:08:05 <geekosaur> mastarija, the operations combined by <*> don't depend on each other, so they can be parallelized; >>= explicitly makes one depend on the other, so they must be done in sequence
21:08:09 mc47 joins (~mc47@xmonad/TheMC47)
21:08:54 <mauke> well, we can merge layers of nesting
21:08:55 <mauke> we can't make them go away completely
21:08:57 <mastarija> yes, that makes sense. I was just wondering if there's something more?
21:09:05 <geekosaur> but that very dependency is why Monad is stronger in some sense than Applicative
21:09:40 <mastarija> geekosaur: you mean that next step depends on the previous one?
21:09:46 × freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds)
21:09:51 <geekosaur> yes. because Monad can now "make decisions"
21:09:59 <geekosaur> whereas Applicative can't
21:10:24 <mastarija> Aha... that's the kind of explanation I was looking for :)
21:12:02 <mastarija> Thanks!
21:13:19 <mauke> do applicative parsers correspond to context-free grammars?
21:13:55 <mastarija> So, in the same sense that monad is more powerful than applicative because it can make decisions, what makes applicative more powerful than a functor?
21:14:00 <geekosaur> I think so? seems to go along with individual parsers not being able to see each others' results
21:14:03 <dolio> No, because laziness.
21:14:34 <mastarija> Other than ability to apply lifted function to lifted arguments?
21:14:52 <geekosaur> mastarija, because they can be done (or can be thought of as being done, but I think Simon Marlow has actual parallelism via Applicative) in parallel
21:15:24 <geekosaur> not being dependent on each other is a different kind of power
21:15:33 <merijn> oh
21:15:37 <mastarija> What do you mean by being done?
21:15:43 <merijn> Go read the Selective Functor paper
21:15:52 <tomsmeding> was just going to post https://hackage.haskell.org/package/selective-0.5/docs/Control-Selective.html
21:15:53 <merijn> That has a nice table and explanation :p
21:16:13 <tomsmeding> more powerful than Applicative, but not quite as powerful as Monad
21:16:23 <tomsmeding> in the sense of "making decisions"
21:16:38 <mastarija> Hm... the linked paper no longer exists
21:16:44 <mastarija> Is the documentation enough?
21:16:49 <merijn> Google Scholar selective functors
21:16:58 <geekosaur> try the wayback machine?
21:17:15 <merijn> https://scholar.google.com/scholar?cluster=7696894104468042395&hl=en&as_sdt=0,5
21:17:20 <tomsmeding> https://dl.acm.org/doi/pdf/10.1145/3341694
21:17:26 <mastarija> Thx
21:19:56 freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg)
21:20:21 <mastarija> I don't quite get what they mean by "static visibility and analysis of effects" why can applicative and selective do that and monad can't?
21:20:38 <mastarija> Don't we have things like `try` and `catch`?
21:21:06 <tomsmeding> mastarija: if you have some computation 'f :: Monad m => Int -> m Int', then you cannot trace the entire function
21:21:22 <tomsmeding> because if it uses >>=, then you must have the input value for that >>= in order to be able to run the continuation
21:21:31 <tomsmeding> but in tracing your input value is symbolic, so that doesn't work
21:21:47 <tomsmeding> with Applicative, no such dependencies exist, so you can trace all you like
21:22:05 <tomsmeding> Selective allows the same tracing because it does not guarantee that the selected-out effects are not performed
21:22:27 <tomsmeding> (this is described in the haddocks as well as, presumably, in the paper)
21:22:51 <mastarija> Hm.. having a hard time understanding it.
21:23:08 <tomsmeding> I'm having a hard time understanding my own example lol
21:23:32 × hgolden quits (~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
21:23:33 <tomsmeding> ah, I guess this is better: 'f :: Monad m => m Int -> m Int'
21:24:14 × freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 246 seconds)
21:24:28 <tomsmeding> if 'f' goes 'f act = act >>= \x -> if x == 12345 then return 1 else return 0', but you have only f as a black box, how are you going to find out that it can also return something else than 0?
21:24:35 <tomsmeding> apart from sheer luck
21:26:42 <tomsmeding> hm example is also flawed
21:26:47 <tomsmeding> it's too late here, someone else can explain :D
21:26:57 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
21:26:58 <mastarija> I'll have to think about this a bit harder, plus it's late :)
21:27:00 <lyxia> mauke: you can applicative-parse any recursively enumerable language by enumerating its words and "asum" them.
21:27:47 <mauke> is that like an infinite grammar?
21:27:50 <lyxia> you only get context-free-ness if you're not allowed to make functions (a -> Parser b)
21:27:56 <lyxia> yeah
21:28:41 hgolden joins (~hgolden@cpe-172-251-233-141.socal.res.rr.com)
21:29:22 <lyxia> Each nonterminal symbol in a grammar could correspond to a "Parser a", but (a -> Parser b) lets you construct a grammar with infinitely many nonterminals
21:30:55 chaitlatte0 joins (6623d1650e@user/chaitlatte0)
21:32:48 caryhartline joins (~caryhartl@2600:1700:2d0:8d30:c1fe:ec76:ecb9:a42c)
21:33:28 × chaitlatte0 quits (6623d1650e@user/chaitlatte0) (Remote host closed the connection)
21:33:37 chaitlatte0 joins (6623d1650e@user/chaitlatte0)
21:33:39 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
21:34:13 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
21:34:13 × Vajb quits (~Vajb@2001:999:78d:d7:457c:7773:573e:6903) (Read error: Connection reset by peer)
21:34:22 Vajb joins (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi)
21:34:41 <mauke> I don't know if I've got this right, but re: static effects
21:34:42 <mauke> imagine something like `(readLn :: IO Integer) >>= foo`
21:35:23 <mauke> depending on the (arbitrarily large) value produced by readLn, foo can assemble any sort of effects it likes
21:36:13 <mauke> from no effects (return x) to all the effects (delete all your files, then produce an infinite stream of bytes on stdout) and anything in between
21:36:54 <mauke> and because of the monadic interface, foo gets to make this choice dynamically, at runtime
21:38:19 freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg)
21:39:07 <mauke> whereas with Applicative you get to do computation on the incoming value, but it can't affect the effects
21:39:10 <mauke> great sentence
21:40:41 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
21:42:36 dsrt^ joins (~dsrt@76.145.190.81)
21:43:26 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Quit: leaving)
21:43:53 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
21:44:00 king_gs joins (~Thunderbi@2806:103e:29:45ac:af0:afaf:29e7:dd60)
21:44:11 × pyrex quits (~pyrex@user/pyrex) (Ping timeout: 248 seconds)
21:45:08 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Client Quit)
21:45:54 <tomsmeding> right, I was trying to show that with a function that doesn't do any effects, you can still see a difference between Monad and Applicative. But you can't, the point is that the _effects_ can depend on the values (Monad) or not (Applicative)
21:46:18 <tomsmeding> and with Selective, they can sortof, but the a
21:46:52 <tomsmeding> *but the laws allow you to run the computation executing _all_ effects, i.e. disabling the effect the values have on the effects
21:46:54 × irrgit__ quits (~irrgit@146.70.27.242) (Remote host closed the connection)
21:47:01 jakalx joins (~jakalx@base.jakalx.net)
21:47:17 <tomsmeding> talking about how values affect effects, i.e. how they have effects on effects, is confusing
21:47:24 <tomsmeding> :t confusing
21:47:26 <lambdabot> Applicative f => LensLike (Data.Functor.Day.Curried.Curried (Data.Functor.Yoneda.Yoneda f) (Data.Functor.Yoneda.Yoneda f)) s t a b -> LensLike f s t a b
21:47:46 × Vajb quits (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer)
21:47:52 irrgit__ joins (~irrgit@86.106.90.226)
21:48:54 Vajb joins (~Vajb@2001:999:78d:d7:457c:7773:573e:6903)
21:51:11 <tomsmeding> for IO, the question could be: can this computation at some point decide to delete all my files? For Parser, it could be: does the parser ever use the 'satisfy' primitive? For some parallelism monad, it could be: how wide is the potential parallelism?
21:51:55 <tomsmeding> with applicatives, you can answer those questions; with Selective, you can check whether it _potentially_ does so. With Monad, you have no clue after the first >>=
21:52:25 <tomsmeding> you can only run the computation and see what happens
21:53:27 <tomsmeding> I hope I got it right now lol
21:54:39 <tomsmeding> for Parser you could also consider optimising the parser, like rearranging alternatives so that you have a higher probability of early-outs or something
21:55:07 <tomsmeding> with Applicative you can see the structure (if not the values), with Monad you don't
22:10:19 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
22:13:19 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds)
22:17:27 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.7.1)
22:20:02 × Ranhir quits (~Ranhir@157.97.53.139) (Read error: Connection reset by peer)
22:21:46 Lycurgus joins (~juan@user/Lycurgus)
22:23:31 Ranhir joins (~Ranhir@157.97.53.139)
22:31:38 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds)
22:38:41 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
22:39:24 merijn joins (~merijn@c-001-001-015.client.esciencecenter.eduvpn.nl)
22:40:37 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
22:40:44 × freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds)
22:45:52 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
22:46:40 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:47:59 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:ac96:e33a:7cce:aea0) (Remote host closed the connection)
22:48:57 freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg)
22:51:27 fserucas joins (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7)
22:55:59 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
23:04:55 × fserucas quits (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Remote host closed the connection)
23:05:03 × Tuplanolla quits (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.)
23:08:25 fserucas joins (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7)
23:08:27 × king_gs quits (~Thunderbi@2806:103e:29:45ac:af0:afaf:29e7:dd60) (Ping timeout: 265 seconds)
23:12:44 talismanick joins (~talismani@campus-098-253.ucdavis.edu)
23:13:41 × fserucas quits (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Ping timeout: 256 seconds)
23:13:47 × merijn quits (~merijn@c-001-001-015.client.esciencecenter.eduvpn.nl) (Ping timeout: 248 seconds)
23:15:26 × son0p quits (~ff@2800:e2:f80:867:8077:75e8:74b:f48d) (Read error: Connection reset by peer)
23:16:47 son0p joins (~ff@181.136.122.143)
23:17:46 kimjetwav joins (~user@2607:fea8:235e:b600:eeaa:dbc4:ae4b:9b7c)
23:17:50 justsomeguy joins (~justsomeg@user/justsomeguy)
23:18:17 ub joins (~Thunderbi@p200300ecdf264e90ea29c278ebba470c.dip0.t-ipconnect.de)
23:19:20 × ubert quits (~Thunderbi@p548c9ce5.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
23:19:20 ub is now known as ubert
23:27:09 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
23:29:11 × perrierjouet quits (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.8)
23:31:29 × talismanick quits (~talismani@campus-098-253.ucdavis.edu) (Ping timeout: 260 seconds)
23:31:55 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 248 seconds)
23:34:15 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
23:34:15 thyriaen joins (~thyriaen@2a01:aea0:dd4:4bae:6245:cbff:fe9f:48b1)
23:38:37 × acidjnk_new quits (~acidjnk@p200300d6e715c419193affabe67df89f.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
23:39:53 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 252 seconds)
23:43:55 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
23:44:41 × mastarija quits (~mastarija@188.252.197.182) (Quit: WeeChat 3.7.1)
23:48:38 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:ac96:e33a:7cce:aea0)
23:48:52 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
23:54:43 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
23:57:31 × Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
23:57:34 ub joins (~Thunderbi@p548c9ce5.dip0.t-ipconnect.de)
23:58:56 × ubert quits (~Thunderbi@p200300ecdf264e90ea29c278ebba470c.dip0.t-ipconnect.de) (Remote host closed the connection)
23:58:56 ub is now known as ubert

All times are in UTC on 2023-01-11.