Home liberachat/#haskell: Logs Calendar

Logs on 2023-06-08 (liberachat/#haskell)

00:03:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
00:04:30 ec_ joins (~ec@gateway/tor-sasl/ec)
00:05:39 Lycurgus joins (~juan@user/Lycurgus)
00:07:08 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
00:09:01 × mechap quits (~mechap@user/mechap) (Ping timeout: 256 seconds)
00:11:51 mechap joins (~mechap@user/mechap)
00:12:16 Feuermagier is now known as Guest5221
00:12:17 Feuermagier_ joins (~Feuermagi@user/feuermagier)
00:12:17 × Guest5221 quits (~Feuermagi@user/feuermagier) (Killed (mercury.libera.chat (Nickname regained by services)))
00:12:17 Feuermagier_ is now known as Feuermagier
00:12:32 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
00:15:58 ec_ joins (~ec@gateway/tor-sasl/ec)
00:16:01 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
00:20:32 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
00:21:37 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
00:21:56 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
00:26:37 × Square quits (~Square@user/square) (Ping timeout: 240 seconds)
00:27:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
00:31:11 ec_ joins (~ec@gateway/tor-sasl/ec)
00:37:20 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
00:38:39 ec_ joins (~ec@gateway/tor-sasl/ec)
00:42:03 <Inst> nice, Crytonite finally got an authorized fork
00:42:43 <geekosaur> which has broken a big chunk of hackage…
00:43:09 <Axman6> yeah, this has not been well handled
00:44:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
00:46:07 <EvanR> even worse, they misspelled Cryptonite
00:46:27 <Axman6> so has basically every single project that depends on wai just been broken?
00:46:54 <geekosaur> afaict yes
00:47:08 <geekosaur> been hearing a lot of wailing on the subject
00:47:22 ec_ joins (~ec@gateway/tor-sasl/ec)
00:55:42 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
00:55:42 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
00:55:42 wroathe joins (~wroathe@user/wroathe)
00:55:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
00:59:07 ec_ joins (~ec@gateway/tor-sasl/ec)
00:59:26 × phma quits (phma@2001:5b0:2143:8e68:6bbc:8a93:7b53:3876) (Read error: Connection reset by peer)
00:59:52 phma joins (phma@2001:5b0:2143:8e68:4a0a:5813:1bab:50e7)
01:00:11 drdo0 joins (~drdo@bl8-153-185.dsl.telepac.pt)
01:02:26 × drdo quits (~drdo@bl8-153-185.dsl.telepac.pt) (Ping timeout: 268 seconds)
01:02:26 drdo0 is now known as drdo
01:03:27 <sm> it sounds bad, but this is what stackage or cabal freeze files are for
01:04:16 <EvanR> problem with freezing is your numbers don't go up
01:04:49 × Albina_Pavlovna quits (~Albina_Pa@2600:4040:9526:fe00:c14:24f5:954f:f0a3) (Quit: bb)
01:04:54 <sm> make a new freeze every day. With cron. :)
01:05:20 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
01:05:44 <jackdk> Is there a migration guide for maintainers? My current instinct is to make a `crypton` flag which defaults to true, but I don't know if that's right
01:06:30 <EvanR> the real problem is the discrete jumps in versions. If development was smooth and continuous, this sudden breakage would be impossible
01:06:32 <sm> there must be at least an issue by now
01:07:43 <sm> EvanR, oh interesting.. how do bounds work then ? "more base.. even more containers.. absolutely very very little of aeson.. " ?
01:08:39 <Axman6> jackdk: that feels like abetter solution to the one I just sent to you elsewhere :P probably a good idea to default to crypton... but it also depends on your deps doing the same or there'll be conflicts in imports
01:08:50 ec_ joins (~ec@gateway/tor-sasl/ec)
01:10:12 <sm> EvanR: or.. we are all inside one world smalltalk image ?
01:10:45 <jackdk> I think my packages only do a little bit of cryptonite directly for signing; not sure what happens if I get http-conduit atop cryptonite vs http-conduit atop crypton
01:10:45 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:11:07 × Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
01:11:35 <EvanR> sm, the second one, if nothing ever changes ever, it's smooth and continuous by technicality
01:12:33 <sm> what could possible go wrong. I like it
01:14:07 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 250 seconds)
01:16:53 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:18:56 × oo_miguel quits (~Thunderbi@77.252.47.84) (Ping timeout: 248 seconds)
01:20:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
01:23:52 ec_ joins (~ec@gateway/tor-sasl/ec)
01:24:10 nate2 joins (~nate@98.45.169.16)
01:28:57 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
01:31:01 × xff0x_ quits (~xff0x@2405:6580:b080:900:7473:54f9:1e2f:2bc) (Ping timeout: 240 seconds)
01:31:07 × Nosrep quits (~Nosrep@user/nosrep) (Remote host closed the connection)
01:31:25 Nosrep joins (~Nosrep@user/nosrep)
01:38:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
01:39:46 merijn joins (~merijn@c-001-001-004.client.esciencecenter.eduvpn.nl)
01:41:52 × y04nn quits (~username@2a03:1b20:5:f011::aaae) (Ping timeout: 250 seconds)
01:45:55 × merijn quits (~merijn@c-001-001-004.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
01:46:19 ec_ joins (~ec@gateway/tor-sasl/ec)
01:54:32 <statusbot9> Maintenance update: Upgrade starting shortly. -- http://status.haskell.org/pages/maintenance/537c07b0cf1fad5830000093/648134c1ac57b006d76b298e
01:55:04 <Axman6> I didn't know we got those notifications in here...
01:55:26 <pavonia> They are very rare
01:57:05 <EvanR> if you can't observe cryptonite breakage because hackage is down, it's morally not broken
01:59:21 <monochrom> :)
02:00:22 <Axman6> _IF_ hackage returns, there will be many exceptions, but otherwise, the curry-howard correspondence's function arrow saves us yet again
02:00:32 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
02:02:06 ec_ joins (~ec@gateway/tor-sasl/ec)
02:05:19 <statusbot9> Maintenance update: Hackage has been upgraded and is back online. -- http://status.haskell.org/pages/maintenance/537c07b0cf1fad5830000093/648134c1ac57b006d76b298e
02:05:35 <Axman6> oh no D:
02:05:49 <Axman6> We're gonna need superman's help!
02:06:00 × CalculusCats quits (NyaaTheKit@user/calculuscat) (Quit: Meow Meow Meow Meow Meow Meow Meow Meow)
02:07:59 CalculusCats joins (NyaaTheKit@user/calculuscat)
02:08:15 <sclv> what's the breakage?
02:08:19 <sclv> with crypton?
02:08:27 <sclv> it looks like wai did something goofy, but now it fixed that
02:10:44 xff0x_ joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
02:11:20 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
02:14:56 ec_ joins (~ec@gateway/tor-sasl/ec)
02:17:13 nate2 joins (~nate@98.45.169.16)
02:20:23 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:20:23 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:20:23 finn_elija is now known as FinnElija
02:28:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
02:29:18 [_] joins (~itchyjunk@user/itchyjunk/x-7353470)
02:32:01 ec_ joins (~ec@gateway/tor-sasl/ec)
02:33:26 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 250 seconds)
02:33:34 [_] is now known as [itchyjunk]
02:34:05 × tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 240 seconds)
02:34:37 × use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:11c4:bb75:150b:3612) (Remote host closed the connection)
02:35:53 use-value joins (~Thunderbi@2a00:23c6:8a03:2f01:11c4:bb75:150b:3612)
02:38:28 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
02:39:20 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
02:43:09 ec_ joins (~ec@gateway/tor-sasl/ec)
02:47:37 tomboy64 joins (~tomboy64@user/tomboy64)
02:48:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
02:49:45 × td_ quits (~td@i5387091A.versanet.de) (Ping timeout: 240 seconds)
02:51:39 ec_ joins (~ec@gateway/tor-sasl/ec)
02:51:46 td_ joins (~td@i53870909.versanet.de)
02:54:13 × vglfr quits (~vglfr@2a0d:3344:140c:2810:a8ed:895f:3485:d7a6) (Ping timeout: 250 seconds)
02:54:31 vglfr joins (~vglfr@cli-188-239-233-89.bbn.slav.dn.ua)
02:54:50 × blackpill0w quits (~blackpill@user/blackpill0w) (Quit: WeeChat 3.8)
02:57:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
02:57:53 × vandita quits (~vandit@178-164-188-17.pool.digikabel.hu) (Ping timeout: 256 seconds)
02:59:20 vandita joins (~vandit@92-249-185-139.pool.digikabel.hu)
03:00:49 ec_ joins (~ec@gateway/tor-sasl/ec)
03:01:39 × jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Remote host closed the connection)
03:08:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
03:09:00 ec_ joins (~ec@gateway/tor-sasl/ec)
03:11:07 × hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds)
03:18:51 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds)
03:22:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
03:24:33 × byte quits (~byte@user/byte) (Ping timeout: 250 seconds)
03:25:58 ec_ joins (~ec@gateway/tor-sasl/ec)
03:26:09 hugo joins (znc@verdigris.lysator.liu.se)
03:32:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
03:34:09 <sm> upgrades! yay! \o/
03:34:34 <sm> secret ones
03:35:54 freeside joins (~mengwong@103.252.202.189)
03:36:39 ec_ joins (~ec@gateway/tor-sasl/ec)
03:42:19 merijn joins (~merijn@c-001-001-004.client.esciencecenter.eduvpn.nl)
03:43:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
03:45:23 ec_ joins (~ec@gateway/tor-sasl/ec)
03:46:11 <albet70> is that all callCC calling can transform to CPS?
03:52:51 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 256 seconds)
03:55:40 chromoblob joins (~user@37.113.158.8)
03:56:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
04:00:05 × chromoblob quits (~user@37.113.158.8) (Ping timeout: 240 seconds)
04:04:09 <Axman6> albet70: I'm not sure I understand the question
04:08:26 ec_ joins (~ec@gateway/tor-sasl/ec)
04:09:34 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
04:09:45 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds)
04:15:37 × merijn quits (~merijn@c-001-001-004.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
04:16:08 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 250 seconds)
04:19:09 freeside joins (~mengwong@103.252.202.189)
04:21:04 chromoblob joins (~user@37.113.158.8)
04:24:05 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 268 seconds)
04:25:56 × chromoblob quits (~user@37.113.158.8) (Ping timeout: 268 seconds)
04:26:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
04:28:23 ec_ joins (~ec@gateway/tor-sasl/ec)
04:33:46 lortabac joins (~lortabac@46-253-188-2.dynamic.monzoon.net)
04:36:51 byte joins (~byte@user/byte)
04:38:21 zxrom_ joins (~zxrom@mm-73-23-212-37.vitebsk.dynamic.pppoe.byfly.by)
04:40:10 × zxrom quits (~zxrom@mm-62-27-212-37.vitebsk.dynamic.pppoe.byfly.by) (Ping timeout: 265 seconds)
04:41:55 byte` joins (~byte@user/byte)
04:42:08 × byte quits (~byte@user/byte) (Ping timeout: 265 seconds)
04:42:08 byte` is now known as byte
04:52:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
04:56:06 ec_ joins (~ec@gateway/tor-sasl/ec)
05:00:09 <dibblego> @src (<=<)
05:00:09 <lambdabot> Source not found. Wrong! You cheating scum!
05:00:15 <dibblego> @src (Control.Monad.<=<)
05:00:15 <lambdabot> Source not found. I can't hear you -- I'm using the scrambler.
05:02:41 <EvanR> (<=<) = flip (>=>)
05:02:48 trev joins (~trev@user/trev)
05:04:15 × lortabac quits (~lortabac@46-253-188-2.dynamic.monzoon.net) (Ping timeout: 256 seconds)
05:11:18 mbuf joins (~Shakthi@49.207.178.186)
05:14:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
05:14:33 dcoutts joins (~duncan@2001:620:130:6092:8b6f:ee09:26cb:f12f)
05:15:46 ec_ joins (~ec@gateway/tor-sasl/ec)
05:22:27 Pickchea joins (~private@user/pickchea)
05:22:46 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:22:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
05:25:54 ec_ joins (~ec@gateway/tor-sasl/ec)
05:26:16 trillp joins (~trillp@69.233.98.238)
05:27:42 lortabac joins (~lortabac@46-253-188-2.dynamic.monzoon.net)
05:28:59 × shapr quits (~user@2600:1700:c640:3100:65fd:cc0d:69b7:c4ce) (Ping timeout: 265 seconds)
05:31:19 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
05:33:52 × lortabac quits (~lortabac@46-253-188-2.dynamic.monzoon.net) (Quit: WeeChat 2.8)
05:35:24 mixfix41 joins (~sdeny9ee@user/mixfix41)
05:36:44 × jargon quits (~jargon@184.101.71.62) (Remote host closed the connection)
05:42:14 bgs joins (~bgs@212.85.160.171)
05:42:32 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds)
05:44:16 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
05:54:10 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
05:54:45 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
05:55:41 <dminuoso> albet70: Well yes, all that functions do is map input to some output. In case of ContT that output happens to be something involving continuations.
05:55:49 <dminuoso> But that's really just an implementation detail.
05:56:21 <dminuoso> It's sort of like saying "does if ... then ... else really just transform to jnz?"
05:56:48 stiell joins (~stiell@gateway/tor-sasl/stiell)
06:12:33 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
06:13:34 irfan joins (~irfan@user/irfan)
06:14:56 × zxrom_ quits (~zxrom@mm-73-23-212-37.vitebsk.dynamic.pppoe.byfly.by) (Ping timeout: 265 seconds)
06:15:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
06:17:15 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
06:20:15 freeside joins (~mengwong@103.252.202.189)
06:24:05 trillp parts (~trillp@69.233.98.238) ()
06:24:37 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
06:25:08 × dcoutts quits (~duncan@2001:620:130:6092:8b6f:ee09:26cb:f12f) (Ping timeout: 240 seconds)
06:26:08 zxrom_ joins (~zxrom@mm-73-23-212-37.vitebsk.dynamic.pppoe.byfly.by)
06:27:00 ec_ joins (~ec@gateway/tor-sasl/ec)
06:29:35 dcoutts joins (~duncan@2001:620:130:6092:8b6f:ee09:26cb:f12f)
06:35:44 chomwitt joins (~chomwitt@2a02:587:7a17:7500:1ac0:4dff:fedb:a3f1)
06:36:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
06:36:41 zxrom__ joins (~zxrom@mm-247-20-212-37.vitebsk.dynamic.pppoe.byfly.by)
06:38:25 × zxrom_ quits (~zxrom@mm-73-23-212-37.vitebsk.dynamic.pppoe.byfly.by) (Ping timeout: 240 seconds)
06:39:55 acidjnk joins (~acidjnk@p200300d6e7072f01d1c821db9a6d9801.dip0.t-ipconnect.de)
06:39:59 ec_ joins (~ec@gateway/tor-sasl/ec)
06:40:40 zxrom_ joins (~zxrom@mm-193-34-212-37.vitebsk.dynamic.pppoe.byfly.by)
06:42:27 × zxrom__ quits (~zxrom@mm-247-20-212-37.vitebsk.dynamic.pppoe.byfly.by) (Ping timeout: 265 seconds)
06:43:48 × bgs quits (~bgs@212.85.160.171) (Remote host closed the connection)
06:44:10 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
06:46:25 azimut joins (~azimut@gateway/tor-sasl/azimut)
06:46:56 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds)
06:47:41 zxrom__ joins (~zxrom@mm-219-30-212-37.vitebsk.dynamic.pppoe.byfly.by)
06:49:42 × zxrom_ quits (~zxrom@mm-193-34-212-37.vitebsk.dynamic.pppoe.byfly.by) (Ping timeout: 265 seconds)
06:52:32 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
06:55:27 ec_ joins (~ec@gateway/tor-sasl/ec)
06:56:45 × zxrom__ quits (~zxrom@mm-219-30-212-37.vitebsk.dynamic.pppoe.byfly.by) (Remote host closed the connection)
06:59:22 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 265 seconds)
07:00:15 fendor joins (~fendor@2a02:8388:1640:be00:7aca:a77a:4a28:631a)
07:02:32 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
07:04:41 dibblego joins (~dibblego@122-199-1-30.ip4.superloop.au)
07:04:41 × dibblego quits (~dibblego@122-199-1-30.ip4.superloop.au) (Changing host)
07:04:41 dibblego joins (~dibblego@haskell/developer/dibblego)
07:05:22 ec_ joins (~ec@gateway/tor-sasl/ec)
07:06:20 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
07:11:20 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
07:11:55 AndreiDuma joins (~textual@2001:620:130:6092:983c:926a:46f2:aa7d)
07:15:07 ec_ joins (~ec@gateway/tor-sasl/ec)
07:16:14 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
07:16:16 × AndreiDuma quits (~textual@2001:620:130:6092:983c:926a:46f2:aa7d) (Ping timeout: 248 seconds)
07:16:43 stiell joins (~stiell@gateway/tor-sasl/stiell)
07:21:29 zeenk joins (~zeenk@2a02:2f04:a106:3c00::7fe)
07:23:02 mheinzel_ joins (~mheinzel@2001:620:130:6092:360c:98ab:31d9:55ac)
07:25:12 freeside joins (~mengwong@103.252.202.189)
07:28:32 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
07:30:27 × acidjnk quits (~acidjnk@p200300d6e7072f01d1c821db9a6d9801.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
07:31:01 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 256 seconds)
07:32:13 ec_ joins (~ec@gateway/tor-sasl/ec)
07:33:01 gmg joins (~user@user/gehmehgeh)
07:34:51 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-b9db-66de-a2df-2e68.rev.sfr.net)
07:35:50 × vandita quits (~vandit@92-249-185-139.pool.digikabel.hu) (Read error: Connection reset by peer)
07:38:32 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
07:39:20 vandita joins (~vandit@92-249-182-124.pool.digikabel.hu)
07:40:05 ec_ joins (~ec@gateway/tor-sasl/ec)
07:41:14 acidjnk joins (~acidjnk@p200300d6e7072f01d1c821db9a6d9801.dip0.t-ipconnect.de)
07:42:28 hisa382 joins (~hisa38@104-181-102-238.lightspeed.wepbfl.sbcglobal.net)
07:45:07 × hisa38 quits (~hisa38@104-181-102-238.lightspeed.wepbfl.sbcglobal.net) (Ping timeout: 268 seconds)
07:45:07 hisa382 is now known as hisa38
07:48:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
07:49:11 chromoblob joins (~user@37.113.158.8)
07:49:26 oo_miguel joins (~Thunderbi@77.252.47.84)
07:51:49 ec_ joins (~ec@gateway/tor-sasl/ec)
07:52:40 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
07:55:03 gurkenglas joins (~user@dynamic-046-114-180-095.46.114.pool.telefonica.de)
07:55:54 __monty__ joins (~toonn@user/toonn)
07:57:20 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
07:58:49 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-b9db-66de-a2df-2e68.rev.sfr.net) (Remote host closed the connection)
08:00:09 merijn joins (~merijn@c-001-001-004.client.esciencecenter.eduvpn.nl)
08:03:36 ec_ joins (~ec@gateway/tor-sasl/ec)
08:03:45 × mheinzel_ quits (~mheinzel@2001:620:130:6092:360c:98ab:31d9:55ac) (Remote host closed the connection)
08:04:02 mheinzel_ joins (~mheinzel@2001:620:130:6092:20d7:49e:2182:3023)
08:06:38 Square joins (~Square@user/square)
08:07:32 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:2881:d3bd:5594:8455) (Remote host closed the connection)
08:09:59 nilradical joins (~nilradica@user/naso)
08:14:46 × mheinzel_ quits (~mheinzel@2001:620:130:6092:20d7:49e:2182:3023) (Ping timeout: 265 seconds)
08:16:30 mheinzel_ joins (~mheinzel@2001:620:130:6092:7ce4:c2da:badf:bc1e)
08:16:46 machinedgod joins (~machinedg@93-138-40-51.adsl.net.t-com.hr)
08:18:31 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
08:20:08 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
08:21:28 azimut joins (~azimut@gateway/tor-sasl/azimut)
08:23:22 mei joins (~mei@user/mei)
08:25:44 freeside joins (~mengwong@103.252.202.189)
08:26:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
08:28:29 ec_ joins (~ec@gateway/tor-sasl/ec)
08:29:33 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:31:28 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 248 seconds)
08:35:37 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
08:36:45 chele joins (~chele@user/chele)
08:41:23 × mheinzel_ quits (~mheinzel@2001:620:130:6092:7ce4:c2da:badf:bc1e) (Ping timeout: 265 seconds)
08:41:26 × oo_miguel quits (~Thunderbi@77.252.47.84) (Ping timeout: 246 seconds)
08:42:29 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-b9db-66de-a2df-2e68.rev.sfr.net)
08:43:20 oo_miguel joins (~Thunderbi@77.252.47.84)
08:44:42 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-b9db-66de-a2df-2e68.rev.sfr.net) (Remote host closed the connection)
08:46:33 × zeenk quits (~zeenk@2a02:2f04:a106:3c00::7fe) (Remote host closed the connection)
08:46:55 zeenk joins (~zeenk@2a02:2f04:a106:3c00::fba)
08:49:21 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
08:49:37 mheinzel joins (~mheinzel@2001:620:130:6092:762f:f9de:e627:8ca)
08:53:02 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
08:56:57 Pickchea joins (~private@user/pickchea)
08:58:17 × machinedgod quits (~machinedg@93-138-40-51.adsl.net.t-com.hr) (Ping timeout: 256 seconds)
08:59:19 gonz________ parts (sid304396@id-304396.lymington.irccloud.com) ()
09:01:58 <somerandomnick[m> does anyone have a haskell function lying around that reads Text from a utf-8 encoded file but also works for windows encodings eg. 1252? or am i doing it wrong
09:02:28 × shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 240 seconds)
09:02:29 ubert joins (~Thunderbi@2a02:8109:abc0:6434:734b:c6e7:ee63:2f95)
09:03:06 × ava[m] quits (~ava2607ma@2001:470:69fc:105::3:5307) (Remote host closed the connection)
09:03:08 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
09:03:09 <dminuoso> somerandomnick[m: "but also works", what exact behavior do you expect here?
09:03:20 <dminuoso> Automatic guessing of the encoding?
09:03:23 taupiqueur joins (~taupiqueu@2a02-842a-8180-4601-7103-52d8-4be8-ade6.rev.sfr.net)
09:03:23 <merijn> somerandomnick[m: By default Text's functions (like 'readFile :: FilePath -> IO String') base the encoding used on the system's environment, so assuming Windows is configured that 1252 is the default encoding it should "just work"
09:03:52 <merijn> somerandomnick[m: If relying on the environment isn't possible (because the environment doesn't match the file, for example) your only option is to explicitly decode
09:04:05 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds)
09:04:15 <merijn> somerandomnick[m: i.e. use ByteString to read the file, then decode from ByteString to Text
09:04:27 Lord_of_Life_ is now known as Lord_of_Life
09:04:48 × taupiqueur4 quits (~taupiqueu@2a02-842a-8180-4601-fc1a-de08-4257-8549.rev.sfr.net) (Ping timeout: 240 seconds)
09:05:18 <somerandomnick[m> d​minuoso: im looking for pragmatic solution, if it does windows encoding AND utf-8, already good enough
09:05:33 <dminuoso> somerandomnick[m: Yes. And what should make the choice how to decode?
09:06:17 <somerandomnick[m> merijin: I believe that, but a windows file can make its way to a linux system
09:07:00 <merijn> somerandomnick[m: There is no magic method to figure out the encoding of a file if you don't know it
09:07:15 <somerandomnick[m> Let me use charsetdetect then and see how far it takes me
09:07:19 <merijn> somerandomnick[m: You can try a bunch of different ones and see if you can get encoding errors or not
09:07:58 <somerandomnick[m> obviously, covering more than 2(!) different families of encoding is too tall a task
09:08:01 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:683c:8f75:84b3:cebf)
09:11:07 <merijn> somerandomnick[m: You'll have to grab one of the encoding libraries and there seems to be a charsetdetect library and then combine those two into an explicit "ByteString -> Text" decoding step
09:11:34 <merijn> I forgot what the "standard" library for non-utf encodings is
09:12:07 <geekosaur> also note you have to try utf8 first since it produces encoding errors. in most other encodings all characters are valid, so you have zero chance of telling if it's garbage/mojibake
09:12:27 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:683c:8f75:84b3:cebf) (Ping timeout: 256 seconds)
09:12:59 × mechap quits (~mechap@user/mechap) (Quit: WeeChat 3.8)
09:14:23 <Hecate> if you're not horrified enough, check how libmagic does it
09:14:37 × oo_miguel quits (~Thunderbi@77.252.47.84) (Ping timeout: 240 seconds)
09:15:20 <merijn> Hecate: I still propose we just stab anyone not producing UTF
09:15:44 <Rembane> libstab, commonly used in lenses.
09:15:52 <merijn> Hecate: And doubly stab the malfeasant at MicroSoft who came up with the UTF-8 BOM
09:15:56 <dminuoso> Rembane: I see what you did there.
09:15:59 <merijn> A pox upon that guy
09:17:06 oo_miguel joins (~Thunderbi@77.252.47.84)
09:17:08 nate2 joins (~nate@98.45.169.16)
09:17:10 <dminuoso> merijn: UTF-8 BOM is fine. If this is ever a problem, you are either using a non-unicode-compliant library, or a non-unicode-capable library.
09:17:42 <merijn> dminuoso: UTF-8 BOM wasn't even in the utf-8 spec, it's a MS stupid invention with 0 value
09:17:48 <dminuoso> The real question is rather why we have never established some shallow text format that conveys encoding information.
09:17:53 <merijn> dminuoso: Give me one good reason to *ever* have a BOM for utf-8
09:17:54 <geekosaur> isn't the byte order mark only valid in utf16 encodings?
09:18:00 <somerandomnick[m> yes I have heard calls for social ostracization of those who do not produce UTF8
09:18:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
09:18:10 <somerandomnick[m> i do not necessarily agree with that
09:18:11 <geekosaur> just like the surrogates are only valid in utf16?
09:18:17 <merijn> geekosaur: Yes, except MS invented a dumbass one for UTF-8
09:18:32 <merijn> geekosaur: And you better support it or else excel refuses to read your CSV files
09:18:38 <geekosaur> I prefer utf8 but make an exception for big5
09:18:50 <Rembane> dminuoso: ^^
09:19:04 <merijn> somerandomnick[m: I was mostly restricting myself to "not UTF" (regardless of which one)
09:19:14 <merijn> somerandomnick[m: Although, screw anyone who produces UTF-7
09:19:20 <somerandomnick[m> BTW, charsetdetect has already failed me, tells me ASCII, useless!!
09:19:24 <geekosaur> because utf8 is oversized and painful for cjk
09:19:30 <dminuoso> Something akin to Mail would have been great.
09:19:43 <dminuoso> Such that you can convey encoding and some basic meta data about some text file.
09:20:01 <merijn> dminuoso: Anyway, I notice you haven't given an argument in favour of the existence of a UTF-8 BOM :)
09:20:45 <dminuoso> merijn: https://www.unicode.org/versions/Unicode5.0.0/ch02.pdf See Table 2-4
09:20:51 <dminuoso> BOM is allowed in UTF-8.
09:21:03 <merijn> dminuoso: I didn't ask if it was allowed (that was only added after MS)
09:21:11 <merijn> dminuoso: I asked for a reason to allow it in the spec
09:21:17 <dminuoso> My opinion is irrelevant. If your library cant handle it, its non-conforming.
09:21:38 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 250 seconds)
09:21:40 <dminuoso> Dont conflate your personal objects over additions with the inability of library authors to implement unicode.
09:21:45 <dminuoso> s/objects/objections/
09:24:13 <merijn> dminuoso: My problem is that I have to deal with incompetent library authors all the time, therefore the addition of allowing it means I know have to deal with people who don't deal with it
09:25:02 <dminuoso> Honestly, if they cant even deal with BOM correctly, this will be the least of your worries when it comes to unicode correctness.
09:25:07 <dminuoso> Given how simple it is to do right.
09:25:46 <probie> Use of a BOM is neither required nor recommended for UTF-8, but may be encountered in contexts where UTF-8 data is converted from other encoding forms that use a BOM or where the BOM is used as a UTF-8 signature.
09:26:15 <somerandomnick[m> lets use decodeUtf8Lenient and silently drop invalid chars and not tell our users about it. That way, the heretics not adhering to UTF-8 will suffer greatly, not knowing what hit them
09:26:29 <geekosaur> == "Microsoft rammed their method for detecting itf8-encoded data down the unicode committee's (and everyone else's) throats
09:26:30 <dminuoso> probie: Note this expression of "use" is meant from the perspective of a program that generates UTF-8.
09:26:31 <geekosaur> "
09:26:36 <dminuoso> Not from the perspective of decoding it.
09:26:43 <ncf> hpc: your wish came true :D
09:26:49 × td_ quits (~td@i53870909.versanet.de) (Ping timeout: 265 seconds)
09:26:59 <merijn> geekosaur: Facts
09:27:03 machinedgod joins (~machinedg@93-138-40-51.adsl.net.t-com.hr)
09:27:07 <dminuoso> probie: "[..] but may be encountered in [..]"
09:27:10 <merijn> Hence, a pox upon the MS guy responsible
09:27:33 <dminuoso> probie: https://www.unicode.org/versions/Unicode5.0.0/ch16.pdf#M9.21335.Heading.133.Specials
09:27:54 <merijn> Had to spend 3 hours debugging why my girlfriend's "obviously correct" Haskell program was producing cryptic errors only to find out cassava can't handle UTF-8 BOM >.>
09:28:23 <dminuoso> `Similarly, where Unicode text has known byte order, initial U+FEFF characters are not required, but for backward compatibility are to be interpreted as zero width no-break spaces. For`
09:28:24 td_ joins (~td@i53870909.versanet.de)
09:29:26 <probie> dminuoso: I'm not expressing an opinion, just quoting the relevant part of the spec so people don't have to go looking for it
09:29:49 <dminuoso> Fair
09:30:34 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 268 seconds)
09:31:11 dibblego joins (~dibblego@122.199.1.30)
09:31:11 × dibblego quits (~dibblego@122.199.1.30) (Changing host)
09:31:11 dibblego joins (~dibblego@haskell/developer/dibblego)
09:38:16 <[exa]> (funny how MS then randomly ceases to use boms in utf16 where it is actually needed.)
09:41:14 <somerandomnick[m> readFile :: FilePath -> IO TextSource#
09:41:14 <somerandomnick[m> The readFile function reads a file and returns the contents of the file as a string. The entire file is read strictly, as with getContents.
09:41:14 <somerandomnick[m> Beware that this function (similarly to readFile) is locale-dependent. Unexpected system locale may cause your application to read corrupted data or throw runtime exceptions about "invalid argument (invalid byte sequence)" or "invalid argument (invalid character)". This is also slow, because GHC first converts an entire input to UTF-32, which is afterwards converted to UTF-8.
09:41:14 <somerandomnick[m> If your data is UTF-8, using decodeUtf8 . readFile is a much faster and safer alternative.
09:42:12 <gnalzo> they (MS) often take inconsistent decision. This is a constant :D
09:42:47 <somerandomnick[m> Data Text converts everything to utf 32 lol
09:42:55 <somerandomnick[m> readFile that is
09:43:07 <merijn> somerandomnick[m: It does not
09:43:37 × Square quits (~Square@user/square) (Ping timeout: 256 seconds)
09:44:14 <merijn> hmm, did this change in the utf-8 change? :O
09:47:07 × machinedgod quits (~machinedg@93-138-40-51.adsl.net.t-com.hr) (Ping timeout: 240 seconds)
09:48:33 <merijn> Ugh, I should not have started digging through this code
09:49:23 <somerandomnick[m> This is also slow, because GHC first converts an entire input to UTF-32, which is afterwards converted to UTF-8.
09:54:35 × chromoblob quits (~user@37.113.158.8) (Ping timeout: 246 seconds)
09:55:08 × chomwitt quits (~chomwitt@2a02:587:7a17:7500:1ac0:4dff:fedb:a3f1) (Ping timeout: 240 seconds)
09:57:52 ec_ joins (~ec@gateway/tor-sasl/ec)
09:59:10 × mheinzel quits (~mheinzel@2001:620:130:6092:762f:f9de:e627:8ca) (Ping timeout: 265 seconds)
10:00:08 × taupiqueur quits (~taupiqueu@2a02-842a-8180-4601-7103-52d8-4be8-ade6.rev.sfr.net) (Ping timeout: 265 seconds)
10:02:33 × gurkenglas quits (~user@dynamic-046-114-180-095.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
10:02:57 mheinzel joins (~mheinzel@152.96.94.73)
10:04:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
10:05:50 freeside joins (~mengwong@103.252.202.189)
10:06:52 ec_ joins (~ec@gateway/tor-sasl/ec)
10:07:16 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
10:07:57 nilradical joins (~nilradica@user/naso)
10:08:22 gurkenglas joins (~user@dynamic-046-114-180-095.46.114.pool.telefonica.de)
10:09:06 taupiqueur joins (~taupiqueu@ip-166.net-81-220-17.versailles.rev.numericable.fr)
10:10:09 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 250 seconds)
10:12:31 × cheater quits (~Username@user/cheater) (Ping timeout: 256 seconds)
10:12:45 × nilradical quits (~nilradica@user/naso) (Ping timeout: 240 seconds)
10:12:46 cheater joins (~Username@user/cheater)
10:14:56 × xff0x_ quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 250 seconds)
10:18:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
10:18:33 chromoblob joins (~user@37.113.158.8)
10:18:57 le_ka joins (~l_k@213.24.134.106)
10:20:52 ec_ joins (~ec@gateway/tor-sasl/ec)
10:22:39 nilradical joins (~nilradica@user/naso)
10:23:11 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
10:28:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
10:28:14 nilradical joins (~nilradica@user/naso)
10:28:27 × remedan quits (~remedan@ip-94-112-0-18.bb.vodafone.cz) (Ping timeout: 248 seconds)
10:29:03 ec_ joins (~ec@gateway/tor-sasl/ec)
10:33:00 × nilradical quits (~nilradica@user/naso) (Ping timeout: 265 seconds)
10:35:07 × mheinzel quits (~mheinzel@152.96.94.73) (Ping timeout: 240 seconds)
10:36:57 remedan joins (~remedan@ip-94-112-0-18.bb.vodafone.cz)
10:38:01 gensyst joins (~gensyst@user/gensyst)
10:38:44 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
10:39:20 <gensyst> I have an "MVar Int" that starts at 0 and I modify it only with modifyMVar. How can I wait for this mvar to contain 0?
10:39:37 <gensyst> other than writing a loop with threadDelay which sounds ridiculous
10:40:41 nilradical joins (~nilradica@user/naso)
10:41:20 <mauke> consider using an STRef instead
10:41:30 <mauke> or TMVar
10:42:25 <ncf> sounds like a semaphore
10:42:31 titibandit joins (~titibandi@user/titibandit)
10:42:59 <c_wraith> if you want to just wait for it to hit zero, that sounds like you want a TVar
10:43:05 <c_wraith> (not a TMVar, it's never empty)
10:43:37 <mauke> er
10:43:55 <mauke> why did I say STRef. I clearly thought TVar
10:44:07 <mauke> FINGERS! IN MY OFFICE RIGHT NOW
10:44:29 <c_wraith> like, https://hackage.haskell.org/package/stm-2.5.1.0/docs/Control-Monad-STM.html#v:check exists to make this easy to wait for
10:44:52 <ncf> https://hackage.haskell.org/package/base-4.18.0.0/docs/Control-Concurrent-QSem.html
10:44:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
10:45:21 <ncf> hm maybe not quite
10:48:35 ec_ joins (~ec@gateway/tor-sasl/ec)
10:50:07 <gensyst> What I really want is this: whenMVarIsZero :: MVar Int -> IO a -> IO a (and while that executes, the mvar should be locked, because I don't want someone to make it non-zero while that IO action is executing because that IO action is assuming the mvar is zero).
10:50:12 <gensyst> Can TVars achieve this?
10:50:19 {-d0t-} joins (~{-d0t-}@user/-d0t-/x-7915216)
10:50:31 {-d0t-} is now known as _d0t
10:51:05 <ncf> can you say more about what that MVar contains? when does it become zero?
10:51:15 <mauke> TMVars definitely can
10:51:31 ripspin joins (~chatzilla@1.145.141.6)
10:52:55 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
10:53:22 <mauke> :t atomically (do n <- takeTMVar v; check (n == 0))
10:53:23 <lambdabot> error:
10:53:23 <lambdabot> Variable not in scope: atomically :: m0 b0 -> t
10:53:23 <lambdabot> error:
10:53:27 <mauke> :-(
10:53:50 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
10:54:15 <c_wraith> man, STM seems so magical. (Until you create a thundering herd. Don't create a thundering herd.)
10:57:49 <gensyst> Is atomically STM a global thing across the entire program?
10:57:54 <gensyst> global lock
10:57:56 <gensyst> for all STMs
10:58:05 <_d0t> gensyst: no
10:58:13 <c_wraith> no, the locks are per mutable cell
10:58:28 <gensyst> ok i see
10:58:35 <mauke> atomically . (check . (0 ==) <=< takeTMVar)
10:59:10 <c_wraith> STM's big issue is when there are a lot of threads contending for a small number of cells.
10:59:11 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
10:59:34 <gensyst> mauke, and retry, if it fails, gives others a chance to modify it the TMVar (to increase or decrease that counter)
11:00:16 <gensyst> so it "opens up" momentarily to give others a chance
11:01:02 <gensyst> is it really an infinite loop under the hood?
11:01:27 <c_wraith> it tells the STM system to block until a cell that had previously been touched in the transaction is changed by a different transaction
11:01:48 <mauke> retry goes to the next orElse in the same atomically. if there is none, it puts the atomically to sleep until circumstances change
11:02:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
11:04:30 xff0x_ joins (~xff0x@ai098135.d.east.v6connect.net)
11:05:23 ec_ joins (~ec@gateway/tor-sasl/ec)
11:10:31 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:683c:8f75:84b3:cebf)
11:13:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
11:14:41 nilradical joins (~nilradica@user/naso)
11:15:01 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:683c:8f75:84b3:cebf) (Ping timeout: 240 seconds)
11:15:13 ec_ joins (~ec@gateway/tor-sasl/ec)
11:22:32 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
11:22:38 gtdg joins (~gtdg@user/gtdg)
11:23:09 × gtdg quits (~gtdg@user/gtdg) (Client Quit)
11:24:02 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
11:27:14 <gensyst> nice, thanks mates
11:29:45 <gensyst> but wait...
11:30:09 ec_ joins (~ec@gateway/tor-sasl/ec)
11:31:11 <gensyst> i wanted to lock on the mvar (in original example, now TMVar) while the IO action executes... but i can't run IO actions from within atomically?
11:32:58 <Rembane> You can run atomically within an IO action though
11:33:04 <mauke> the locked state is represented by an empty mvar
11:33:54 <mauke> you need atomically to make the mvar empty, not to keep it empty
11:33:59 mheinzel joins (~mheinzel@2001:620:130:6092:5e3e:4f50:6080:8f06)
11:34:14 <zups> Why can't i pattern match the a in here: https://pastebin.com/KQa8eFyL
11:35:43 <gensyst> mauke, did you mean to switch to mvar? (or i'm supposed to have an mvar for locking and tmvar for the counter?)
11:36:04 <geekosaur> zups, because you said `Maybe a` and then insist that you meant `Maybe Egg`
11:36:06 <mauke> gensyst: for the purposes of this discussion, read mvar as TMVar
11:36:19 <merijn> zups: Because ChickenEgg has type 'Egg' and the contents of 'Maybe a' can be *anything*
11:36:19 <geekosaur> so the compiler is holding you to what you said (any `a`, not just `Egg`)
11:36:35 <merijn> zups: Presumably you meant "instance Price a => Price (Maybe a)"
11:36:59 <mauke> zups: in line 19, what is the type of the variable 'a' intended to be?
11:37:20 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
11:38:46 <mauke> gensyst: the point is that you can do atomically (takeTMVar v) ... atomically (putTMVar v 0) with arbitrary IO code in between. you don't need atomically around the whole thing
11:38:47 <geekosaur> remember, typeclasses are open. just because the only instance it can see now is Egg, does not mean someone else will define one at a later date
11:39:00 ec_ joins (~ec@gateway/tor-sasl/ec)
11:39:08 <mauke> I feel like classes are a bit of a red herring here
11:39:26 <zups> mrijn: yeah, i think that way of defining the instance is more correct but still doesn't fix the error message mmm
11:39:40 <mauke> there is no world where 'case a of ChickenEgg -> ...; Milk amount -> ...' typechecks, regardless of whether classes are involved
11:40:08 <mauke> the two patterns have incompatible types
11:41:03 <zups> mm yeah
11:41:22 <gensyst> mauke, ok i get it now. i didn't realize earlier that EMPTY is now a possibility for the tmvar in addition to the various integers.
11:41:25 <gensyst> thanks!
11:44:31 lortabac joins (~lortabac@152.96.92.233)
11:44:37 × chromoblob quits (~user@37.113.158.8) (Ping timeout: 240 seconds)
11:47:40 <gensyst> Has stm packages practically become a "standard library"?
11:47:42 <gensyst> Like bytestring
11:49:17 <c_wraith> stm re-exports a lot of stuff from base. It has very little of its own code
11:50:07 <c_wraith> so yeah, it isn't a really fully separate thing
11:50:34 L29Ah joins (~L29Ah@wikipedia/L29Ah)
11:53:32 gtdg joins (~gtdg@user/gtdg)
11:58:47 raehik joins (~raehik@82.21.176.157)
11:59:11 <[exa]> is there anything that could make Options.Applicative commandline parsers work "reliably" on record-style argument structure definitions?
11:59:26 <[exa]> (i.e., make sure that I don't mess up the ordering of args for the structure)
11:59:55 <merijn> [exa]: hmm? mess up how?
12:00:36 <jackdk> [exa]: I assume you mean getting the Nth applicative argument to align with the Nth record field? I use `-XApplicativeDo` and `-XRecordWildCards`.
12:00:56 <[exa]> say data MyOpts = MyOpts{a::String, b::String}; and the parser becomes: MyOpts <$> strOption ... <*> strOption ...
12:01:10 <[exa]> then I need to manually keep the order of things in sync
12:01:17 <merijn> [exa]: ApplicativeDo and optionally RecordWildCards, yes
12:01:20 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
12:01:28 <merijn> [exa]: Lemme see if I have an example in my code
12:01:29 <[exa]> ah ok perfect
12:01:34 <[exa]> jackdk merijn thanks both!
12:02:44 <merijn> [exa]: https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/src/OptionParsers.hs#L483-L498
12:03:11 <merijn> That one is a bit more complicated since all my results are runnable actions, but you get the idea
12:03:16 × vglfr quits (~vglfr@cli-188-239-233-89.bbn.slav.dn.ua) (Ping timeout: 250 seconds)
12:04:02 vglfr joins (~vglfr@188.239.233.89)
12:04:09 <[exa]> but wait if someone switches there the "pure allowNewer" and "pure filterFlag" (I assume both are Bools), it doesn't fail, right?
12:05:03 <merijn> [exa]: hmm, I guess that only handles the case of the Parser not the underlying SqlM :p
12:05:09 ec_ joins (~ec@gateway/tor-sasl/ec)
12:05:11 <[exa]> ah no I can then do MyOpts{..} and it will work, yeah
12:05:18 <merijn> [exa]: Yeah, exactly
12:05:25 <[exa]> great, it clicked :D
12:05:27 <[exa]> thanks a lot!
12:06:02 <merijn> [exa]: ApplicativeDo rules can be a bit finnicky, but for trivial cases of just "pure MyOpts{..}" it should just always work
12:10:18 <[exa]> well lemme tease it a bit with `emptyFilledOpts{..}` and see how it fails :D
12:10:49 <[exa]> error: You cannot use `..' in a record update
12:10:52 <[exa]> ,_,
12:16:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
12:19:46 <gensyst> can async exceptions also be thrown at waiting TMVars (whether take or put) inside a mask?
12:19:55 <gensyst> (just like for mvars)
12:19:58 ec_ joins (~ec@gateway/tor-sasl/ec)
12:24:45 freeside joins (~mengwong@103.252.202.189)
12:24:54 <gensyst> yeah sort of looks like it: https://hackage.haskell.org/package/base-4.9.1.0/docs/Control-Exception.html#g:13
12:26:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
12:29:08 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
12:30:11 <somerandomnick[m> hey, update, fmap decodeUtf8Lenient . B.readFile together with alexSkip '\xFFFD' = True (for good measure) is good enough for a lexer to eat all kinds of real world files
12:30:49 ec_ joins (~ec@gateway/tor-sasl/ec)
12:30:49 <somerandomnick[m> it is also more efficient then a naive T.readFile from Data.Text
12:36:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
12:38:38 ec_ joins (~ec@gateway/tor-sasl/ec)
12:41:31 × nilradical quits (~nilradica@user/naso) ()
12:42:47 Pickchea joins (~private@user/pickchea)
12:45:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
12:46:16 × gensyst quits (~gensyst@user/gensyst) (Quit: Leaving)
12:49:18 ec_ joins (~ec@gateway/tor-sasl/ec)
12:50:25 <JensPetersen[m]> Cool, hackage creates dependency links to non-existent hackages, hehe
12:51:07 × ec_ quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
12:52:14 × lortabac quits (~lortabac@152.96.92.233) (Ping timeout: 265 seconds)
12:53:09 ec_ joins (~ec@gateway/tor-sasl/ec)
12:56:20 tomsmeding wonders how many hackages exist, and don't exist
12:57:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
12:58:18 enoq joins (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
12:58:27 lortabac joins (~lortabac@2001:620:130:6092:99f0:67aa:f3b5:79c)
12:58:54 ec_ joins (~ec@gateway/tor-sasl/ec)
12:59:05 ddellacosta joins (~ddellacos@146.70.165.139)
12:59:18 <JensPetersen[m]> Was there any general announcement about crypton yet?
12:59:24 <JensPetersen[m]> It would be helpful...
13:00:08 × mheinzel quits (~mheinzel@2001:620:130:6092:5e3e:4f50:6080:8f06) (Ping timeout: 240 seconds)
13:00:14 jero98772 joins (~jero98772@2800:484:1d7f:5d36::1)
13:01:00 <geekosaur> https://discourse.haskell.org/t/a-new-future-for-cryptography-in-haskell/3888 ?
13:01:05 <probie> announcement by who, and on what platform?
13:01:20 <geekosaur> oh, no, that's more general
13:01:28 <geekosaur> and possibly in response to this mess
13:02:21 <probie> I think it's separate and unrelated to this mess
13:02:48 <Rembane> What's the mess?
13:03:51 <geekosaur> crypton was forked from cryptonite, is not source compatible, some key packages switched to it => things like wai are suddenly broken
13:04:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
13:04:24 <geekosaur> because some of ther deps now want crypton and others want cryptonite
13:04:33 mheinzel joins (~mheinzel@152.96.94.73)
13:04:42 <Rembane> Oh, that sounds messy.
13:05:02 <somerandomnick[m> Once you get a cryptographer that also knows haskell, you can have pure haskell crypto primitives. Until then I will prefer my own bindings to libsodium. Cheers
13:05:21 <geekosaur> that's the topic of the discourse I posted
13:05:30 <geekosaur> HF is stepping in to resolve that situation
13:06:07 <probie> Isn't crypton(ite) largely written in C with bits of inline assembly for the actual crypto bits?
13:06:09 <geekosaur> because while cryptonite (and now crypton) are widely used, others distrust it/them because nobody has audited them
13:06:47 mmhat joins (~mmh@p200300f1c727020cee086bfffe095315.dip0.t-ipconnect.de)
13:07:19 ec_ joins (~ec@gateway/tor-sasl/ec)
13:07:20 <geekosaur> so yeh, we need a proper cryptography solution
13:07:40 <probie> (to clarify, my comment about crypton(ite) being mostly written in C isn't saying that you should trust it, merely that anyone auditing it probably wouldn't need to know Haskell)
13:08:00 <geekosaur> heck, we need just an https protocol solution, last I checked things still had to shell out to curl
13:08:25 <geekosaur> (libcurl is apparently a nightmare, including that the api changes a lot)
13:10:00 <kuribas> geekosaur: could this be useful? https://github.com/hacl-star/hacl-star
13:10:06 <geekosaur> also a number of us are not confident about pure haskell crypto primitives, because you don't have the control over side channel timing attacks that C at least tries to give you
13:10:33 <geekosaur> (until intel shoots you in the kneecaps with timings that violate their own documentation)
13:11:03 <geekosaur> kuribas, I'm not the one who needs to be told about that…
13:11:34 <geekosaur> (I'm not writing webby stuff, I just know these things have come up a lot)
13:12:17 <probie> Personally I don't think crypto stuff should be written in C. I'm terrified that a modern compiler will be a bit too helpful
13:12:53 <geekosaur> sadly that is true of every other language as well
13:13:25 <geekosaur> I think C/Rust/whatever compilers need a special "guaranteed timing" optimization mode for cryptography code
13:13:50 <probie> well, maybe not "not written in C", but rather that compilers for crypto algorithms should be separate from those for general purpose programming language (but if you're going to have a separate compiler, you may as well have a dedicated language)
13:13:52 <geekosaur> (even asm is suspect)
13:15:19 <probie> that way you're free to also add things that most general purpose compilers wouldn't consider, like "different codegen for different CPUs with the same architecture"
13:15:35 <Axman6> somerandomnick[m: I would recommend these libsodium bindings, a lot of work has gone into the: https://haskell-cryptography.org/projects/
13:15:50 cfricke_ joins (~cfricke@user/cfricke)
13:18:22 <dminuoso> probie: There's a bunch of projects looking specifying mathematical models and extracting programs out of them.
13:18:29 nate2 joins (~nate@98.45.169.16)
13:18:37 <dminuoso> See fiat-crypto, verse-coq or even cryptol
13:18:44 <dminuoso> Problem is their performance is utterly poor.
13:18:59 × titibandit quits (~titibandi@user/titibandit) (Ping timeout: 246 seconds)
13:19:30 <dminuoso> The advantage that C language has, is that there's a lot more implementors well versed in both cryptographic and how to avoid certain optimizations.
13:19:53 <dminuoso> So that gives you more people that *can* get involved, which given the problem domain already is very few people.
13:20:59 <dminuoso> Cryptographic libraries sometimes have critical sections written in handrolled assembler, or tightly controlling optimizations, and then this stuff gets tuned between compiler releases
13:21:30 <dminuoso> In GHC you could at least write critical sections in primops
13:21:45 <jean-paul[m]> "Slow" or "wrong", such lovely options we have
13:22:32 <dminuoso> jean-paul[m]: to be fair, even fiat-crypto/verse-coq isnt provably correct. It's only provably correct up to the properties that the primitives have.
13:22:51 <dminuoso> Unknown future side-channels are pretty much unavoidable.
13:22:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
13:23:04 <jean-paul[m]> "Slow and maybe wrong" or "wrong", even better :)
13:23:07 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
13:23:56 <jean-paul[m]> We need formal models of every part of the system - including the hardware and the compiler
13:24:13 <jean-paul[m]> maybe in another fifty years
13:24:19 <dminuoso> jean-paul[m]: A bigger problem is that of the CPU.
13:24:41 <dminuoso> When not even AES instructions leak information
13:24:45 <dminuoso> s/not//
13:25:04 <jean-paul[m]> Yea. I was including the CPU in "hardware". What kind of CPU do you have? ;)
13:25:13 <dminuoso> You are staring at a gigantic, undebuggable and undecipherable microcode machine nobody outside Intel/AMD knows how it functions
13:25:59 <dminuoso> Im just saying that "in another fifty years" is not reasonable, why would <future CPU vendor in 50 years> have any interest in sharing intellectual property?
13:26:01 ec_ joins (~ec@gateway/tor-sasl/ec)
13:26:03 <geekosaur> and of course the internals are trade secret so you'll never get a reliable model
13:26:58 <jean-paul[m]> One reason for them to give that away could be "it is possible for software on our CPU to be secure" I suppose?
13:27:05 geekosaur wonders if crypto coprocessors will become a thing
13:27:15 <jean-paul[m]> I dunno. I only said "maybe in 50 years" :)
13:27:23 <geekosaur> well, they already are, given TPM
13:28:32 × vandita quits (~vandit@92-249-182-124.pool.digikabel.hu) (Ping timeout: 248 seconds)
13:30:27 <JensPetersen[m]> Why is cabal haddock failing in GH CI? hm 😢
13:30:32 vandita joins (~vandit@94-21-82-204.pool.digikabel.hu)
13:30:37 <Axman6> Risc-c is proabbly the best chance to get those sort of properties dminuoso.
13:30:49 <Axman6> V*
13:31:56 <Axman6> the team that worked on seL4 are very keen to make sure many of the mistakes of the past which lead to side channels are avoided where possible
13:32:28 <Axman6> and have been opart of the risc-v foundation, or whatever it's called, for a long time now
13:34:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
13:34:17 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
13:35:04 ec_ joins (~ec@gateway/tor-sasl/ec)
13:37:00 × vglfr quits (~vglfr@188.239.233.89) (Remote host closed the connection)
13:38:09 <merijn> dminuoso: Hey, the majority within intel doesn't know how their microcode machine works either :p
13:38:17 <merijn> I'm not sure anyone *really* does
13:38:52 <merijn> Also, clearly we should be implementing the Haskell crypto ecosystem in Ivory ;)
13:40:08 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
13:41:48 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
13:41:48 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
13:41:48 wroathe joins (~wroathe@user/wroathe)
13:42:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
13:43:03 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
13:43:58 ec_ joins (~ec@gateway/tor-sasl/ec)
13:44:13 <kuribas> probie: compCert?
13:45:49 × phma quits (phma@2001:5b0:2143:8e68:4a0a:5813:1bab:50e7) (Read error: Connection reset by peer)
13:46:30 phma joins (~phma@host-67-44-208-203.hnremote.net)
13:48:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
13:48:48 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 248 seconds)
13:50:57 ec_ joins (~ec@gateway/tor-sasl/ec)
13:53:49 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
13:54:39 shriekingnoise joins (~shrieking@186.137.175.87)
13:56:58 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 265 seconds)
13:57:15 tomsmeding is confused how the Ivory website explains that it's an eDSL in Haskell, but then under Reference gives the "syntax" of the language
13:57:26 <tomsmeding> like, is it embedded or isn't it
14:03:38 mc47 joins (~mc47@xmonad/TheMC47)
14:04:43 × ystael quits (~ystael@user/ystael) (Quit: Lost terminal)
14:06:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
14:07:36 × mheinzel quits (~mheinzel@152.96.94.73) (Ping timeout: 265 seconds)
14:08:43 ec_ joins (~ec@gateway/tor-sasl/ec)
14:09:03 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
14:12:14 chromoblob joins (~user@37.113.158.8)
14:14:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
14:14:23 <byorgey> tomsmeding: could make sense if the purpose is to make it usable by people who don't already know Haskell
14:16:47 mheinzel joins (~mheinzel@152.96.94.73)
14:16:57 × ripspin quits (~chatzilla@1.145.141.6) (Remote host closed the connection)
14:19:57 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-9c6d-a82c-d0c8-a0dc.rev.sfr.net)
14:20:16 raym joins (~ray@user/raym)
14:20:25 machinedgod joins (~machinedg@93-138-40-51.adsl.net.t-com.hr)
14:21:11 × taupiqueur quits (~taupiqueu@ip-166.net-81-220-17.versailles.rev.numericable.fr) (Quit: WeeChat 3.8)
14:21:23 ec_ joins (~ec@gateway/tor-sasl/ec)
14:22:29 Sgeo joins (~Sgeo@user/sgeo)
14:22:40 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
14:23:23 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-9c6d-a82c-d0c8-a0dc.rev.sfr.net) (Remote host closed the connection)
14:24:21 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
14:24:49 econo joins (uid147250@user/econo)
14:25:28 Sgeo joins (~Sgeo@user/sgeo)
14:25:53 chomwitt joins (~chomwitt@94.69.70.96)
14:26:32 thegeekinside joins (~thegeekin@189.217.90.138)
14:29:08 × irfan quits (~irfan@user/irfan) (Ping timeout: 240 seconds)
14:30:10 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 250 seconds)
14:31:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
14:35:12 ec_ joins (~ec@gateway/tor-sasl/ec)
14:36:15 × le_ka quits (~l_k@213.24.134.106) (Read error: Connection reset by peer)
14:36:27 le_ka joins (~l_k@213.24.134.106)
14:38:41 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
14:40:32 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
14:40:53 freeside joins (~mengwong@103.252.202.189)
14:46:08 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
14:47:52 ystael joins (~ystael@user/ystael)
14:48:29 × le_ka quits (~l_k@213.24.134.106) (Ping timeout: 256 seconds)
14:49:46 mechap joins (~mechap@user/mechap)
14:50:56 titibandit joins (~titibandi@user/titibandit)
14:50:58 <gurkenglas> New monad tutorial just dropped. Picture a small monk as I say this.
14:51:49 <gurkenglas> "Do not try and get a value out of your IO Cutlery. That's impossible. Instead, only try to realize the truth: There is no spoon."
14:51:50 Inst_ joins (~Inst@c-98-208-218-119.hsd1.fl.comcast.net)
14:52:16 × Inst quits (~Inst@2601:6c4:4081:2fc0:f10d:fbfc:9509:13bb) (Ping timeout: 250 seconds)
14:52:52 <Rembane> "I need guns. Lots of guns."
14:53:20 × ubert quits (~Thunderbi@2a02:8109:abc0:6434:734b:c6e7:ee63:2f95) (Quit: ubert)
14:53:28 <probie> s/gun/(>>=)/
14:54:06 × Inst_ quits (~Inst@c-98-208-218-119.hsd1.fl.comcast.net) (Read error: Connection reset by peer)
14:54:28 Inst_ joins (~Inst@2601:6c4:4081:2fc0:ed66:a694:f2c2:7aeb)
14:54:33 × enoq quits (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
14:55:24 × tom__ quits (~tom@host81-151-255-71.range81-151.btcentralplus.com) (Read error: Connection reset by peer)
15:06:39 × titibandit quits (~titibandi@user/titibandit) (Ping timeout: 268 seconds)
15:07:57 titibandit joins (~titibandi@user/titibandit)
15:09:10 <EvanR> One cannot simply be told what A Monad is
15:09:35 × lortabac quits (~lortabac@2001:620:130:6092:99f0:67aa:f3b5:79c) (Ping timeout: 246 seconds)
15:09:51 <_d0t> it's a monoid in the category of endofunctors lol
15:10:23 <_d0t> on a related note, it's a shame that join isn't a member of Monad in Haskell
15:12:11 <chromoblob> i agree
15:13:40 <_d0t> mostly because this would make the definition true in case of haskell
15:13:59 <_d0t> or well, rather more relevant
15:14:39 <jade[m]> what's a monad where defining join specially would have performance benefits
15:14:48 <jade[m]> or rather when is `>>= id` "bad"?
15:15:11 <_d0t> there are some monads where join is easier to define than >>=
15:15:25 <jade[m]> that's fair enough
15:15:52 <jade[m]> though you might just do that and then `(>>=) = join . fmap`
15:15:53 lortabac joins (~lortabac@2001:620:130:6092:2b9e:4750:fde0:6faa)
15:16:01 <jade[m]> * = join' .
15:16:27 <_d0t> yes. Although this would require Functor to be the superclass for Monad, which wasn't always the case.
15:16:31 × acidjnk quits (~acidjnk@p200300d6e7072f01d1c821db9a6d9801.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
15:17:22 <jade[m]> but then join alone is not sufficient for a monad, right?
15:17:24 <EvanR> even if it's not, in your specific instance you can require Functor
15:17:58 <_d0t> jade[m]: you need join and return
15:18:03 acidjnk joins (~acidjnk@p200300d6e7072f019dd2aa00216a5b17.dip0.t-ipconnect.de)
15:18:19 <_d0t> and you can use liftM instead of fmap
15:18:24 <_d0t> i always forget it exists lol
15:18:25 <EvanR> since Monad requires Applicative now, you have return
15:18:32 <EvanR> one way or another
15:18:33 <jade[m]> _d0t: that feels like not enough?
15:18:45 <jade[m]> because how would you define `>>=` without `fmap`?
15:18:55 <_d0t> jade[m]: nah, that's enough. Disregard my words about the superclass.
15:19:39 × machinedgod quits (~machinedg@93-138-40-51.adsl.net.t-com.hr) (Ping timeout: 265 seconds)
15:19:46 <jade[m]> but `liftM` is defined in terms of `>>=`
15:20:13 <jade[m]> if the definitions via `>>=` and `join` would be identical you would be able to define each in terms of the other, right?
15:20:24 <jade[m]> How do you define `>>=` in terms of `join`?
15:20:32 <_d0t> you can define liftM in terms of join and return
15:20:36 <jade[m]> without fmap
15:20:49 <jade[m]> _d0t: can you show how please
15:20:57 <_d0t> jade[m]: hmm.. lemme fire up the repl
15:21:40 <jade[m]> not trying to be cocky, but I'm pretty sure join by itself is not enough
15:21:47 <jade[m]> because `>>=` is a generalization of it
15:24:41 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
15:25:39 <_d0t> dammit! Seems that you need fmap after all.
15:26:11 <jade[m]> yep
15:31:42 × jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 265 seconds)
15:31:44 × titibandit quits (~titibandi@user/titibandit) (Ping timeout: 265 seconds)
15:33:55 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
15:36:20 shapr joins (~user@2600:1700:c640:3100:e1bf:464f:6761:f460)
15:37:13 le_ka joins (~l_k@213.24.134.106)
15:38:28 × le_ka quits (~l_k@213.24.134.106) (Client Quit)
15:38:33 × gtdg quits (~gtdg@user/gtdg) (Ping timeout: 245 seconds)
15:40:50 × lortabac quits (~lortabac@2001:620:130:6092:2b9e:4750:fde0:6faa) (Quit: WeeChat 2.8)
15:43:27 jero98772 joins (~jero98772@2800:484:1d7f:5d36::1)
15:43:57 × zeenk quits (~zeenk@2a02:2f04:a106:3c00::fba) (Quit: Konversation terminated!)
15:45:38 × mheinzel quits (~mheinzel@152.96.94.73) (Ping timeout: 246 seconds)
15:45:38 × merijn quits (~merijn@c-001-001-004.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
15:49:41 freeside joins (~mengwong@103.252.202.189)
15:53:27 × dcoutts quits (~duncan@2001:620:130:6092:8b6f:ee09:26cb:f12f) (Ping timeout: 265 seconds)
15:54:05 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
15:54:40 captnemo joins (~captnemo@193.32.127.239)
16:02:37 dhil joins (~dhil@78.45.150.83.ewm.ftth.as8758.net)
16:03:05 mheinzel joins (~mheinzel@2001:620:130:6092:da44:6da6:feaf:b10d)
16:04:03 thegeekinside joins (~thegeekin@189.217.90.138)
16:05:28 × vandita quits (~vandit@94-21-82-204.pool.digikabel.hu) (Ping timeout: 240 seconds)
16:07:32 vandita joins (~vandit@77-234-80-221.pool.digikabel.hu)
16:13:28 × raym quits (~ray@user/raym) (Remote host closed the connection)
16:15:41 × mheinzel quits (~mheinzel@2001:620:130:6092:da44:6da6:feaf:b10d) (Quit: Leaving)
16:16:51 zeenk joins (~zeenk@2a02:2f04:a106:3c00::fba)
16:19:29 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1))
16:20:24 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
16:25:58 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
16:28:11 × zeenk quits (~zeenk@2a02:2f04:a106:3c00::fba) (Quit: Konversation terminated!)
16:29:45 × chromoblob quits (~user@37.113.158.8) (Ping timeout: 240 seconds)
16:32:04 × cfricke_ quits (~cfricke@user/cfricke) (Quit: WeeChat 3.8)
16:32:16 chromoblob joins (~user@37.113.180.121)
16:32:37 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 240 seconds)
16:33:43 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
16:36:34 taupiqueur joins (~taupiqueu@2a02-842a-8180-4601-e0d8-6a6a-01a7-3f26.rev.sfr.net)
16:36:46 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
16:37:52 ripspin joins (~chatzilla@1.145.186.238)
16:41:01 × raehik quits (~raehik@82.21.176.157) (Ping timeout: 250 seconds)
16:41:27 × jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 250 seconds)
16:43:16 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
16:47:31 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:51:01 freeside joins (~mengwong@103.252.202.189)
16:51:55 × mbuf quits (~Shakthi@49.207.178.186) (Quit: Leaving)
16:53:46 jero98772 joins (~jero98772@2800:484:1d7f:5d36::1)
16:55:25 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 256 seconds)
16:58:44 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
17:00:43 jmd_ joins (~jmdaemon@user/jmdaemon)
17:14:13 wootehfoot joins (~wootehfoo@user/wootehfoot)
17:14:16 Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
17:20:00 nate2 joins (~nate@98.45.169.16)
17:24:25 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
17:29:58 elain4 joins (~textual@static-71-251-226-194.rcmdva.fios.verizon.net)
17:31:31 <__monty__> tomsmeding: I think that C-like syntax is to be used with the Ivory QuasiQuoters.
17:32:17 santiagopim joins (~user@90.167.66.131)
17:33:38 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-e0d8-6a6a-01a7-3f26.rev.sfr.net)
17:35:23 × ripspin quits (~chatzilla@1.145.186.238) (Remote host closed the connection)
17:37:20 gmg joins (~user@user/gehmehgeh)
17:40:17 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-e0d8-6a6a-01a7-3f26.rev.sfr.net) (Remote host closed the connection)
17:43:32 Pickchea joins (~private@user/pickchea)
17:49:53 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
17:51:13 × jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 250 seconds)
17:54:41 solaire joins (~solaire@024-158-119-196.res.spectrum.com)
17:57:46 × NinjaTrappeur quits (~ninja@user/ninjatrappeur) (Quit: WeeChat 3.8)
17:58:43 NinjaTrappeur joins (~ninja@user/ninjatrappeur)
17:59:02 × captnemo quits (~captnemo@193.32.127.239) (Quit: WeeChat 3.8)
18:02:07 × vandita quits (~vandit@77-234-80-221.pool.digikabel.hu) (Ping timeout: 240 seconds)
18:03:16 jero98772 joins (~jero98772@2800:484:1d7f:5d36::1)
18:03:47 vandita joins (~vandit@92-249-182-124.pool.digikabel.hu)
18:09:04 × fendor quits (~fendor@2a02:8388:1640:be00:7aca:a77a:4a28:631a) (Remote host closed the connection)
18:09:47 michalz joins (~michalz@185.246.207.203)
18:10:49 hamzam3 joins (~hamzam3@2a02:2788:409:ffb7:fb93:f583:d621:f33e)
18:11:09 <hamzam3> Hello, does anyone know about lambda-circle calculus ?
18:11:33 <hamzam3> I found on a document speaking about staged programming
18:11:34 <hamzam3> https://okmij.org/ftp/meta-programming/implementations.html
18:11:49 <hamzam3> He tied it to MetaOCaml
18:13:55 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:683c:8f75:84b3:cebf)
18:14:26 <ncf> seems like this is the one https://dl.acm.org/doi/10.1145/3011069
18:14:45 <ncf> λ°-calculus
18:18:03 lortabac joins (~lortabac@46-253-188-2.dynamic.monzoon.net)
18:18:25 × solaire quits (~solaire@024-158-119-196.res.spectrum.com) (Ping timeout: 240 seconds)
18:21:41 <hamzam3> How did you know ??
18:22:33 titibandit joins (~titibandi@user/titibandit)
18:23:15 <ncf> google
18:23:17 <tomsmeding> __monty__: ah!
18:23:37 L29Ah joins (~L29Ah@wikipedia/L29Ah)
18:23:51 <ncf> (...led me to http://lambda-the-ultimate.org/node/5507, which has the link)
18:25:08 <hamzam3> what did you type in the search bar ?
18:25:08 × lortabac quits (~lortabac@46-253-188-2.dynamic.monzoon.net) (Ping timeout: 240 seconds)
18:25:42 × shailangsa_ quits (~shailangs@host86-186-133-102.range86-186.btcentralplus.com) (Remote host closed the connection)
18:26:47 solaire joins (~solaire@24.158.119.196)
18:26:51 <ncf> "lambda-circle calculus", with the quotes
18:28:36 × chele quits (~chele@user/chele) (Remote host closed the connection)
18:28:36 <hamzam3> Magnificent thank you !
18:28:42 × hamzam3 quits (~hamzam3@2a02:2788:409:ffb7:fb93:f583:d621:f33e) (Quit: Leaving)
18:31:26 lortabac joins (~lortabac@46-253-188-2.dynamic.monzoon.net)
18:51:02 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
18:54:32 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
18:55:39 johnw_ joins (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net)
18:57:07 × johnw quits (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Ping timeout: 265 seconds)
19:01:47 × jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 256 seconds)
19:05:19 × solaire quits (~solaire@24.158.119.196) (Ping timeout: 250 seconds)
19:08:32 shailangsa joins (~shailangs@86.186.133.102)
19:08:51 thegeekinside joins (~thegeekin@189.217.90.138)
19:12:23 <Athas> So how do you use haskell-mode these days? C-c c-l in a Haskell file just gets me "haskell-session-current-dir: No current directory".
19:13:15 jero98772 joins (~jero98772@2800:484:1d7f:5d36::1)
19:16:04 <Athas> Oh wait, now something seems to be working.
19:22:55 oac_ joins (~oac@72.50.214.210)
19:26:41 × oac_ quits (~oac@72.50.214.210) (Client Quit)
19:27:03 oac joins (~oac@72-50-214-210.fttp.usinternet.com)
19:27:16 <Hecate> \o/
19:27:48 × jrm quits (~jrm@user/jrm) (Quit: ciao)
19:28:43 × reverse quits (~inversed@bcdcac82.skybroadband.com) (Ping timeout: 250 seconds)
19:29:07 jrm joins (~jrm@user/jrm)
19:29:08 zeenk joins (~zeenk@2a02:2f04:a106:3c00::fba)
19:30:11 __monty__ joins (~toonn@user/toonn)
19:33:54 solaire joins (~solaire@172.102.12.74)
19:34:06 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
19:36:43 × jrm quits (~jrm@user/jrm) (Quit: ciao)
19:36:47 × gurkenglas quits (~user@dynamic-046-114-180-095.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
19:38:03 jrm joins (~jrm@user/jrm)
19:38:27 reverse joins (~inversed@188.220.172.130)
19:39:57 user____3 joins (~user@dynamic-046-114-180-095.46.114.pool.telefonica.de)
19:40:08 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:683c:8f75:84b3:cebf) (Remote host closed the connection)
19:47:33 Square joins (~Square@user/square)
19:51:36 × user____3 quits (~user@dynamic-046-114-180-095.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
19:52:13 × jmd_ quits (~jmdaemon@user/jmdaemon) (Ping timeout: 256 seconds)
19:56:24 × elain4 quits (~textual@static-71-251-226-194.rcmdva.fios.verizon.net) (Quit: Textual IRC Client: www.textualapp.com)
20:00:00 × euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 248 seconds)
20:01:38 <chromoblob> what's the etymology of backslash in place of the letter lambda?
20:02:09 <dolio> Backslash looks like a lambda.
20:02:16 <jade[m]> I would assume that it's the closest character to a lambda on a normal keyboard
20:02:53 <chromoblob> is it just that
20:03:08 cheater_ joins (~Username@user/cheater)
20:03:50 × lortabac quits (~lortabac@46-253-188-2.dynamic.monzoon.net) (Quit: WeeChat 2.8)
20:05:59 × cheater quits (~Username@user/cheater) (Ping timeout: 250 seconds)
20:06:03 cheater_ is now known as cheater
20:06:18 <ncf> human evolution meme but it's ^ → λ → \
20:06:50 <ncf> (i think the original lambda notation used ^'s, but don't quote me on that)
20:07:06 <dolio> Yeah.
20:07:46 <dolio> Carets above the variables being bound.
20:08:07 <Hecate> yep
20:08:55 pavonia joins (~user@user/siracusa)
20:11:29 × vandita quits (~vandit@92-249-182-124.pool.digikabel.hu) (Ping timeout: 256 seconds)
20:11:37 × jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 250 seconds)
20:13:13 cafkafk joins (~cafkafk@fsf/member/cafkafk)
20:13:42 vandita joins (~vandit@87.97.2.253)
20:14:17 <ncf> this... is not my proudest use of GIMP https://f.monade.li/lambda_evolution.png
20:15:24 <EvanR> lol
20:15:50 <Rembane> Legendary!
20:16:08 <EvanR> at some point haskell used a literal lambda?
20:17:06 <ncf> i mean, mathematicians used literal lambdas before haskell was a thing, but you can turn on UnicodeSyntax
20:18:18 <EvanR> i mean for the lambda form in haskell code
20:18:27 <Helle> I know a mathematician that writes that sort of code
20:18:30 <Square> Not sure I get the joke. Can someone explain?
20:19:06 <EvanR> i thought the account earlier was that haskell first used ^ for lambda
20:20:03 <EvanR> or was it the phoenicians
20:20:36 <ncf> i actually have no idea if λ evolved from ^ or if ^ evolved from λ
20:20:59 <ncf> or neither
20:21:08 <_d0t> wait.. i just tried something and it seems that UnicodeSyntax doesn't include λ
20:21:12 <_d0t> am I missing something here?
20:21:46 <EvanR> variables can be λ without anything special
20:21:57 <_d0t> No, I mean for anonymous functions.
20:22:18 <ncf> apparently you can't use λ for functions :( https://gitlab.haskell.org/ghc/ghc/-/issues/1102
20:22:25 <_d0t> map (λa b -> a + b) xs
20:22:27 <_d0t> like this
20:22:51 <EvanR> for maximum lambda, λλ -> λ λ λ
20:22:56 <_d0t> >16 years ago
20:22:58 <_d0t> dammit :(
20:23:08 elain4 joins (~textual@static-71-251-226-194.rcmdva.fios.verizon.net)
20:23:27 × trev quits (~trev@user/trev) (Quit: trev)
20:23:32 <EvanR> I heard "all you need is lambda" but this is getting ridiculous
20:23:34 jero98772 joins (~jero98772@2800:484:1d7f:5d36::1)
20:24:00 <[Leary]> % :t (\λ x → x)()
20:24:00 <yahb2> (\λ x → x)() :: p -> p
20:24:18 <[Leary]> "you just need to escape the lambda and call the function" >:)
20:24:38 user____3 joins (~user@dynamic-046-114-180-095.46.114.pool.telefonica.de)
20:24:42 <_d0t> hmmm...
20:24:48 <EvanR> oh, obviously. Because lambda is a function, after all
20:24:51 _d0t thinking about throwing a ghc plugin
20:26:30 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
20:26:50 <dolio> Bertrand Russell used ^ for variable binding. Then Church used λ.
20:26:52 <mauke> I don't understand the desire to use λ instead of \
20:26:53 <ncf> just upgrade to agda
20:27:23 × mmhat quits (~mmh@p200300f1c727020cee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.8)
20:27:27 <_d0t> nah.. agda-input in emacs works with haskell too
20:28:00 <mauke> it's like seeing someone trying to make a ghc extension so they can use t in place of +
20:28:14 <dolio> Then Miranda used \ because it's on an actual keyboard.
20:28:21 <probie> mauke: If I'm going to read something as λ, it may as well actually be λ.
20:28:52 <EvanR> actual λ
20:29:42 <mauke> why would you read \ as l
20:30:05 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
20:30:40 <mauke> "oh yeah, I read 1 + 2 as 'one tee two', so I'd really prefer to write it as 1 t 2"
20:30:41 <EvanR> someone just mentioned a student of theirs who spells his name +ison
20:30:52 <_d0t> Look, if Scheme allows using λ in place of lambda (the word), why Haskell cannot?
20:30:57 <_d0t> http://community.schemewiki.org/?syntax-unicode-lambda
20:31:15 <mauke> because Haskell has sensible syntax
20:31:23 <_d0t> so does scheme
20:31:40 <mauke> debatable
20:31:44 <mauke> also, that's just a macro
20:31:51 <_d0t> who cares? It works.
20:32:03 <probie> It's not like I read a and α the same. Why would I read l and λ the same?
20:32:13 <EvanR> _d0t, so make a macro! (TH) xD
20:32:46 <_d0t> EvanR: TH is quite limited in what it can do. So are GHC plugins, it seems. They have no access to the parser :(
20:32:57 <EvanR> quasi quotation can do a lot
20:33:06 <mauke> it works in scheme because people don't try to write (lambdax y -> x+y) in scheme
20:33:07 <probie> You can hook in arbitrary source pre-processors into GHC
20:33:09 <_d0t> QQ can't affect code outside of QQ
20:33:21 <EvanR> neither can lambda?
20:33:31 <_d0t> probie: how?
20:33:37 <_d0t> do you mean CPP?
20:34:08 × solaire quits (~solaire@172.102.12.74) (Ping timeout: 240 seconds)
20:34:10 × chomwitt quits (~chomwitt@94.69.70.96) (Remote host closed the connection)
20:34:23 <dolio> Actually, maybe Miranda didn't have function literals.
20:34:54 <probie> No, I mean something like `{-# OPTIONS_GHC -pgmF someExecutable #-}`
20:35:11 solaire joins (~solaire@024-158-119-196.res.spectrum.com)
20:35:19 <_d0t> probie: hmmmm.. i might just check it out. Thanks!
20:35:33 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
20:36:44 <EvanR> \/ was an operator in miranda
20:37:03 <mauke> logical or?
20:37:10 <dolio> That's or, yeah.
20:37:45 <dolio> \/ and &
20:38:09 <EvanR> awkward
20:38:56 <mauke> should've used /\ for consistency
20:39:49 <probie> mauke: to clarify, I'm happy with `λ x -> ` but _not_ `λx -> `. Like how `fun` is used in ocaml/standardml
20:40:38 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:683c:8f75:84b3:cebf)
20:41:02 ss4 joins (~wootehfoo@user/wootehfoot)
20:42:40 × dhil quits (~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 248 seconds)
20:42:43 <tomsmeding> https://play.haskell.org/saved/wSp0kRJG
20:43:06 <probie> But in what sounds ambiguous, whilst it's a change I'd like, it's not a change I'd support (not even as a language extension)
20:43:37 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 240 seconds)
20:43:53 <EvanR> nice tomsmeding
20:44:28 <EvanR> probie, "I like it, but I'll argue against it to the death"
20:44:51 <mauke> to me that sounds like "I only want 'x t y' to work, not 'xty'"
20:44:56 <tomsmeding> see ma, using Enum Double _and_ Enum Bool in the same expression!
20:45:19 <probie> mauke: I only want "case x of" to work instead of "casexof"?
20:45:23 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:683c:8f75:84b3:cebf) (Ping timeout: 265 seconds)
20:45:55 <mauke> no, that's different
20:46:16 <mauke> there is no existing/different punctuation syntax for case expressions
20:46:40 <mauke> but there is an existing and consistent syntax for addition, x + y
20:47:12 <mauke> (consistent in that + works like other operators made of punctuation)
20:48:17 <probie> > let (\\) = (+) in 3 \\ 5
20:48:18 <lambdabot> 8
20:48:28 <jade[m]> ew
20:48:48 <probie> That single `\` for lambda is already a weird case, regardless of it's a symbol or not.
20:49:09 <mauke> I disagree with this characterization
20:49:13 <mauke> it's not "for lambda"
20:49:34 <mauke> just like the + in x + y is not a stand-in for t
20:49:53 <mauke> (or tau or whatever)
20:50:44 <EvanR> confirmed \ is use for lambda because it looks vaguely remotely similar to λ
20:50:48 <dolio> \ is clearly a reference to λ, and + is not a reference to τ, because no one uses τ to denote addition.
20:51:26 <mauke> I learned Haskell before lambda calculus, so to me λ is a reference to \
20:51:54 <EvanR> acausality is not off the table in haskell
20:52:40 <mauke> if you want to argue that that's not historically accurate, I'd say that λ was just a workaround for typographical issues anyway
20:52:56 × titibandit quits (~titibandi@user/titibandit) (Ping timeout: 246 seconds)
20:53:06 <mauke> that is, λ wasn't the original notation either
20:53:55 <dolio> That doesn't make your other analogy any more sensical.
20:54:22 <mauke> it's not a perfect analogy, but I still think it's sensical
20:54:22 × gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
20:54:28 <EvanR> begriffsschrift weird horizontal rule then a semi circular dip containing a variable before it returns to a rule again and goes somewhere around the body?
20:54:33 <ncf> just take the λ
20:57:06 <mauke> that is, given the choice between two essentially arbitrary notations, neither of which is the "original" (or "true") form, what reason is there to prefer the weird one that steals an identifier from the language?
20:57:23 × elain4 quits (~textual@static-71-251-226-194.rcmdva.fios.verizon.net) (Quit: Textual IRC Client: www.textualapp.com)
20:57:25 <mauke> other than sentimental reasons
20:58:55 <ncf> and thus the simply-typed¹ backslash calculus was created
20:58:58 <EvanR> because of all my merchandise, desktop wallpaper, tattooes, shell prompts, screensavers, and stupid haircuts for a dog that feature λ
20:59:03 <ncf> [1] not the one you think
20:59:27 <probie> and the lambda bind logo
21:00:06 <mauke> ah. marketing :-)
21:00:27 gentauro joins (~gentauro@user/gentauro)
21:00:30 <geekosaur> λ𝝺
21:00:54 <mauke> ncf: nice
21:01:29 <darkling> geekosaur: The intersection of Greek and Welsh?
21:02:04 dcoutts joins (~duncan@83.150.42.54)
21:05:10 × oac quits (~oac@72-50-214-210.fttp.usinternet.com) (Quit: oac)
21:05:13 <probie> darkling: It's not too late to visit Λλανφαιρ ΠΓ
21:08:22 thegeekinside joins (~thegeekin@189.217.90.138)
21:18:27 × ss4 quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
21:21:23 × jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 250 seconds)
21:21:31 nate2 joins (~nate@98.45.169.16)
21:26:31 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
21:27:10 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
21:28:00 Sciencentistguy4 joins (~sciencent@hacksoc/ordinary-member)
21:30:07 × Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Ping timeout: 240 seconds)
21:30:07 Sciencentistguy4 is now known as Sciencentistguy
21:33:18 jero98772 joins (~jero98772@2800:484:1d7f:5d36::1)
21:35:25 × use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:11c4:bb75:150b:3612) (Remote host closed the connection)
21:35:44 use-value joins (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
21:39:08 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 240 seconds)
21:40:55 oac_ joins (~oac@2603:3016:2200:f1a0:671c:e5f:9863:6688)
21:41:26 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
21:44:11 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
21:44:41 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:44a:8f26:7d0b:2262)
21:45:29 user____3 is now known as gurkenglas
21:49:08 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:44a:8f26:7d0b:2262) (Ping timeout: 250 seconds)
21:50:51 × dcoutts quits (~duncan@83.150.42.54) (Ping timeout: 250 seconds)
21:51:02 × taupiqueur quits (~taupiqueu@2a02-842a-8180-4601-e0d8-6a6a-01a7-3f26.rev.sfr.net) (Ping timeout: 246 seconds)
21:53:02 taupiqueur joins (~taupiqueu@2a02-842a-8180-4601-1451-bf6d-2568-8afd.rev.sfr.net)
21:58:42 cheater_ joins (~Username@user/cheater)
21:59:45 × santiagopim quits (~user@90.167.66.131) (Ping timeout: 240 seconds)
22:00:45 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
22:00:47 cheater_ is now known as cheater
22:04:20 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:05:44 × lawt quits (~lawt@2603:c024:c008:d000:5b4f:1ef2:fed2:ef3d) (Ping timeout: 246 seconds)
22:06:55 lawt joins (~lawt@129.159.36.129)
22:10:19 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
22:21:56 × michalz quits (~michalz@185.246.207.203) (Remote host closed the connection)
22:31:28 thegeekinside joins (~thegeekin@189.217.90.138)
22:31:45 × jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 265 seconds)
22:38:17 × acidjnk quits (~acidjnk@p200300d6e7072f019dd2aa00216a5b17.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
22:43:07 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
22:43:17 jero98772 joins (~jero98772@2800:484:1d7f:5d36::1)
22:43:27 cheater_ joins (~Username@user/cheater)
22:45:07 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
22:45:12 cheater_ is now known as cheater
22:47:03 cheater_ joins (~Username@user/cheater)
22:49:48 × cheater quits (~Username@user/cheater) (Ping timeout: 250 seconds)
22:49:57 cheater_ is now known as cheater
22:52:32 cheater_ joins (~Username@user/cheater)
22:52:50 × cheater_ quits (~Username@user/cheater) (Read error: Connection reset by peer)
22:52:59 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
22:55:26 × cheater quits (~Username@user/cheater) (Ping timeout: 250 seconds)
22:55:49 × oac_ quits (~oac@2603:3016:2200:f1a0:671c:e5f:9863:6688) (Ping timeout: 256 seconds)
22:57:37 cheater_ joins (~Username@user/cheater)
22:57:37 cheater_ is now known as cheater
22:58:12 × cheater quits (~Username@user/cheater) (Read error: Connection reset by peer)
22:59:16 × chromoblob quits (~user@37.113.180.121) (Ping timeout: 265 seconds)
22:59:36 cheater_ joins (~Username@user/cheater)
22:59:36 cheater_ is now known as cheater
22:59:36 jargon joins (~jargon@184.101.71.62)
23:02:21 cheater_ joins (~Username@user/cheater)
23:04:28 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
23:04:36 cheater_ is now known as cheater
23:06:54 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
23:07:23 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
23:08:09 mauke_ joins (~mauke@user/mauke)
23:09:31 × mauke quits (~mauke@user/mauke) (Ping timeout: 240 seconds)
23:09:31 mauke_ is now known as mauke
23:10:05 freeside joins (~mengwong@103.252.202.189)
23:10:32 jmd_ joins (~jmdaemon@user/jmdaemon)
23:12:34 × Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
23:14:37 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
23:15:08 × myme quits (~myme@2a01:799:d60:e400:132b:f0c4:5531:8862) (Ping timeout: 240 seconds)
23:16:25 myme joins (~myme@2a01:799:d60:e400:aea4:e4cc:8331:e0cb)
23:16:50 CalculusCats is now known as Calico
23:16:53 Calico is now known as a
23:16:58 a is now known as Guest849
23:17:44 × Guest849 quits (NyaaTheKit@user/calculuscat) (Quit: Meow Meow Meow Meow Meow Meow Meow Meow)
23:18:50 Guest849 joins (NyaaTheKit@user/calculuscat)
23:19:48 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
23:19:49 × Guest849 quits (NyaaTheKit@user/calculuscat) (Client Quit)
23:21:00 Guest849 joins (NyaaTheKit@user/calculuscat)
23:21:21 Guest849 is now known as CalculusCat
23:23:12 CalculusCat is now known as CalculusCats
23:25:12 cheater joins (~Username@user/cheater)
23:26:01 × gurkenglas quits (~user@dynamic-046-114-180-095.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
23:28:56 × zeenk quits (~zeenk@2a02:2f04:a106:3c00::fba) (Quit: Konversation terminated!)
23:29:49 × cheater quits (~Username@user/cheater) (Ping timeout: 256 seconds)
23:32:16 × thegeekinside quits (~thegeekin@189.217.90.138) (Remote host closed the connection)
23:32:44 cheater joins (~Username@user/cheater)
23:39:44 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 248 seconds)
23:41:21 × jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 250 seconds)
23:53:26 L29Ah joins (~L29Ah@wikipedia/L29Ah)
23:53:29 jero98772 joins (~jero98772@2800:484:1d7f:5d36::1)
23:53:37 × Inst_ quits (~Inst@2601:6c4:4081:2fc0:ed66:a694:f2c2:7aeb) (Remote host closed the connection)
23:54:00 Inst_ joins (~Inst@2601:6c4:4081:2fc0:ed66:a694:f2c2:7aeb)
23:55:08 machinedgod joins (~machinedg@93-138-40-51.adsl.net.t-com.hr)
23:56:53 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
23:56:53 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
23:56:53 wroathe joins (~wroathe@user/wroathe)
23:59:08 × oo_miguel quits (~Thunderbi@77.252.47.84) (Ping timeout: 250 seconds)

All times are in UTC on 2023-06-08.