2022/11/16

2022-11-16 00:00:24 +0000slack1256(~slack1256@186.11.56.146) (Ping timeout: 268 seconds)
2022-11-16 00:03:50 +0000 <energizer> why does haskell use ++ for concatenation?
2022-11-16 00:03:57 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-11-16 00:04:16 +0000 <energizer> instead of another symbol
2022-11-16 00:04:48 +0000 <monochrom> Other FP people were already using it.
2022-11-16 00:04:51 +0000 <Axman6> what symbol should it use? that's a pretty odd question
2022-11-16 00:05:08 +0000 <energizer> monochrom: in what context?
2022-11-16 00:05:16 +0000 <energizer> Axman6: there are a lot of symbols out there, why that one
2022-11-16 00:05:27 +0000 <Rembane> <> is also used for concatenation
2022-11-16 00:05:36 +0000 <hpc> > length ['\0'..]
2022-11-16 00:05:38 +0000 <lambdabot> 1114112
2022-11-16 00:06:16 +0000 <hpc> eventually you just have to pick something
2022-11-16 00:06:27 +0000 <Axman6> energizer: why not?
2022-11-16 00:06:30 +0000 <hpc> why (>>=) either?
2022-11-16 00:06:38 +0000mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in)
2022-11-16 00:06:41 +0000 <hpc> or (**) for exponentiation when it could be (^)
2022-11-16 00:06:48 +0000 <energizer> Axman6: + is commutative, concatenation isn't
2022-11-16 00:07:03 +0000 <Axman6> that's why we don't use (+)
2022-11-16 00:07:42 +0000 <EvanR> concat isn't commutative, but we use a symmetric symbol anyway, why xD
2022-11-16 00:07:49 +0000 <money> Face
2022-11-16 00:08:16 +0000mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
2022-11-16 00:08:17 +0000 <hpc> EvanR: that's why i always use subtract instead of (-)
2022-11-16 00:08:27 +0000 <monochrom> In some FP languages before Haskell, and in theoretical papers.
2022-11-16 00:08:53 +0000 <Axman6> why do y we use + for addition? or / for division? or any symbol for anything?
2022-11-16 00:08:55 +0000 <monochrom> You come across as refusing to believe it.
2022-11-16 00:09:09 +0000 <Axman6> At least we're not using @@ like OCaml
2022-11-16 00:09:16 +0000 <EvanR> or as I was told by a wrong school mate many years ago, subtraction is commutative too, you just don't know how yet
2022-11-16 00:09:43 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds)
2022-11-16 00:10:01 +0000 <energizer> monochrom: if the answer is "because that's how miranda did it" that's fine, but then i'll ask why did miranda
2022-11-16 00:10:06 +0000 <hpc> subtraction is commutative, it's just addition with one of the arguments different :P
2022-11-16 00:11:01 +0000 <EvanR> on the subject of + and @, a few days ago I was wondering about a programming languages where every ascii symbol was used for something that was obvious from outside programming. + does addition only, $ does money only, @ does email only, haha xD
2022-11-16 00:11:20 +0000 <EvanR> % means percent
2022-11-16 00:11:21 +0000 <yahb2> <interactive>:58:1: error: Variable not in scope: means :: t0 -> t ; ; <interactive>:58:7: error: Variable not in scope: percent
2022-11-16 00:11:31 +0000 <EvanR> see, we're ridiculous
2022-11-16 00:11:34 +0000 <hpc> energizer: eventually you have to ask why punch cards were 80 characters wide too
2022-11-16 00:11:42 +0000 <hpc> sometimes people just make decisions about things
2022-11-16 00:11:54 +0000 <Rembane> In APL they tried to use the most intuitive character for each operation, it's not clear if they succeeded, but they really tried.
2022-11-16 00:12:38 +0000 <energizer> hpc: i heard a story that it's because they'd fit in the US dollar containers they had at the Treasury office across the street or something like that
2022-11-16 00:12:41 +0000 <geekosaur> EvanR, sounds like some horrendous cross between (COBOL, Unison, etc.) and PL/I
2022-11-16 00:12:52 +0000 <energizer> hpc: but i remember that being debunked
2022-11-16 00:12:59 +0000 <geekosaur> they made 96 column punch cards
2022-11-16 00:13:50 +0000bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 240 seconds)
2022-11-16 00:14:33 +0000 <hpc> geekosaur: that was actually just 8 punch cards turned sideways :P
2022-11-16 00:15:18 +0000 <energizer> Rembane: certainly APL did a good job for a bunch of them. ⌈ ceil ⌊ floor ∣ absolute value ⌽ flip over vertical axis ⊖ flip over horizontal axis ⍉ flip over diagonal axis
2022-11-16 00:16:02 +0000 <geekosaur> intuitive for whom, though
2022-11-16 00:16:37 +0000raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-11-16 00:16:46 +0000KaipeiKaiepi
2022-11-16 00:16:47 +0000 <energizer> geekosaur: i claim ⌽ ⊖ ⍉ are intuitive for everybody
2022-11-16 00:17:03 +0000king_gs(~Thunderbi@2806:103e:29:bfeb:c988:bbd5:2586:4924)
2022-11-16 00:17:11 +0000 <Rembane> energizer: Indeed. :)
2022-11-16 00:17:15 +0000 <geekosaur> ι though
2022-11-16 00:17:26 +0000 <Rembane> geekosaur: They are incredibly intuitive for those who know them.
2022-11-16 00:17:31 +0000 <hpc> ⌽ could be the power off button
2022-11-16 00:18:46 +0000kenaryn(~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr) (Quit: leaving)
2022-11-16 00:23:30 +0000acidjnk(~acidjnk@p200300d6e7137a17b1807064f1abc0ef.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-11-16 00:28:43 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-16 00:32:09 +0000Inst(~Inst@2601:6c4:4081:54f0:155b:1b8c:fa18:504e) (Leaving)
2022-11-16 00:32:29 +0000Inst(~Liam@c-98-208-218-119.hsd1.fl.comcast.net)
2022-11-16 00:34:02 +0000 <EvanR> the egyptians invented a horizontal line to mean fraction, I'm glad they figured that one out early
2022-11-16 00:34:23 +0000Inst(~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Killed (NickServ (GHOST command used by sakura!~Inst@2601:6c4:4081:54f0:155b:1b8c:fa18:504e)))
2022-11-16 00:34:25 +0000Tuplanolla(~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.)
2022-11-16 00:34:32 +0000 <EvanR> but it does render ⊖ confusing
2022-11-16 00:34:36 +0000Inst(~Inst@2601:6c4:4081:54f0:155b:1b8c:fa18:504e)
2022-11-16 00:35:11 +0000 <EvanR> and thanks to that story about APL <|> will be confusing from now on
2022-11-16 00:35:33 +0000 <EvanR> another very unsymmetric operation with a symmetric symbol
2022-11-16 00:36:17 +0000 <EvanR> at least foldl and foldr aren't literally symmetric
2022-11-16 00:36:24 +0000 <Inst> @hpc
2022-11-16 00:36:24 +0000 <lambdabot> Maybe you meant: src rc pl ghc
2022-11-16 00:36:27 +0000 <Inst> pred is better ;)
2022-11-16 00:38:47 +0000king_gs(~Thunderbi@2806:103e:29:bfeb:c988:bbd5:2586:4924) (Remote host closed the connection)
2022-11-16 00:39:06 +0000king_gs(~Thunderbi@2806:103e:29:bfeb:c988:bbd5:2586:4924)
2022-11-16 00:40:30 +0000slac39565(~slack1256@191.126.227.195) (Read error: Connection reset by peer)
2022-11-16 00:40:37 +0000slack1256(~slack1256@186.11.58.146)
2022-11-16 00:40:53 +0000 <monochrom> ⌽ could be power off, ⊖ could be power on, and ⍉ could be both (when there is only one button) >:)
2022-11-16 00:43:33 +0000sgarcia(sgarcia@swarm.znchost.com)
2022-11-16 00:46:15 +0000 <EvanR> 0V, 5V and 3.3V
2022-11-16 00:46:35 +0000 <EvanR> and FILE NOT FOUND
2022-11-16 00:46:40 +0000 <Rembane> The turbo button is important
2022-11-16 00:47:31 +0000 <int-e> EvanR: don't forget open, and weak low (0V), weak high (whatever your nominal signal voltage is)
2022-11-16 00:48:43 +0000 <int-e> (AIUI the weak outputs can put signal on low speed buses that can be overridden by other strong signals)
2022-11-16 00:53:27 +0000Lycurgus(~juan@user/Lycurgus)
2022-11-16 00:57:37 +0000Lycurgus(~juan@user/Lycurgus) (Read error: Connection reset by peer)
2022-11-16 01:03:27 +0000 <monochrom> "9-value logic" was what I heard for very serious digital circuits from IEEE. :)
2022-11-16 01:03:32 +0000califax(~califax@user/califx) (Remote host closed the connection)
2022-11-16 01:03:46 +0000 <monochrom> (I ran out of time, so I didn't investigate.)
2022-11-16 01:04:34 +0000 <EvanR> sounds like an april fools on the level of UTF-9
2022-11-16 01:04:50 +0000xff0x(~xff0x@2405:6580:b080:900:3e39:3b08:3cd:f770) (Ping timeout: 240 seconds)
2022-11-16 01:05:32 +0000califax(~califax@user/califx)
2022-11-16 01:06:44 +0000 <davean> monochrom: you mean https://en.wikipedia.org/wiki/IEEE_1164 ?
2022-11-16 01:07:33 +0000 <monochrom> I think yes! But it has been more than a decade.
2022-11-16 01:07:58 +0000stef204(~stef204@user/stef204) (Quit: WeeChat 3.7.1)
2022-11-16 01:08:20 +0000lottaquestions(~nick@2607:fa49:503e:7100:bded:99b3:7299:5ee6)
2022-11-16 01:10:20 +0000mei(~mei@user/mei) (Remote host closed the connection)
2022-11-16 01:11:04 +0000mei(~mei@user/mei)
2022-11-16 01:20:34 +0000evanvarvell(~evanvarve@097-088-181-216.res.spectrum.com)
2022-11-16 01:20:34 +0000raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
2022-11-16 01:21:19 +0000slac73842(~slack1256@191.126.227.195)
2022-11-16 01:23:10 +0000slack1256(~slack1256@186.11.58.146) (Ping timeout: 240 seconds)
2022-11-16 01:24:24 +0000troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 260 seconds)
2022-11-16 01:33:09 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds)
2022-11-16 01:41:01 +0000ddellacosta(~ddellacos@89.45.224.46)
2022-11-16 01:41:11 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-16 01:42:11 +0000werneta(~werneta@137.78.30.207) (Ping timeout: 256 seconds)
2022-11-16 01:46:04 +0000slac73842(~slack1256@191.126.227.195) (Remote host closed the connection)
2022-11-16 01:48:28 +0000DDR(~DDR@2604:3d08:4c7f:8250:f6df:a2b:941d:3e56)
2022-11-16 01:49:51 +0000xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2022-11-16 01:50:10 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:ac76:5dba:fbad:434b)
2022-11-16 01:50:47 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-11-16 01:54:30 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:ac76:5dba:fbad:434b) (Ping timeout: 240 seconds)
2022-11-16 01:56:16 +0000srz(~srz@181.84.183.212)
2022-11-16 01:57:14 +0000thyriaen(~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1) (Remote host closed the connection)
2022-11-16 01:59:15 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-16 01:59:21 +0000finsternis(~X@23.226.237.192) (Read error: Connection reset by peer)
2022-11-16 02:01:12 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-16 02:04:51 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds)
2022-11-16 02:10:32 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2022-11-16 02:16:43 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-11-16 02:25:34 +0000Lycurgus(~juan@user/Lycurgus)
2022-11-16 02:29:35 +0000Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Quit: free())
2022-11-16 02:30:38 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-16 02:34:14 +0000perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.7.1)
2022-11-16 02:36:14 +0000perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca)
2022-11-16 02:37:11 +0000beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 260 seconds)
2022-11-16 02:38:30 +0000Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2022-11-16 02:39:55 +0000Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded)
2022-11-16 02:40:52 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-11-16 02:42:20 +0000Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt https://tinyurl.com/4m8d4kd5)
2022-11-16 02:49:13 +0000justsomeguy(~justsomeg@user/justsomeguy)
2022-11-16 02:57:35 +0000Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2022-11-16 03:02:12 +0000foul_owl(~kerry@23.82.194.108) (Ping timeout: 248 seconds)
2022-11-16 03:04:16 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds)
2022-11-16 03:07:00 +0000jespada(~jespada@82.36.38.229) (Ping timeout: 248 seconds)
2022-11-16 03:10:20 +0000td_(~td@83.135.9.38) (Ping timeout: 268 seconds)
2022-11-16 03:10:35 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 256 seconds)
2022-11-16 03:10:58 +0000TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 268 seconds)
2022-11-16 03:11:30 +0000td_(~td@83.135.9.43)
2022-11-16 03:11:46 +0000jespada(~jespada@nmal-24-b2-v4wan-166357-cust1764.vm24.cable.virginm.net)
2022-11-16 03:12:40 +0000srz(~srz@181.84.183.212) (Remote host closed the connection)
2022-11-16 03:14:30 +0000JimL(~quassel@89-162-2-132.fiber.signal.no) (Ping timeout: 252 seconds)
2022-11-16 03:16:02 +0000foul_owl(~kerry@174-21-75-230.tukw.qwest.net)
2022-11-16 03:16:50 +0000marc___(~marc@5.83.191.221)
2022-11-16 03:17:47 +0000youziqi(~youziqi@103.37.140.93) (Ping timeout: 260 seconds)
2022-11-16 03:18:36 +0000jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection)
2022-11-16 03:19:50 +0000marc__(~marc@5.83.191.99) (Ping timeout: 240 seconds)
2022-11-16 03:20:55 +0000eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2022-11-16 03:21:05 +0000youziqi(~youziqi@103.37.140.91)
2022-11-16 03:23:05 +0000razetime(~quassel@117.193.2.3)
2022-11-16 03:23:32 +0000sh1n(~sh1n@186.152.126.112) (Remote host closed the connection)
2022-11-16 03:25:15 +0000mixfix41(~sdeny9ee@user/mixfix41) (Ping timeout: 260 seconds)
2022-11-16 03:33:32 +0000king_gs(~Thunderbi@2806:103e:29:bfeb:c988:bbd5:2586:4924) (Read error: Connection reset by peer)
2022-11-16 03:33:48 +0000king_gs(~Thunderbi@187.201.139.206)
2022-11-16 03:38:31 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-16 03:41:33 +0000 <zzz> ?pl uncurry f <$> zipWith a b
2022-11-16 03:41:33 +0000 <lambdabot> uncurry f <$> zipWith a b
2022-11-16 03:41:53 +0000 <zzz> ?pl uncurry f <$> zip a b
2022-11-16 03:41:54 +0000 <lambdabot> uncurry f <$> zip a b
2022-11-16 03:42:51 +0000 <zzz> wasn't there a lambdabot thing for turning for example this into `zipWIth f a b`
2022-11-16 03:44:10 +0000justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 240 seconds)
2022-11-16 03:46:53 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2022-11-16 03:46:53 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2022-11-16 03:46:53 +0000wroathe(~wroathe@user/wroathe)
2022-11-16 03:47:17 +0000finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-11-16 03:47:17 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-11-16 03:47:17 +0000finn_elijaFinnElija
2022-11-16 03:47:51 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-16 03:47:55 +0000TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2022-11-16 03:50:09 +0000 <int-e> @pl map (uncurry f) (zip a b)
2022-11-16 03:50:09 +0000 <lambdabot> zipWith f a b
2022-11-16 03:50:22 +0000 <int-e> @pl fmap (uncurry f) (zip a b)
2022-11-16 03:50:22 +0000 <lambdabot> fmap (uncurry f) (zip a b)
2022-11-16 03:51:24 +0000vglfr(~vglfr@145.224.100.22)
2022-11-16 03:52:26 +0000 <int-e> @pl fmap f . fmap g
2022-11-16 03:52:26 +0000 <lambdabot> fmap (f . g)
2022-11-16 03:52:31 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 256 seconds)
2022-11-16 03:52:53 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-11-16 03:53:19 +0000 <int-e> Eh, @pl has a bunch of ad-hoc simplification rules. It also predates Applicative, so it wouldn't know about the <$> notation.
2022-11-16 03:58:23 +0000Kaiepi(~Kaiepi@108.175.84.104) (Ping timeout: 260 seconds)
2022-11-16 03:58:51 +0000TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 260 seconds)
2022-11-16 04:00:44 +0000Sauvin(~sauvin@user/Sauvin) (Ping timeout: 260 seconds)
2022-11-16 04:02:46 +0000 <Axman6> feels like more of an hlint rule than a pointfree thing
2022-11-16 04:04:13 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-11-16 04:05:18 +0000TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2022-11-16 04:06:27 +0000Sauvin(~sauvin@user/Sauvin)
2022-11-16 04:06:43 +0000fjmorazan(~quassel@user/fjmorazan) ()
2022-11-16 04:07:23 +0000fjmorazan(~quassel@user/fjmorazan)
2022-11-16 04:08:03 +0000 <int-e> Axman6: are you saying that improving the output of @pl is a pointless exercise...
2022-11-16 04:22:30 +0000king_gs(~Thunderbi@187.201.139.206) (Read error: Connection reset by peer)
2022-11-16 04:33:31 +0000 <monochrom> haha
2022-11-16 04:33:52 +0000mmhat(~mmh@p200300f1c7050c1bee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.7.1)
2022-11-16 04:36:45 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-11-16 04:37:49 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-11-16 04:44:04 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds)
2022-11-16 04:49:42 +0000monochrom(trebla@216.138.220.146) (Quit: NO CARRIER)
2022-11-16 04:50:14 +0000ddellacosta(~ddellacos@89.45.224.46) (Ping timeout: 268 seconds)
2022-11-16 04:50:54 +0000waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 260 seconds)
2022-11-16 04:54:04 +0000chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2022-11-16 04:54:25 +0000chexum(~quassel@gateway/tor-sasl/chexum)
2022-11-16 04:54:36 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-16 04:58:22 +0000troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-11-16 04:58:50 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 240 seconds)
2022-11-16 04:58:51 +0000monochrom(trebla@216.138.220.146)
2022-11-16 05:01:16 +0000 <zzz> i knew it
2022-11-16 05:04:29 +0000biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2022-11-16 05:08:23 +0000biberu(~biberu@user/biberu)
2022-11-16 05:08:24 +0000Vajb(~Vajb@2001:999:504:3ad6:52a4:a3b5:32d8:e74d) (Read error: Connection reset by peer)
2022-11-16 05:08:34 +0000Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi)
2022-11-16 05:09:01 +0000johnw(~johnw@2600:1700:cf00:db0:6d6a:a571:6c8a:51fc) (Quit: ZNC - http://znc.in)
2022-11-16 05:10:10 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-11-16 05:12:03 +0000evanvarvell(~evanvarve@097-088-181-216.res.spectrum.com) (Quit: Leaving)
2022-11-16 05:13:25 +0000zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-11-16 05:17:07 +0000zaquest(~notzaques@5.130.79.72)
2022-11-16 05:19:15 +0000chromoblob(~user@37.113.164.122)
2022-11-16 05:23:47 +0000chromoblob(~user@37.113.164.122) (Ping timeout: 260 seconds)
2022-11-16 05:30:08 +0000InstX1(~Liam@c-98-208-218-119.hsd1.fl.comcast.net)
2022-11-16 05:30:34 +0000Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2022-11-16 05:30:56 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds)
2022-11-16 05:31:52 +0000Lord_of_Life_Lord_of_Life
2022-11-16 05:34:31 +0000InstX1(~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 256 seconds)
2022-11-16 05:35:15 +0000Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Ping timeout: 268 seconds)
2022-11-16 05:35:27 +0000Vajb(~Vajb@2001:999:504:3ad6:52a4:a3b5:32d8:e74d)
2022-11-16 05:39:48 +0000phma(~phma@2001:5b0:215d:9748:5bc9:473d:a4cc:a159) (Read error: Connection reset by peer)
2022-11-16 05:40:15 +0000phma(~phma@host-67-44-208-21.hnremote.net)
2022-11-16 05:44:10 +0000sammelweis(~quassel@c-68-48-18-140.hsd1.mi.comcast.net) (Ping timeout: 240 seconds)
2022-11-16 05:44:30 +0000foul_owl(~kerry@174-21-75-230.tukw.qwest.net) (Ping timeout: 240 seconds)
2022-11-16 05:49:09 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-16 05:53:13 +0000wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2022-11-16 06:00:04 +0000foul_owl(~kerry@23.82.194.107)
2022-11-16 06:02:51 +0000jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 256 seconds)
2022-11-16 06:11:07 +0000bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2022-11-16 06:16:37 +0000king_gs(~Thunderbi@187.201.139.206)
2022-11-16 06:19:02 +0000Xeroine(~Xeroine@user/xeroine) (Ping timeout: 268 seconds)
2022-11-16 06:22:29 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds)
2022-11-16 06:24:17 +0000Xeroine(~Xeroine@user/xeroine)
2022-11-16 06:29:10 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-11-16 06:29:53 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-11-16 06:32:06 +0000takuan(~takuan@178-116-218-225.access.telenet.be)
2022-11-16 06:35:34 +0000kenran(~user@user/kenran)
2022-11-16 06:37:03 +0000DDR(~DDR@2604:3d08:4c7f:8250:f6df:a2b:941d:3e56) (Ping timeout: 260 seconds)
2022-11-16 06:54:00 +0000echoreply(~echoreply@2001:19f0:9002:1f3b:5400:ff:fe6f:8b8d) (Quit: WeeChat 2.8)
2022-11-16 06:54:29 +0000echoreply(~echoreply@45.32.163.16)
2022-11-16 06:55:35 +0000Kaiepi(~Kaiepi@108.175.84.104)
2022-11-16 07:02:53 +0000vglfr(~vglfr@145.224.100.22) (Read error: Connection reset by peer)
2022-11-16 07:03:48 +0000vglfr(~vglfr@145.224.100.22)
2022-11-16 07:19:06 +0000bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2022-11-16 07:20:40 +0000machinedgod(~machinedg@clnet-p10-126.ikbnet.co.at)
2022-11-16 07:21:03 +0000vglfr(~vglfr@145.224.100.22) (Ping timeout: 256 seconds)
2022-11-16 07:24:19 +0000 <Inst> ummm, i'm getting a really weird bug now
2022-11-16 07:24:44 +0000 <Inst> something seems to be wrong with generateM
2022-11-16 07:25:02 +0000Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-11-16 07:29:50 +0000 <Inst> ah, i see what's going on, generate creates a traverse
2022-11-16 07:30:46 +0000sa(sid1055@2a03:5180:f::41f) (Read error: Software caused connection abort)
2022-11-16 07:31:06 +0000sa(sid1055@id-1055.tinside.irccloud.com)
2022-11-16 07:36:47 +0000ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds)
2022-11-16 07:37:58 +0000troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 268 seconds)
2022-11-16 07:37:59 +0000eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-11-16 07:38:50 +0000ec(~ec@gateway/tor-sasl/ec)
2022-11-16 07:40:36 +0000sunarch(sid526836@user/sunarch) (Read error: Software caused connection abort)
2022-11-16 07:41:02 +0000sunarch(sid526836@user/sunarch)
2022-11-16 07:44:34 +0000akegalj(~akegalj@93-142-168-177.adsl.net.t-com.hr)
2022-11-16 07:45:30 +0000mastarija(~mastarija@2a05:4f46:e03:6000:bd1:38d3:bfb:8169)
2022-11-16 07:45:54 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 260 seconds)
2022-11-16 07:46:07 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-11-16 07:46:56 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:2667:3554:7507:27aa)
2022-11-16 07:48:00 +0000vglfr(~vglfr@145.224.100.22)
2022-11-16 07:49:51 +0000fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-11-16 07:51:49 +0000discuss9128(~discuss91@bb119-74-93-26.singnet.com.sg)
2022-11-16 07:52:43 +0000michalz(~michalz@185.246.207.197)
2022-11-16 07:55:29 +0000king_gs1(~Thunderbi@2806:103e:29:bfeb:c988:bbd5:2586:4924)
2022-11-16 07:55:35 +0000king_gs(~Thunderbi@187.201.139.206) (Read error: Connection reset by peer)
2022-11-16 07:55:35 +0000king_gs1king_gs
2022-11-16 07:55:36 +0000titibandit(~titibandi@xdsl-78-35-167-196.nc.de)
2022-11-16 08:03:43 +0000chele(~chele@user/chele)
2022-11-16 08:04:13 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-11-16 08:04:19 +0000king_gs(~Thunderbi@2806:103e:29:bfeb:c988:bbd5:2586:4924) (Ping timeout: 260 seconds)
2022-11-16 08:13:11 +0000MajorBiscuit(~MajorBisc@c-001-018-015.client.tudelft.eduvpn.nl)
2022-11-16 08:17:50 +0000fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds)
2022-11-16 08:19:13 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-16 08:22:50 +0000razetime(~quassel@117.193.2.3) (Ping timeout: 240 seconds)
2022-11-16 08:23:38 +0000ub(~Thunderbi@178.165.184.78.wireless.dyn.drei.com)
2022-11-16 08:23:39 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2022-11-16 08:28:32 +0000Kaiepi(~Kaiepi@108.175.84.104) (Ping timeout: 268 seconds)
2022-11-16 08:32:27 +0000hgolden(~hgolden@cpe-172-251-233-141.socal.res.rr.com)
2022-11-16 08:33:35 +0000fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-11-16 08:36:11 +0000hgolden(~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Client Quit)
2022-11-16 08:36:47 +0000ft(~ft@p508dbd59.dip0.t-ipconnect.de) (Quit: leaving)
2022-11-16 08:38:27 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:7423:a580:f992:c653)
2022-11-16 08:39:20 +0000gmg(~user@user/gehmehgeh)
2022-11-16 08:41:27 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-11-16 08:43:31 +0000razetime(~quassel@117.193.2.3)
2022-11-16 08:44:00 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:7423:a580:f992:c653) (Ping timeout: 260 seconds)
2022-11-16 08:44:06 +0000ub(~Thunderbi@178.165.184.78.wireless.dyn.drei.com) (Quit: ub)
2022-11-16 08:44:22 +0000acidjnk(~acidjnk@p200300d6e7137a79b1807064f1abc0ef.dip0.t-ipconnect.de)
2022-11-16 08:45:29 +0000bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-11-16 08:46:46 +0000azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-11-16 08:47:20 +0000kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2022-11-16 08:47:29 +0000discuss9128(~discuss91@bb119-74-93-26.singnet.com.sg) (Quit: Client closed)
2022-11-16 08:49:06 +0000azimut(~azimut@gateway/tor-sasl/azimut)
2022-11-16 08:49:09 +0000nschoe(~q@141.101.51.197)
2022-11-16 08:50:17 +0000nschoe(~q@141.101.51.197) (Client Quit)
2022-11-16 08:50:44 +0000shriekingnoise(~shrieking@186.137.167.202) (Quit: Quit)
2022-11-16 08:53:35 +0000nschoe(~q@141.101.51.197)
2022-11-16 09:00:04 +0000pareto-optimal-d(~pareto-op@2001:470:69fc:105::1:b61f) (Quit: You have been kicked for being idle)
2022-11-16 09:00:06 +0000disco-dave[m](~disco-dav@2001:470:69fc:105::2:1892) (Quit: You have been kicked for being idle)
2022-11-16 09:00:13 +0000fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 256 seconds)
2022-11-16 09:00:47 +0000TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 260 seconds)
2022-11-16 09:02:10 +0000AlexZenon(~alzenon@94.233.241.222) (Quit: ;-)
2022-11-16 09:02:34 +0000Alex_test(~al_test@94.233.241.222) (Quit: ;-)
2022-11-16 09:03:00 +0000AlexNoo(~AlexNoo@94.233.241.222) (Quit: Leaving)
2022-11-16 09:03:50 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 260 seconds)
2022-11-16 09:05:56 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-11-16 09:07:12 +0000TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2022-11-16 09:07:12 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-11-16 09:07:16 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-11-16 09:16:38 +0000fserucas(~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7)
2022-11-16 09:19:51 +0000Feuermagier_(~Feuermagi@2a02:2488:4211:3400:6419:933b:46e0:8942)
2022-11-16 09:20:43 +0000AlexNoo(~AlexNoo@94.233.241.222)
2022-11-16 09:20:45 +0000AlexZenon(~alzenon@94.233.241.222)
2022-11-16 09:21:25 +0000chromoblob(~user@37.113.164.122)
2022-11-16 09:22:34 +0000ub(~Thunderbi@178.165.184.78.wireless.dyn.drei.com)
2022-11-16 09:23:56 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-11-16 09:24:43 +0000emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2022-11-16 09:25:07 +0000Alex_test(~al_test@94.233.241.222)
2022-11-16 09:25:23 +0000__monty__(~toonn@user/toonn)
2022-11-16 09:26:01 +0000ubert1(~Thunderbi@178.165.179.251.wireless.dyn.drei.com)
2022-11-16 09:26:02 +0000ub1(~Thunderbi@178.165.179.251.wireless.dyn.drei.com)
2022-11-16 09:27:25 +0000ub(~Thunderbi@178.165.184.78.wireless.dyn.drei.com) (Ping timeout: 256 seconds)
2022-11-16 09:27:30 +0000ubert(~Thunderbi@178.165.184.78.wireless.dyn.drei.com) (Ping timeout: 240 seconds)
2022-11-16 09:27:30 +0000ubert1ubert
2022-11-16 09:27:31 +0000ub1ub
2022-11-16 09:27:43 +0000Pickchea(~private@user/pickchea)
2022-11-16 09:27:59 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-11-16 09:28:20 +0000ham(~ham@user/ham) (Ping timeout: 248 seconds)
2022-11-16 09:28:34 +0000ham(~ham@user/ham)
2022-11-16 09:30:08 +0000chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2022-11-16 09:30:41 +0000chexum(~quassel@gateway/tor-sasl/chexum)
2022-11-16 09:32:21 +0000titibandit(~titibandi@xdsl-78-35-167-196.nc.de) (Remote host closed the connection)
2022-11-16 09:35:47 +0000youziqi(~youziqi@103.37.140.91) (Ping timeout: 260 seconds)
2022-11-16 09:37:37 +0000youziqi(~youziqi@103.37.140.123)
2022-11-16 09:39:56 +0000freeside_(~mengwong@103.252.202.193)
2022-11-16 09:40:38 +0000gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-11-16 09:41:18 +0000freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds)
2022-11-16 09:49:34 +0000vglfr(~vglfr@145.224.100.22) (Ping timeout: 260 seconds)
2022-11-16 09:51:26 +0000tzh_(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2022-11-16 09:53:41 +0000vglfr(~vglfr@145.224.100.22)
2022-11-16 10:04:49 +0000ub(~Thunderbi@178.165.179.251.wireless.dyn.drei.com) (Ping timeout: 256 seconds)
2022-11-16 10:07:20 +0000econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-11-16 10:09:59 +0000xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 260 seconds)
2022-11-16 10:19:30 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds)
2022-11-16 10:21:29 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds)
2022-11-16 10:22:10 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-11-16 10:22:11 +0000Pickchea(~private@user/pickchea) (Quit: Leaving)
2022-11-16 10:23:57 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-11-16 10:28:06 +0000dcoutts__dcoutts_
2022-11-16 10:28:16 +0000dcoutts_dcoutts
2022-11-16 10:28:32 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-11-16 10:30:13 +0000Kaiepi(~Kaiepi@108.175.84.104)
2022-11-16 10:34:53 +0000razetime(~quassel@117.193.2.3) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-11-16 10:43:49 +0000Feuermagier_(~Feuermagi@2a02:2488:4211:3400:6419:933b:46e0:8942) (Quit: Leaving)
2022-11-16 10:45:47 +0000jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 260 seconds)
2022-11-16 10:47:37 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-11-16 10:49:10 +0000chromoblob(~user@37.113.164.122) (Ping timeout: 240 seconds)
2022-11-16 10:49:13 +0000troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-11-16 10:51:45 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-11-16 10:52:52 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-11-16 10:53:19 +0000chromoblob(~user@37.113.164.122)
2022-11-16 10:57:14 +0000foul_owl(~kerry@23.82.194.107) (Ping timeout: 260 seconds)
2022-11-16 11:00:39 +0000razetime(~quassel@117.254.35.168)
2022-11-16 11:03:53 +0000Erutuon(~Erutuon@user/erutuon)
2022-11-16 11:06:34 +0000shailangsa(~shailangs@host109-159-108-137.range109-159.btcentralplus.com) (Ping timeout: 260 seconds)
2022-11-16 11:06:56 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2022-11-16 11:10:21 +0000xff0x(~xff0x@ai071162.d.east.v6connect.net)
2022-11-16 11:10:44 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-11-16 11:11:05 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-11-16 11:12:52 +0000dagit(~dagit@2001:558:6025:38:6476:a063:d05a:44da) (Ping timeout: 252 seconds)
2022-11-16 11:15:39 +0000chromoblob(~user@37.113.164.122) (Ping timeout: 268 seconds)
2022-11-16 11:16:13 +0000foul_owl(~kerry@174-21-75-230.tukw.qwest.net)
2022-11-16 11:20:34 +0000infinity0(~infinity0@pwned.gg) (Remote host closed the connection)
2022-11-16 11:21:37 +0000chromoblob(~user@37.113.164.122)
2022-11-16 11:23:39 +0000infinity0(~infinity0@pwned.gg)
2022-11-16 11:27:43 +0000MajorBiscuit(~MajorBisc@c-001-018-015.client.tudelft.eduvpn.nl) (Ping timeout: 252 seconds)
2022-11-16 11:27:45 +0000mei(~mei@user/mei) (Quit: mei)
2022-11-16 11:29:20 +0000mei(~mei@user/mei)
2022-11-16 11:31:54 +0000MajorBiscuit(~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net)
2022-11-16 11:32:32 +0000cafkafk(~cafkafk@fsf/member/cafkafk)
2022-11-16 11:32:48 +0000cafkafk(~cafkafk@fsf/member/cafkafk) (Client Quit)
2022-11-16 11:33:11 +0000cafkafk(~cafkafk@fsf/member/cafkafk)
2022-11-16 11:33:47 +0000use-value(~Thunderbi@2a00:23c6:8a03:2f01:d5b6:b99f:4049:77a7) (Ping timeout: 256 seconds)
2022-11-16 11:36:22 +0000thyriaen(~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1)
2022-11-16 11:39:13 +0000 <dminuoso> tomsmeding: So I thought a while about your Array/Vector question. Without adding State# RealWorld to the implementation, you could also have parsers produce IO actions that copyBytes into a mutable array buffer.
2022-11-16 11:39:34 +0000 <dminuoso> tomsmeding: However, the problem here is that you must extend the lifetime of the underyling bytestring until that IO action has been executed.
2022-11-16 11:40:15 +0000 <dminuoso> But this could easily be done by a simple unsafePerformIO and some seq usage.
2022-11-16 11:40:21 +0000 <dminuoso> That is, something along the lines of
2022-11-16 11:41:13 +0000 <dminuoso> readThin :: Parser (IO ()); readThing = do { act1 <- readChunk 1024 mutvar; act2 <- readChunk 1024 mutvar; pure (act 1 >> act 2) }
2022-11-16 11:41:45 +0000jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-11-16 11:42:01 +0000 <dminuoso> And then as your final parser do something like `f = do { io <- readThing; pure $! unsafePerformIO io }`
2022-11-16 11:42:29 +0000 <dminuoso> That way you a) dont have to worry about lifetime, and b) you will keep unsafePerformIO isolated into a singular spot, keeping the rest of the parser pure and sane
2022-11-16 11:46:21 +0000azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-11-16 11:46:22 +0000beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt)
2022-11-16 11:46:23 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-11-16 11:47:26 +0000a_troubled_walru(~Thunderbi@210.185.77.16)
2022-11-16 11:47:45 +0000jakalx(~jakalx@base.jakalx.net)
2022-11-16 11:48:06 +0000 <dminuoso> tomsmeding: however, keep in mind that given your specific problem domain, you likely cannot just naively copy buffers into a mutable vector anyway, because a string could have escaped sequences. So you will end up having to peek and poke a byte at a time with a small state machine?
2022-11-16 11:49:29 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-11-16 11:49:44 +0000azimut(~azimut@gateway/tor-sasl/azimut)
2022-11-16 11:51:15 +0000MajorBiscuit(~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net) (Ping timeout: 260 seconds)
2022-11-16 11:53:35 +0000MajorBiscuit(~MajorBisc@86-88-79-148.fixed.kpn.net)
2022-11-16 11:56:53 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2022-11-16 11:57:07 +0000mc47(~mc47@xmonad/TheMC47)
2022-11-16 11:57:47 +0000ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds)
2022-11-16 11:58:53 +0000ec(~ec@gateway/tor-sasl/ec)
2022-11-16 11:59:41 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-11-16 12:05:23 +0000Franciman(~Franciman@mx1.fracta.dev) (Remote host closed the connection)
2022-11-16 12:07:39 +0000azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-11-16 12:08:15 +0000azimut(~azimut@gateway/tor-sasl/azimut)
2022-11-16 12:10:18 +0000stackdroid18(14094@user/stackdroid)
2022-11-16 12:10:21 +0000 <sshine> I saw a package one time about a year ago that was plug-and-play for Megaparsec and provided some nice ASCII rendering around its errors. I think it was a generic framework for making any kind of (syntax?) error look nice.
2022-11-16 12:10:30 +0000 <sshine> does anyone know what package I'm talking about?
2022-11-16 12:10:31 +0000Franciman(~Franciman@mx1.fracta.dev)
2022-11-16 12:13:15 +0000Guest75(~Guest75@178.141.207.13)
2022-11-16 12:14:08 +0000`2jt(~jtomas@191.red-88-17-199.dynamicip.rima-tde.net)
2022-11-16 12:14:51 +0000freeside_(~mengwong@103.252.202.193) (Ping timeout: 268 seconds)
2022-11-16 12:18:28 +0000meooow(~meooow@2400:6180:100:d0::ad9:e001) (Quit: q)
2022-11-16 12:18:46 +0000meooow(~meooow@2400:6180:100:d0::ad9:e001)
2022-11-16 12:20:49 +0000youziqi(~youziqi@103.37.140.123) (Ping timeout: 256 seconds)
2022-11-16 12:22:34 +0000youziqi(~youziqi@103.37.140.124)
2022-11-16 12:25:37 +0000 <dminuoso> tomsmeding: https://gist.github.com/dminuoso/6de513c3e98ba67588957c19ce4eacbd
2022-11-16 12:25:39 +0000 <dminuoso> Maybe this?
2022-11-16 12:25:52 +0000CiaoSen(~Jura@p200300c95701f1002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-11-16 12:26:24 +0000freeside(~mengwong@103.252.202.193)
2022-11-16 12:27:24 +0000 <sshine> diagnose!
2022-11-16 12:28:31 +0000Guest75(~Guest75@178.141.207.13) (Quit: Client closed)
2022-11-16 12:30:11 +0000InstX1(~Liam@c-98-208-218-119.hsd1.fl.comcast.net)
2022-11-16 12:31:14 +0000 <dminuoso> You havent lived until you pattern match on an IO without hesitation.
2022-11-16 12:31:30 +0000freeside(~mengwong@103.252.202.193) (Ping timeout: 268 seconds)
2022-11-16 12:33:01 +0000mmhat(~mmh@p200300f1c7050c1bee086bfffe095315.dip0.t-ipconnect.de)
2022-11-16 12:33:24 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-11-16 12:33:40 +0000bitdex_(~bitdex@gateway/tor-sasl/bitdex)
2022-11-16 12:33:51 +0000 <lortabac> haha I only had to match on IO once because I had no choice and it was perfectly safe (all I did was newtype wrapping/unwrapping)
2022-11-16 12:34:22 +0000 <lortabac> outside of that very limited case I wouldn't dare :s
2022-11-16 12:34:30 +0000chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2022-11-16 12:34:37 +0000azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-11-16 12:35:14 +0000InstX1(~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 260 seconds)
2022-11-16 12:35:45 +0000ubert1(~Thunderbi@178.165.179.251.wireless.dyn.drei.com)
2022-11-16 12:36:07 +0000azimut(~azimut@gateway/tor-sasl/azimut)
2022-11-16 12:37:08 +0000`2jt(~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) (Ping timeout: 248 seconds)
2022-11-16 12:38:09 +0000ubert(~Thunderbi@178.165.179.251.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
2022-11-16 12:38:09 +0000ubert1ubert
2022-11-16 12:38:42 +0000lortabac_(~lortabac@37.170.202.252)
2022-11-16 12:38:44 +0000chexum(~quassel@gateway/tor-sasl/chexum)
2022-11-16 12:39:03 +0000lortabac_(~lortabac@37.170.202.252) (Client Quit)
2022-11-16 12:39:10 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:2667:3554:7507:27aa) (Ping timeout: 240 seconds)
2022-11-16 12:39:20 +0000lortabac(~lortabac@37.170.202.252)
2022-11-16 12:45:40 +0000lyle(~lyle@104.246.145.85)
2022-11-16 12:50:30 +0000lortabac(~lortabac@37.170.202.252) (Ping timeout: 240 seconds)
2022-11-16 12:51:50 +0000akegalj(~akegalj@93-142-168-177.adsl.net.t-com.hr) (Quit: leaving)
2022-11-16 12:53:32 +0000Feuermagier_(~Feuermagi@87.249.132.146)
2022-11-16 12:53:39 +0000youziqi(~youziqi@103.37.140.124) (Ping timeout: 260 seconds)
2022-11-16 12:53:56 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-11-16 12:56:35 +0000Feuermagier(~Feuermagi@user/feuermagier) (Ping timeout: 260 seconds)
2022-11-16 12:56:42 +0000youziqi(~youziqi@103.37.140.45)
2022-11-16 12:57:30 +0000acidjnk(~acidjnk@p200300d6e7137a79b1807064f1abc0ef.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-11-16 12:58:13 +0000mc47(~mc47@xmonad/TheMC47) (Ping timeout: 256 seconds)
2022-11-16 12:59:38 +0000freeside(~mengwong@103.252.202.193)
2022-11-16 13:00:26 +0000raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-11-16 13:00:42 +0000ozkutuk5(~ozkutuk@176.240.173.153)
2022-11-16 13:01:46 +0000`2jt(~jtomas@191.red-88-17-199.dynamicip.rima-tde.net)
2022-11-16 13:04:23 +0000Erutuon(~Erutuon@user/erutuon) (Ping timeout: 260 seconds)
2022-11-16 13:06:10 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-11-16 13:07:15 +0000ub(~Thunderbi@178.165.179.251.wireless.dyn.drei.com)
2022-11-16 13:07:19 +0000chromoblob(~user@37.113.164.122) (Ping timeout: 260 seconds)
2022-11-16 13:08:45 +0000fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-11-16 13:11:41 +0000acidjnk(~acidjnk@p200300d6e7137a8274644e28d572a0cd.dip0.t-ipconnect.de)
2022-11-16 13:12:25 +0000bitdex_(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-11-16 13:13:29 +0000bitdex_(~bitdex@gateway/tor-sasl/bitdex)
2022-11-16 13:13:32 +0000a_troubled_walru(~Thunderbi@210.185.77.16) (Quit: a_troubled_walru)
2022-11-16 13:14:08 +0000 <dminuoso> tomsmeding: Im starting to like this, actually. https://gist.github.com/dminuoso/6de513c3e98ba67588957c19ce4eacbd#file-f-hs-L68-L79
2022-11-16 13:14:12 +0000 <dminuoso> I should upstream this
2022-11-16 13:17:57 +0000chromoblob(~user@37.113.164.122)
2022-11-16 13:20:25 +0000hgolden(~hgolden@cpe-172-251-233-141.socal.res.rr.com)
2022-11-16 13:22:30 +0000dsrt^(~dsrt@76.145.185.103) (Remote host closed the connection)
2022-11-16 13:23:31 +0000razetime(~quassel@117.254.35.168) (Ping timeout: 260 seconds)
2022-11-16 13:24:27 +0000bitdex_(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-11-16 13:25:31 +0000 <[exa]> dminuoso: ok wow
2022-11-16 13:26:25 +0000bitdex_(~bitdex@gateway/tor-sasl/bitdex)
2022-11-16 13:27:05 +0000 <carbolymer> when I input a block of code in GHCi with :{ :}, how can I navigate between lines, e.g. go to line up? arrow up seems to go back in history instead
2022-11-16 13:27:27 +0000 <dminuoso> carbolymer: I dont think you can.
2022-11-16 13:27:33 +0000 <carbolymer> :|
2022-11-16 13:27:44 +0000 <carbolymer> I should setup ihaskell one day
2022-11-16 13:27:48 +0000 <carbolymer> with jupyter
2022-11-16 13:28:36 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-11-16 13:32:29 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-16 13:36:14 +0000cafkafkjust uses org-babel
2022-11-16 13:37:22 +0000razetime(~quassel@117.254.35.168)
2022-11-16 13:38:27 +0000troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 256 seconds)
2022-11-16 13:39:56 +0000ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds)
2022-11-16 13:41:10 +0000ec(~ec@gateway/tor-sasl/ec)
2022-11-16 13:44:23 +0000moonsheep(~user@user/moonsheep)
2022-11-16 13:44:37 +0000moonsheep(~user@user/moonsheep) ()
2022-11-16 13:45:36 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:f467:abff:e567:955f)
2022-11-16 13:47:35 +0000cafkafk(~cafkafk@fsf/member/cafkafk) (Ping timeout: 255 seconds)
2022-11-16 13:48:29 +0000cafkafk(~cafkafk@fsf/member/cafkafk)
2022-11-16 13:50:07 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:f467:abff:e567:955f) (Ping timeout: 260 seconds)
2022-11-16 13:51:37 +0000zeenk(~zeenk@2a02:2f04:a208:3600::7fe)
2022-11-16 13:52:05 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:e456:ad2e:a3ee:4a31)
2022-11-16 13:52:32 +0000azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2022-11-16 13:54:43 +0000stiell(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2022-11-16 13:54:48 +0000bitdex_(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-11-16 13:55:44 +0000azimut(~azimut@gateway/tor-sasl/azimut)
2022-11-16 13:56:32 +0000bitdex_(~bitdex@gateway/tor-sasl/bitdex)
2022-11-16 13:56:39 +0000stiell(~stiell@gateway/tor-sasl/stiell)
2022-11-16 13:56:51 +0000causal(~user@50.35.83.177)
2022-11-16 13:56:59 +0000 <jean-paul[m]> Why would you pattern match on IO? And also how
2022-11-16 13:57:44 +0000cafkafk(~cafkafk@fsf/member/cafkafk) (Quit: WeeChat 3.6)
2022-11-16 13:57:51 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-11-16 13:58:23 +0000chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 255 seconds)
2022-11-16 13:59:26 +0000chexum(~quassel@gateway/tor-sasl/chexum)
2022-11-16 14:00:19 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-11-16 14:00:32 +0000 <lortabac> jean-paul[m]: I'd say 99.99% of the time you don't need to know what's inside IO
2022-11-16 14:01:06 +0000 <jean-paul[m]> lortabac: For me it is 100% so far.
2022-11-16 14:01:24 +0000irrgit_(~irrgit@146.70.27.250)
2022-11-16 14:01:40 +0000 <jean-paul[m]> But that 0.001% sounds like it might be fun stuff
2022-11-16 14:02:08 +0000 <lortabac> in my case I was implementing an interpreter and "piggybacking" on Haskell's IO mechanism to implement the IO of the object language
2022-11-16 14:02:08 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-11-16 14:03:02 +0000 <lortabac> IIRC I had a newtype over IO, and I needed to replicate the same monadic behavior
2022-11-16 14:03:34 +0000 <lortabac> I don't remember the exact details, but at some point I was obliged to look inside the IO constructor
2022-11-16 14:04:39 +0000 <lortabac> very simple stuff, compared to what dminuoso is doing :D
2022-11-16 14:04:43 +0000 <jean-paul[m]> Oh. And the IO constructor is just ... exposed. So it's not even that hard to look inside if you feel like it. I never thought to look.
2022-11-16 14:05:15 +0000stiell(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2022-11-16 14:05:58 +0000stiell(~stiell@gateway/tor-sasl/stiell)
2022-11-16 14:06:04 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-11-16 14:07:05 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-11-16 14:08:42 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-11-16 14:09:36 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-11-16 14:13:36 +0000 <probie> whatever happened to Arrows? They seemed to have a brief surge in popularity back in 2010? 2011? and then died out
2022-11-16 14:16:55 +0000 <probie> (context: last time I directly pattern matched on IO, it was in an attempt to replace the "IO Monad" with the "IO Arrow" without just directly using `Kleisli IO`)
2022-11-16 14:18:23 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-16 14:18:55 +0000 <dminuoso> probie: Arrow has been superseeded by Applicative, Monad and Profunctor.
2022-11-16 14:19:05 +0000Feuermagier_(~Feuermagi@87.249.132.146) (Quit: Leaving)
2022-11-16 14:19:15 +0000Feuermagier(~Feuermagi@user/feuermagier)
2022-11-16 14:19:59 +0000 <dminuoso> And Category I suppose
2022-11-16 14:20:34 +0000 <dminuoso> I think the only arrow-type of interfaces still left around are in FRP
2022-11-16 14:21:01 +0000 <dminuoso> jean-paul[m]: So the reason here is quite simple: I want guaranteed unboxing.
2022-11-16 14:21:29 +0000 <dminuoso> jean-paul[m]: In flatparse, you have `newtype Parser e a = Parser {runParser# :: ForeignPtrContents -> Addr# -> Addr# -> Res# e a}`
2022-11-16 14:21:51 +0000 <dminuoso> Where `type Res# e a = (# (# a, Addr# #) | (# #) | (# e #) #)`
2022-11-16 14:23:09 +0000 <probie> dminuoso: Profunctor isn't in base though
2022-11-16 14:23:09 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds)
2022-11-16 14:23:15 +0000fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds)
2022-11-16 14:24:00 +0000 <dminuoso> probie: Yes, but things that want that kind of interface can simply depend on `profunctors`
2022-11-16 14:24:23 +0000stiell(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2022-11-16 14:25:17 +0000 <dminuoso> So here comes the issue: When you want IOful parsers, you would have to conjure some kind of `newtype ParserIO e a = Parser {runParser# :: ForeignPtrContents -> Addr# -> Addr# -> IO (Res# e a) }` - however that wont type check as IO only works over boxed types.
2022-11-16 14:25:37 +0000 <tomsmeding> dminuoso: hi
2022-11-16 14:25:40 +0000 <dminuoso> jean-paul[m]: ^- so what you can simply do, is take IO apart, and weave the State# passing mechanism inside into the Parser function itself
2022-11-16 14:25:55 +0000stiell(~stiell@gateway/tor-sasl/stiell)
2022-11-16 14:26:06 +0000 <tomsmeding> dminuoso: before reading your code, building up a huge thunk of IO actions seems not any better than just building the intermediate list?
2022-11-16 14:26:23 +0000 <tomsmeding> ("thunk" is not the right word here, excuse me)
2022-11-16 14:26:24 +0000 <dminuoso> tomsmeding: why would there be a *thunk*?
2022-11-16 14:26:29 +0000 <tomsmeding> yeah no thunk
2022-11-16 14:26:40 +0000 <tomsmeding> but a large chain of closures referring to each other
2022-11-16 14:26:40 +0000 <dminuoso> But yeah, you will have a lot of closure allocations
2022-11-16 14:26:55 +0000 <dminuoso> tomsmeding: Therefore, let me introduce you to my final idea: ParserIO
2022-11-16 14:26:59 +0000 <tomsmeding> indeed, one for every (:) in the naive version where you make the intermediate list :p
2022-11-16 14:27:01 +0000 <tomsmeding> i.e. doesn't help
2022-11-16 14:27:08 +0000 <dminuoso> https://gist.github.com/dminuoso/6de513c3e98ba67588957c19ce4eacbd
2022-11-16 14:27:09 +0000 <tomsmeding> (I assume)
2022-11-16 14:27:15 +0000AdamConner-Sax[m(~adamcsmat@2001:470:69fc:105::1:e2c8)
2022-11-16 14:27:34 +0000 <dminuoso> Ah there's some copy paste bugs left in there, let me fix them real quick
2022-11-16 14:27:39 +0000 <tomsmeding> ah this is sortof similar-ish to 'ParserT IO'?
2022-11-16 14:27:50 +0000 <dminuoso> Yeah
2022-11-16 14:28:39 +0000 <dminuoso> None of it is tested, but Im confident this will work.
2022-11-16 14:29:17 +0000 <dminuoso> (Should I mention I originally did have a bug making unsafeParserIO really an accursedUnutterableParserIO?)
2022-11-16 14:29:56 +0000 <tomsmeding> dminuoso: why isthat unsafeCoerce# not unsafeCoerce
2022-11-16 14:30:22 +0000 <dminuoso> Because these are unboxed tuples?
2022-11-16 14:30:30 +0000 <tomsmeding> oh wait yes
2022-11-16 14:30:49 +0000 <dminuoso> Those functor/applicative/monad instances are just boiler-plate copy and paste
2022-11-16 14:31:06 +0000 <dminuoso> The neat stuff begins at line 51
2022-11-16 14:32:14 +0000 <tomsmeding> I don't know enough about the IO implementation internals to say anything about the duplication :p
2022-11-16 14:32:33 +0000InstX1(~Liam@c-98-208-218-119.hsd1.fl.comcast.net)
2022-11-16 14:32:38 +0000 <dminuoso> tomsmeding: its really mundane, its just a direct mapping to how unsafePerformIO is implemented
2022-11-16 14:32:52 +0000stackdroid18(14094@user/stackdroid) (Quit: hasta la vista... tchau!)
2022-11-16 14:32:53 +0000 <tomsmeding> yeah I've looked through those definitions at some point
2022-11-16 14:32:55 +0000 <dminuoso> `noDuplicate# (s :: State# a)` is a kind of lock
2022-11-16 14:33:04 +0000 <dminuoso> (think of it as acquiring a kind of mutex)
2022-11-16 14:33:15 +0000 <dminuoso> and never releasing it
2022-11-16 14:33:16 +0000 <tomsmeding> oh that no two threads evaluate that thunk simultaneously?
2022-11-16 14:33:18 +0000 <dminuoso> yes
2022-11-16 14:33:28 +0000 <dminuoso> noDuplicate = IO $ \s -> case noDuplicate# s of s' -> (# s', () #)
2022-11-16 14:33:33 +0000 <dminuoso> unsafePerformIO m = unsafeDupablePerformIO (noDuplicate >> m)
2022-11-16 14:34:36 +0000 <dminuoso> The entire construction of ParserIO is really harmless
2022-11-16 14:34:53 +0000 <tomsmeding> looks cool
2022-11-16 14:35:20 +0000 <tomsmeding> I imagine you don't want to create yet another (third?) copy of the parser implementation in flatparse :p
2022-11-16 14:35:23 +0000 <fendor[m]> Another question for understanding kinds and types... what does it mean if I give a class a kind signature like here: https://paste.tomsmeding.com/evYyAyYj
2022-11-16 14:35:27 +0000 <fendor[m]> That the class can only have instances for [AccessLevel]?
2022-11-16 14:35:34 +0000 <dminuoso> tomsmeding: Not needed, because you can just liftP all the Basic combinators in
2022-11-16 14:35:47 +0000 <tomsmeding> fendor[m]: I guess this is easily tried :)
2022-11-16 14:35:53 +0000 <dminuoso> And no stateful variant is needed, because I think this subsumes Stateful
2022-11-16 14:35:57 +0000 <tomsmeding> seems the only sensible interpretation
2022-11-16 14:36:06 +0000 <tomsmeding> dminuoso: ah right
2022-11-16 14:36:08 +0000 <tomsmeding> yeah
2022-11-16 14:36:30 +0000 <tomsmeding> you'd want to {-# INLINE liftP #-} then though
2022-11-16 14:36:38 +0000 <dminuoso> tomsmeding: only problem is going to be thing with Parser in negative position. Mmm
2022-11-16 14:36:44 +0000 <fendor[m]> tomsmeding: fair, that's what it means apparently
2022-11-16 14:36:44 +0000 <tomsmeding> or maybe rather, ensure that the argument to liftP is going to be inlined?
2022-11-16 14:37:02 +0000 <dminuoso> so we need a kind of askUnliftIO variant for ParserIO
2022-11-16 14:37:23 +0000InstX1(~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 256 seconds)
2022-11-16 14:37:40 +0000 <fendor[m]> but [AccessLevel] is not fundamentally different to Type, right?
2022-11-16 14:37:47 +0000tomsmedingis not sure that even makes much sense for ParserIO
2022-11-16 14:37:52 +0000 <dminuoso> Ahh but no, it wont work because of that stateful address. :(
2022-11-16 14:37:54 +0000 <tomsmeding> fendor[m]: well, it's a different kind
2022-11-16 14:38:01 +0000 <dminuoso> tomsmeding: it absolutely would!
2022-11-16 14:38:23 +0000 <dminuoso> tomsmeding: otherwise you couldnt make full use of things like `withByteString :: Parser r e a -> (a -> ByteString -> Parser r e b) -> Parser r e b
2022-11-16 14:38:31 +0000CiaoSen(~Jura@p200300c95701f1002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2022-11-16 14:38:47 +0000 <fendor[m]> I don't quite grasp what that entails. Is Type not some kind of super type of [AccessLevel]?
2022-11-16 14:38:49 +0000 <dminuoso> liftP $ withByteString (\a buf -> ???)
2022-11-16 14:39:11 +0000 <tomsmeding> fendor[m]: 4 is a value of type Int, which is of kind Type; 'True is a type of kind 'Bool
2022-11-16 14:39:17 +0000 <dminuoso> And how do you parse an IOful parser to withByteString?
2022-11-16 14:39:20 +0000 <tomsmeding> Type and '['AccessLevel] are kinds
2022-11-16 14:39:51 +0000 <tomsmeding> though ghc has this type-in-type thing where types and kinds are secretly the same, so if you're asking about that then yes there is some tomfoolery going on
2022-11-16 14:39:55 +0000 <tomsmeding> but apart from that, no
2022-11-16 14:39:58 +0000 <dminuoso> tomsmeding: anyway, we *could* make an askUnliftIO thing, but this has a drastic price - namely that will interact subtly broken with respect to backtracking.
2022-11-16 14:40:25 +0000 <tomsmeding> dminuoso: that sounds too scary to be admissible
2022-11-16 14:40:40 +0000 <fendor[m]> I am very much confused 😄 'True is a promoted type constructor no?
2022-11-16 14:40:41 +0000 <dminuoso> yeah, so I guess if you want this, you can no longer use any of the CPS things
2022-11-16 14:40:47 +0000 <tomsmeding> fendor[m]: yes as in DataKinds
2022-11-16 14:41:03 +0000 <tomsmeding> fendor[m]: your code would trigger -Wunticked-promoted-constructors if I'm not mistaken
2022-11-16 14:41:17 +0000 <fendor[m]> not with ghc 9.4 where it is encouraged
2022-11-16 14:41:25 +0000 <tomsmeding> dminuoso: unless they are reimplemented, right?
2022-11-16 14:41:32 +0000 <dminuoso> tomsmeding: right.
2022-11-16 14:41:47 +0000 <tomsmeding> fendor[m]: okay sure, but still, the fact that it _would_ is useful information here :p
2022-11-16 14:42:15 +0000 <geekosaur> 'True is a promoted data constructor
2022-11-16 14:42:21 +0000 <dminuoso> but honestly its a non-issue. If you're in a spot where you *rely* on the performance advantage of the CPS version and *need* IO (you know, the 0 people out there currently), you are equipped to just rewrite this combinator yourself on the spot
2022-11-16 14:42:31 +0000 <tomsmeding> dminuoso: :D
2022-11-16 14:42:34 +0000 <geekosaur> 'Bool is a promoted type constructor
2022-11-16 14:43:09 +0000 <dminuoso> geekosaur: mmm. I think the wording is poor either way.
2022-11-16 14:43:25 +0000 <dminuoso> that is does "promoted type constructor" mean the resulting thing is a type, or that the original thing is a type?
2022-11-16 14:44:16 +0000 <dminuoso> The GHC manual wording suggest calling 'True a promoted type constructor is fine.
2022-11-16 14:44:26 +0000 <tomsmeding> dminuoso: curious how much the RealWorld passing influences performance
2022-11-16 14:44:37 +0000 <dminuoso> tomsmeding: honestly probably not much at all.
2022-11-16 14:44:54 +0000 <fendor[m]> what is the difference between a promoted data constructor and a promoted type constructor?
2022-11-16 14:45:02 +0000mvk(~mvk@2607:fea8:5ce3:8500::4b68)
2022-11-16 14:45:10 +0000 <dminuoso> tomsmeding: if it inlined+fused before, it will still inline+fuse (because State# RealWorld does not exist)
2022-11-16 14:45:19 +0000 <dminuoso> if there's any penalty Im tempted to consider a GHC simplifier bug
2022-11-16 14:45:36 +0000 <tomsmeding> yay
2022-11-16 14:45:43 +0000jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff)
2022-11-16 14:45:45 +0000 <dminuoso> because consider: we do have that Addr# threading that is in the way of the GHC simplifier
2022-11-16 14:45:51 +0000 <dminuoso> so you cant just freely reorder things
2022-11-16 14:46:10 +0000 <tomsmeding> fendor[m]: True/Just are data constructors, Bool/Maybe are type constructors
2022-11-16 14:46:17 +0000 <fendor[m]> yeah
2022-11-16 14:46:29 +0000 <tomsmeding> lifting True to the type level using DataKinds makes it a type constructor
2022-11-16 14:47:04 +0000 <tomsmeding> so is 'True then a type constructor resulting from promotion (a "promoted type constructor"), or a promoted (data constructor) ("promoted data constructor")?
2022-11-16 14:47:10 +0000 <tomsmeding> but terminology
2022-11-16 14:47:31 +0000acidjnk(~acidjnk@p200300d6e7137a8274644e28d572a0cd.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-11-16 14:47:41 +0000 <tomsmeding> but yeah, so [AccessList] :: Type, but '['AccessList] is itself a kind
2022-11-16 14:47:54 +0000 <dminuoso> The GHC uses phrases like `promoting a data constructor into a type`, "promoted type constructor" reads ambiguous to me
2022-11-16 14:47:58 +0000 <tomsmeding> which is again of """kind""" Type in ghc because the hierarchy is forcibly flattened
2022-11-16 14:48:22 +0000 <dminuoso> I would actually understand `promoted type constructor` to mean `a type constructor resulting from promotion` just from the English side of it
2022-11-16 14:48:26 +0000 <tomsmeding> in a dependently-typed language with universe levels, you have values that have types that have kinds that have sorts that have... ad infinitum
2022-11-16 14:48:35 +0000 <tomsmeding> and then '['AccessLevel] would not be in Type
2022-11-16 14:48:46 +0000 <tomsmeding> dminuoso: I would read the opposite :p
2022-11-16 14:48:51 +0000 <tomsmeding> so it's a bad phrase
2022-11-16 14:49:14 +0000 <geekosaur> as a native English speaker I find ghc's usage of it pretty obvious
2022-11-16 14:49:31 +0000 <geekosaur> but ewhen it comes down to it, this needs to be described in some kind of formal language
2022-11-16 14:49:49 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2022-11-16 14:49:50 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2022-11-16 14:49:50 +0000wroathe(~wroathe@user/wroathe)
2022-11-16 14:49:56 +0000 <dminuoso> does GHC use the phrase "promoted data constructor" anywhere?
2022-11-16 14:49:58 +0000 <geekosaur> natural language, especially English (way too flexible!), kinda sucks for this kind of thing
2022-11-16 14:50:12 +0000 <fendor[m]> but if I am not mistaken, '['AccessLevel] /~ ['AccessLevel]?
2022-11-16 14:50:25 +0000 <dminuoso> fendor[m]: correct.
2022-11-16 14:51:00 +0000 <dminuoso> Though ['AccessLevel] is ill-typed
2022-11-16 14:51:12 +0000 <dminuoso> % :k []
2022-11-16 14:51:12 +0000 <yahb2> [] :: * -> *
2022-11-16 14:51:34 +0000 <dminuoso> (So Im not entirely sure whether asking whether two types are equal when one is ill-typed is sensible at all)
2022-11-16 14:51:57 +0000 <geekosaur> doesn't ghc read that as '['AccessLevel] because it can't mean anything else? (which is kinda Englishing it)
2022-11-16 14:52:05 +0000mastarija(~mastarija@2a05:4f46:e03:6000:bd1:38d3:bfb:8169) (Ping timeout: 260 seconds)
2022-11-16 14:52:25 +0000 <dminuoso> % :set -XDataKinds
2022-11-16 14:52:25 +0000 <yahb2> <no output>
2022-11-16 14:52:31 +0000 <fendor[m]> then I am confused again what `type AcceptableList :: [AccessLevel] -> [AccessLevel] -> [AccessLevel] -> Constraint` means, if '[AccessLevel]' is supposed to be a kind?
2022-11-16 14:52:42 +0000 <tomsmeding> fendor[m]: Type and Constraint are also kinds
2022-11-16 14:52:42 +0000 <dminuoso> % data AccessLevel = N | R | X
2022-11-16 14:52:42 +0000 <yahb2> <no output>
2022-11-16 14:52:49 +0000 <dminuoso> % :k ['AccessLevel]
2022-11-16 14:52:49 +0000 <fendor[m]> well, no it isn't, it is a type of some kind
2022-11-16 14:52:49 +0000 <yahb2> <interactive>:1:2: error: ; Not in scope: data constructor ‘AccessLevel’ ; Perhaps you meant variable ‘$tcAccessLevel’ (<no location info>)
2022-11-16 14:53:01 +0000 <dminuoso> Huh what?
2022-11-16 14:53:17 +0000 <tomsmeding> % :k '['AccessLevel]
2022-11-16 14:53:17 +0000 <yahb2> <interactive>:1:15: error: parse error on input ‘]’
2022-11-16 14:53:22 +0000 <tomsmeding> % :k '[ 'AccessLevel]
2022-11-16 14:53:22 +0000 <yahb2> <interactive>:1:4: error: ; Not in scope: data constructor ‘AccessLevel’ ; Perhaps you meant variable ‘$tcAccessLevel’ (<no location info>)
2022-11-16 14:53:31 +0000tomsmedingconfused
2022-11-16 14:53:32 +0000 <dminuoso> % :k 'AccessLevel
2022-11-16 14:53:33 +0000 <yahb2> <interactive>:1:1: error: ; Not in scope: data constructor ‘AccessLevel’ ; Perhaps you meant variable ‘$tcAccessLevel’ (<no location info>)
2022-11-16 14:53:34 +0000shriekingnoise(~shrieking@186.137.167.202)
2022-11-16 14:53:36 +0000acidjnk(~acidjnk@p200300d6e7137a8274644e28d572a0cd.dip0.t-ipconnect.de)
2022-11-16 14:53:38 +0000 <dminuoso> Maybe someone killed yahb in between?
2022-11-16 14:53:38 +0000 <tomsmeding> % :k AccessLevel
2022-11-16 14:53:38 +0000 <yahb2> AccessLevel :: *
2022-11-16 14:53:48 +0000 <dminuoso> Oh maybe :k is just magically broken
2022-11-16 14:53:48 +0000 <tomsmeding> % '[Int]
2022-11-16 14:53:48 +0000 <yahb2> <interactive>:76:3: error: parse error on input ‘Int’
2022-11-16 14:53:52 +0000 <tomsmeding> % :k '[Int]
2022-11-16 14:53:52 +0000 <yahb2> '[Int] :: [*]
2022-11-16 14:53:54 +0000 <dminuoso> % :kind! 'AccessLevel
2022-11-16 14:53:54 +0000 <yahb2> <interactive>:1:1: error: ; Not in scope: data constructor ‘AccessLevel’ ; Perhaps you meant variable ‘$tcAccessLevel’ (<no location info>)
2022-11-16 14:54:06 +0000 <dminuoso> What's going on here?
2022-11-16 14:54:24 +0000 <dminuoso> Ah..
2022-11-16 14:54:33 +0000 <dminuoso> % :kind! AccessLevel
2022-11-16 14:54:34 +0000 <yahb2> AccessLevel :: * ; = AccessLevel
2022-11-16 14:54:54 +0000 <dminuoso> % :t (undefined :: ['AccessLevel])
2022-11-16 14:54:54 +0000 <yahb2> <interactive>:1:16: error: ; Not in scope: data constructor ‘AccessLevel’ ; Perhaps you meant variable ‘$tcAccessLevel’ (<no location info>)
2022-11-16 14:55:14 +0000 <dminuoso> % :set -XTypeInType
2022-11-16 14:55:14 +0000 <yahb2> <no output>
2022-11-16 14:55:17 +0000 <dminuoso> % :t (undefined :: ['AccessLevel])
2022-11-16 14:55:17 +0000 <yahb2> <interactive>:1:16: error: ; Not in scope: data constructor ‘AccessLevel’ ; Perhaps you meant variable ‘$tcAccessLevel’ (<no location info>)
2022-11-16 14:55:17 +0000 <tomsmeding> % :t (undefined :: ['Int])
2022-11-16 14:55:18 +0000 <yahb2> <interactive>:1:16: error: Not in scope: data constructor ‘Int’
2022-11-16 14:55:29 +0000 <dminuoso> There's some really strange scoping rules
2022-11-16 14:55:29 +0000 <tomsmeding> yeah this makes sense
2022-11-16 14:55:33 +0000 <tomsmeding> here we're writing a type
2022-11-16 14:55:40 +0000 <dminuoso> 'AccessLevel is a type too.
2022-11-16 14:55:45 +0000 <tomsmeding> no
2022-11-16 14:55:48 +0000 <dminuoso> TypeInType.
2022-11-16 14:55:48 +0000 <tomsmeding> 'N is is a type
2022-11-16 14:55:51 +0000 <tomsmeding> 'AccessLevel is a kind
2022-11-16 14:55:52 +0000 <tomsmeding> oh
2022-11-16 14:56:16 +0000 <tomsmeding> ghc is complaining that it wants a _data constructor_ AccessLevel
2022-11-16 14:56:35 +0000 <dminuoso> Oh hold on.
2022-11-16 14:56:39 +0000 <dminuoso> I see what's going ong.
2022-11-16 14:56:52 +0000 <dminuoso> The tick is asking for the *promoted* type constructor from a data constructor.
2022-11-16 14:56:58 +0000 <dminuoso> But AccessLevel is not a data constructor.
2022-11-16 14:57:10 +0000 <tomsmeding> % :k '[Int]
2022-11-16 14:57:10 +0000 <yahb2> '[Int] :: [*]
2022-11-16 14:57:13 +0000 <tomsmeding> % :k '[AccessLevel]
2022-11-16 14:57:13 +0000 <yahb2> '[AccessLevel] :: [*]
2022-11-16 14:57:15 +0000 <tomsmeding> wa
2022-11-16 14:57:21 +0000 <dminuoso> How do we even resolve this ambiguity here?
2022-11-16 14:57:49 +0000 <tomsmeding> % :k (t :: '[AccessLevel])
2022-11-16 14:57:49 +0000 <yahb2> <interactive>:1:2: error: Not in scope: type variable ‘t’
2022-11-16 14:57:53 +0000 <dminuoso> % :k 'N
2022-11-16 14:57:53 +0000 <yahb2> 'N :: AccessLevel
2022-11-16 14:57:57 +0000 <dminuoso> Is this the same type as:
2022-11-16 14:58:02 +0000 <tomsmeding> % :k forall (t :: '[AccessLevel]). t
2022-11-16 14:58:02 +0000 <yahb2> <interactive>:1:14: error: ; • Expected a type, but ‘'[AccessLevel]’ has kind ‘[*]’ ; • In the kind ‘'[AccessLevel]’ ; In the type ‘forall (t :: '[AccessLevel]). t’
2022-11-16 14:58:04 +0000 <dminuoso> [AccessLevel]?
2022-11-16 14:58:08 +0000 <tomsmeding> % :k forall (t :: '[AccessLevel]). Proxy t
2022-11-16 14:58:08 +0000 <yahb2> <interactive>:1:31: error: ; Not in scope: type constructor or class ‘Proxy’ ; Perhaps you meant ‘Proxy#’ (imported from GHC.Prim)
2022-11-16 14:58:12 +0000 <tomsmeding> $ import Data.Proxy
2022-11-16 14:58:14 +0000 <tomsmeding> % import Data.Proxy
2022-11-16 14:58:14 +0000 <yahb2> <no output>
2022-11-16 14:58:18 +0000 <tomsmeding> % :k forall (t :: '[AccessLevel]). Proxy t
2022-11-16 14:58:18 +0000 <yahb2> <interactive>:1:14: error: ; • Expected a type, but ‘'[AccessLevel]’ has kind ‘[*]’ ; • In the kind ‘'[AccessLevel]’ ; In the type ‘forall (t :: '[AccessLevel]). Proxy t’
2022-11-16 14:58:52 +0000 <dminuoso> okay I think I begin to understand how things fit together here
2022-11-16 14:59:17 +0000 <dminuoso> So `AccessLevel` even before DataKinds is already a type constructor. DataKinds does not introduce a new type constructor
2022-11-16 14:59:25 +0000 <dminuoso> At least not for AccessLevel
2022-11-16 14:59:31 +0000 <dminuoso> So in some strange way:\
2022-11-16 14:59:39 +0000wroathe(~wroathe@user/wroathe) (Ping timeout: 260 seconds)
2022-11-16 14:59:48 +0000 <kronicmage> anyone know how to use saltine secretbox w/ a preexisting key?
2022-11-16 14:59:50 +0000 <dminuoso> N :: AccessLevel
2022-11-16 14:59:51 +0000 <dminuoso> 'N :: AccessLevel
2022-11-16 14:59:59 +0000 <kronicmage> trying to decrypt something with it but the library doesn't let me construct the Key type
2022-11-16 15:00:00 +0000 <tomsmeding> dminuoso: I would expect that 'N :: 'AccessLevel
2022-11-16 15:00:01 +0000 <dminuoso> And I think this is the same type (type id?) @ tomsmeding
2022-11-16 15:00:19 +0000 <dminuoso> some really strange crossing of universes
2022-11-16 15:00:28 +0000 <tomsmeding> dminuoso: but we're failing to put this in a context where we must put a kind
2022-11-16 15:00:33 +0000 <tomsmeding> ':k' expects a type
2022-11-16 15:00:37 +0000 <dminuoso> (So AccessLevel is inhabited by both types and values)
2022-11-16 15:00:45 +0000 <tomsmeding> '[ 'AccessLevel] is supposed to be a _kind_
2022-11-16 15:00:47 +0000 <dminuoso> tomsmeding: No!
2022-11-16 15:00:55 +0000 <dminuoso> tomsmeding: 'AccessLevel does not exist.
2022-11-16 15:01:15 +0000 <dminuoso> Ticked type constructors arise from promoting the similarly named *data* constructors.
2022-11-16 15:01:19 +0000 <dminuoso> But no AccessLevel data constructor exists.
2022-11-16 15:01:37 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-11-16 15:02:19 +0000 <dminuoso> The really problematic part is this phrase in the GHC manual
2022-11-16 15:02:25 +0000 <dminuoso> `With DataKinds, GHC automatically promotes every datatype to be a kind and its (value) constructors to be type constructors. The following types`
2022-11-16 15:02:30 +0000 <dminuoso> In TypeInType, this makes no sense.
2022-11-16 15:02:38 +0000 <dminuoso> Because its a noop
2022-11-16 15:02:40 +0000 <tomsmeding> isn't TypeInType the default
2022-11-16 15:02:43 +0000 <dminuoso> Yes! Thats the point
2022-11-16 15:02:50 +0000 <dminuoso> So AccessLevel already is a kind
2022-11-16 15:02:54 +0000 <dminuoso> because kind is just type
2022-11-16 15:02:57 +0000waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-11-16 15:02:58 +0000 <dminuoso> Nothing gets created
2022-11-16 15:03:08 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-11-16 15:03:22 +0000 <tomsmeding> my life is a lie
2022-11-16 15:03:26 +0000 <dminuoso> So like I said:
2022-11-16 15:03:31 +0000 <dminuoso> N :: AccessLevel
2022-11-16 15:03:33 +0000 <dminuoso> 'N :: AccessLevel
2022-11-16 15:03:33 +0000 <tomsmeding> I thought that ' promoted data constructs to type constructors and type constructors to kind constructors
2022-11-16 15:03:34 +0000 <dminuoso> This describes it best
2022-11-16 15:03:39 +0000 <tomsmeding> but the latter is apparently incorrect
2022-11-16 15:03:43 +0000 <dminuoso> (thats some mindblowing revelation)
2022-11-16 15:03:47 +0000 <tomsmeding> so if you -XNoTypeInType, one cannot write the AccessLevel kind?
2022-11-16 15:03:55 +0000 <tomsmeding> that's terribly dumb
2022-11-16 15:03:56 +0000 <dminuoso> NoTypeInType does not turn TypeInType off.
2022-11-16 15:04:20 +0000razetime(~quassel@117.254.35.168) (Ping timeout: 248 seconds)
2022-11-16 15:04:28 +0000 <dminuoso> 16:03:47 tomsmeding | so if you -XNoTypeInType, one cannot write the AccessLevel kind?
2022-11-16 15:04:32 +0000 <dminuoso> Let's try
2022-11-16 15:04:37 +0000 <dminuoso> % :set -XNoTypeInType
2022-11-16 15:04:37 +0000 <yahb2> <no output>
2022-11-16 15:04:45 +0000 <dminuoso> % :k ('N :: Accesslevel)
2022-11-16 15:04:45 +0000 <yahb2> <interactive>:1:8: error: ; Not in scope: type constructor or class ‘Accesslevel’ ; Perhaps you meant ‘AccessLevel’ (line 64)
2022-11-16 15:04:48 +0000 <dminuoso> % :k ('N :: AccessLevel)
2022-11-16 15:04:48 +0000 <yahb2> ('N :: AccessLevel) :: AccessLevel
2022-11-16 15:04:53 +0000 <dminuoso> Err what?
2022-11-16 15:04:55 +0000simpleauthority(~simpleaut@user/simpleauthority) (Ping timeout: 260 seconds)
2022-11-16 15:05:01 +0000 <dminuoso> Oh yes.
2022-11-16 15:05:09 +0000 <dminuoso> % :t (N :: AccessLevel)
2022-11-16 15:05:09 +0000 <yahb2> (N :: AccessLevel) :: AccessLevel
2022-11-16 15:05:21 +0000 <dminuoso> tomsmeding: Like I said, you cant turn it off. Im not quite sure what TypeInType actually turns on, but its not TypeInType.
2022-11-16 15:05:33 +0000 <tomsmeding> kronicmage: Key implements IsEncoding, which provides 'decode'
2022-11-16 15:05:53 +0000 <dminuoso> Ah, the extensions is deprecated and its sole effect is to switch on PolyKinds :D
2022-11-16 15:05:58 +0000 <tomsmeding> lol
2022-11-16 15:06:03 +0000 <dminuoso> https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/poly_kinds.html#kind-polymorphism
2022-11-16 15:06:33 +0000 <dminuoso> geekosaur: okay. since we have that covered...
2022-11-16 15:06:52 +0000 <dminuoso> differentiating between promoted type constructors and data constructors is actually a strange thing.
2022-11-16 15:07:03 +0000 <dminuoso> given that type constructors do not get promoted
2022-11-16 15:07:16 +0000 <dminuoso> (they already are promoted by virtue of implicit TypeInType)
2022-11-16 15:08:33 +0000__monty__(~toonn@user/toonn) (Quit: leaving)
2022-11-16 15:08:33 +0000 <tomsmeding> we should all start programming Agda
2022-11-16 15:08:52 +0000 <fendor[m]> I am still confused, but maybe slightly less ^^
2022-11-16 15:09:07 +0000 <tomsmeding> TypeInType is terribly confusing
2022-11-16 15:09:30 +0000 <dminuoso> N :: AcessLevel
2022-11-16 15:09:33 +0000 <dminuoso> 'N :: AcessLevel
2022-11-16 15:09:35 +0000 <dminuoso> This is so disturbing :(
2022-11-16 15:09:48 +0000 <dminuoso> But I guess thats not as much TypeInType as it is DataKinds in the presence of TypeInType
2022-11-16 15:10:12 +0000 <tomsmeding> % :t Type
2022-11-16 15:10:12 +0000 <yahb2> <interactive>:1:1: error: Data constructor not in scope: Type
2022-11-16 15:10:12 +0000 <dminuoso> One could still conceive DataKinds creating a *separate* promoted type I guess?
2022-11-16 15:10:16 +0000 <tomsmeding> % :t Data.Kind.Type
2022-11-16 15:10:16 +0000 <yahb2> <interactive>:1:1: error: ; • Illegal term-level use of the type constructor ‘GHC.Types.Type’ ; • In the expression: GHC.Types.Type
2022-11-16 15:10:34 +0000 <dminuoso> tomsmeding: Uh! I have not seen that error before. o.o
2022-11-16 15:10:37 +0000 <tomsmeding> % :k Data.Kind.Type
2022-11-16 15:10:38 +0000 <yahb2> Data.Kind.Type :: *
2022-11-16 15:10:43 +0000 <dminuoso> How does that even exist?
2022-11-16 15:10:49 +0000 <tomsmeding> how about that, all words in one line
2022-11-16 15:10:49 +0000 <dminuoso> Shouldnt GHC emit a "not in scope" error?
2022-11-16 15:10:57 +0000 <tomsmeding> % :t Int
2022-11-16 15:10:57 +0000 <yahb2> <interactive>:1:1: error: ; • Illegal term-level use of the type constructor ‘Int’ ; imported from ‘Prelude’ (and originally defined in ‘GHC.Types’) ; • In the expression: Int
2022-11-16 15:11:22 +0000 <dminuoso> Is this possibly just an GHCi quirk?
2022-11-16 15:11:33 +0000 <tomsmeding> % :set -fprint-star-as-type
2022-11-16 15:11:33 +0000 <yahb2> Some flags have not been recognized: -fprint-star-as-type
2022-11-16 15:12:07 +0000 <dminuoso> tomsmeding: Nice, I also like Data.Data.Data
2022-11-16 15:12:31 +0000 <dminuoso> Also nice is:
2022-11-16 15:12:34 +0000 <dminuoso> type Type = TYPE LiftedRep
2022-11-16 15:12:53 +0000 <dminuoso> That monotic increased usage of capital letters.
2022-11-16 15:13:08 +0000 <kronicmage> thanks tomsmeding!
2022-11-16 15:13:27 +0000 <tomsmeding> % :set -XNoStarIsType
2022-11-16 15:13:28 +0000 <yahb2> <no output>
2022-11-16 15:13:30 +0000razetime(~quassel@117.193.2.3)
2022-11-16 15:13:32 +0000 <tomsmeding> % :k Data.Kind.Type
2022-11-16 15:13:32 +0000 <yahb2> Data.Kind.Type :: Type
2022-11-16 15:13:38 +0000 <tomsmeding> % import Data.Kind
2022-11-16 15:13:38 +0000 <yahb2> <no output>
2022-11-16 15:13:42 +0000 <tomsmeding> % :k Type
2022-11-16 15:13:42 +0000 <yahb2> Type :: Type
2022-11-16 15:13:46 +0000 <tomsmeding> voila, TypeInType
2022-11-16 15:14:05 +0000 <tomsmeding> dminuoso: yeah those are also nice :D
2022-11-16 15:15:11 +0000 <tomsmeding> % import Data.Proxy
2022-11-16 15:15:11 +0000 <yahb2> <no output>
2022-11-16 15:15:17 +0000 <tomsmeding> % data A (a :: Type) = A (Proxy a)
2022-11-16 15:15:17 +0000 <yahb2> <no output>
2022-11-16 15:15:26 +0000 <tomsmeding> dminuoso: not only are types kinds, kinds are also types
2022-11-16 15:15:35 +0000 <tomsmeding> this makes 0 sense
2022-11-16 15:15:47 +0000bitdex_(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2022-11-16 15:16:00 +0000 <tomsmeding> % :set -XTypeApplications
2022-11-16 15:16:00 +0000 <yahb2> <no output>
2022-11-16 15:16:22 +0000 <tomsmeding> oh wait this makes perfect sense
2022-11-16 15:16:26 +0000tomsmedingconfused
2022-11-16 15:16:32 +0000 <tomsmeding> rather, _was_ confused
2022-11-16 15:16:37 +0000 <dminuoso> tomsmeding: why do you keep saying kinds?
2022-11-16 15:16:39 +0000 <dminuoso> we dont have them.
2022-11-16 15:16:57 +0000 <dminuoso> The only relict we have of them is in a couple of diagnostics
2022-11-16 15:16:58 +0000 <tomsmeding> because I refuse to come out of the idealised world where kinds are a well-defined thing
2022-11-16 15:17:43 +0000use-value(~Thunderbi@2a00:23c6:8a03:2f01:bd8e:f305:d2bf:3377)
2022-11-16 15:17:47 +0000simpleauthority(~simpleaut@user/simpleauthority)
2022-11-16 15:18:04 +0000 <dminuoso> Well. Type :: Type
2022-11-16 15:18:10 +0000tomsmedinghides
2022-11-16 15:18:11 +0000 <dminuoso> That says everything there is to know about it.
2022-11-16 15:19:02 +0000bitdex_(~bitdex@gateway/tor-sasl/bitdex)
2022-11-16 15:19:33 +0000use-value1(~Thunderbi@2a00:23c6:8a03:2f01:29a1:b64:95d9:d66d)
2022-11-16 15:21:14 +0000enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2022-11-16 15:21:59 +0000chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2022-11-16 15:22:01 +0000use-value(~Thunderbi@2a00:23c6:8a03:2f01:bd8e:f305:d2bf:3377) (Ping timeout: 252 seconds)
2022-11-16 15:22:01 +0000use-value1use-value
2022-11-16 15:23:03 +0000chexum(~quassel@gateway/tor-sasl/chexum)
2022-11-16 15:30:05 +0000Sgeo(~Sgeo@user/sgeo)
2022-11-16 15:40:50 +0000 <Franciman> Type in Type ftw
2022-11-16 15:42:12 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-11-16 15:44:49 +0000freeside(~mengwong@103.252.202.193) (Ping timeout: 260 seconds)
2022-11-16 15:49:08 +0000bitdex_(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-11-16 15:49:53 +0000bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2022-11-16 15:51:43 +0000bitdex_(~bitdex@gateway/tor-sasl/bitdex)
2022-11-16 15:53:27 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:f467:abff:e567:955f)
2022-11-16 15:53:42 +0000freeside(~mengwong@103.252.202.193)
2022-11-16 15:59:26 +0000chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 255 seconds)
2022-11-16 16:00:12 +0000chexum(~quassel@gateway/tor-sasl/chexum)
2022-11-16 16:03:07 +0000Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 260 seconds)
2022-11-16 16:05:44 +0000bitdex_(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2022-11-16 16:08:47 +0000bitdex_(~bitdex@gateway/tor-sasl/bitdex)
2022-11-16 16:09:37 +0000mastarija(~mastarija@2a05:4f46:e03:6000:877c:11d6:ba5e:ab59)
2022-11-16 16:11:20 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2022-11-16 16:15:13 +0000jakalx(~jakalx@base.jakalx.net) ()
2022-11-16 16:15:24 +0000jakalx(~jakalx@base.jakalx.net)
2022-11-16 16:15:46 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:f467:abff:e567:955f) (Remote host closed the connection)
2022-11-16 16:17:38 +0000Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2022-11-16 16:18:59 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-16 16:20:20 +0000Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded)
2022-11-16 16:25:16 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:e456:ad2e:a3ee:4a31) (Ping timeout: 252 seconds)
2022-11-16 16:26:11 +0000Tuplanolla(~Tuplanoll@91-159-68-152.elisa-laajakaista.fi)
2022-11-16 16:29:37 +0000kenran(~user@user/kenran) (Remote host closed the connection)
2022-11-16 16:30:12 +0000`2jt(~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) (Ping timeout: 248 seconds)
2022-11-16 16:32:56 +0000lambdabot(~lambdabot@haskell/bot/lambdabot) (Remote host closed the connection)
2022-11-16 16:34:44 +0000bitdex_(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-11-16 16:36:02 +0000earthy(~arthurvl@2a02-a469-f5e2-1-ba27-ebff-fea0-40b0.fixed6.kpn.net)
2022-11-16 16:37:38 +0000Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2022-11-16 16:39:47 +0000machinedgod(~machinedg@clnet-p10-126.ikbnet.co.at) (Ping timeout: 256 seconds)
2022-11-16 16:39:57 +0000Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded)
2022-11-16 16:40:00 +0000troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-11-16 16:43:36 +0000lambdabot(~lambdabot@silicon.int-e.eu)
2022-11-16 16:43:37 +0000lambdabot(~lambdabot@silicon.int-e.eu) (Changing host)
2022-11-16 16:43:37 +0000lambdabot(~lambdabot@haskell/bot/lambdabot)
2022-11-16 16:44:59 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:f467:abff:e567:955f)
2022-11-16 16:45:12 +0000finsternis(~X@23.226.237.192)
2022-11-16 16:45:47 +0000waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Quit: WeeChat 3.7.1)
2022-11-16 16:47:00 +0000chromoblob(~user@37.113.164.122) (Ping timeout: 260 seconds)
2022-11-16 16:47:07 +0000waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-11-16 16:47:28 +0000Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2022-11-16 16:50:35 +0000machinedgod(~machinedg@clnet-p10-126.ikbnet.co.at)
2022-11-16 16:50:37 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:10c5:1d10:60ac:d312)
2022-11-16 16:51:16 +0000bitdex_(~bitdex@gateway/tor-sasl/bitdex)
2022-11-16 16:53:23 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds)
2022-11-16 17:00:07 +0000mei(~mei@user/mei) (Quit: mei)
2022-11-16 17:05:31 +0000chromoblob(~user@37.113.164.122)
2022-11-16 17:07:11 +0000califax(~califax@user/califx) (Remote host closed the connection)
2022-11-16 17:08:36 +0000img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2022-11-16 17:08:53 +0000img(~img@user/img)
2022-11-16 17:09:14 +0000tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2022-11-16 17:09:31 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:f467:abff:e567:955f) (Remote host closed the connection)
2022-11-16 17:09:46 +0000CiaoSen(~Jura@p200300c95701f1002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-11-16 17:09:54 +0000califax(~califax@user/califx)
2022-11-16 17:10:32 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-11-16 17:15:22 +0000kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1))
2022-11-16 17:16:13 +0000enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2022-11-16 17:16:57 +0000jakalx(~jakalx@base.jakalx.net) ()
2022-11-16 17:18:10 +0000jakalx(~jakalx@base.jakalx.net)
2022-11-16 17:18:19 +0000CiaoSen(~Jura@p200300c95701f1002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2022-11-16 17:27:13 +0000califax(~califax@user/califx) (Remote host closed the connection)
2022-11-16 17:27:18 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:10c5:1d10:60ac:d312) (Quit: WeeChat 2.8)
2022-11-16 17:32:40 +0000econo(uid147250@user/econo)
2022-11-16 17:36:40 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-16 17:36:55 +0000shapr(~user@68.54.166.125)
2022-11-16 17:37:05 +0000bitdex_(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2022-11-16 17:39:15 +0000terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1) (Ping timeout: 260 seconds)
2022-11-16 17:39:43 +0000chele(~chele@user/chele) (Remote host closed the connection)
2022-11-16 17:41:28 +0000mastarija(~mastarija@2a05:4f46:e03:6000:877c:11d6:ba5e:ab59) (Quit: WeeChat 3.5)
2022-11-16 17:41:41 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-11-16 17:43:54 +0000mei(~mei@user/mei)
2022-11-16 17:44:23 +0000waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 256 seconds)
2022-11-16 17:44:51 +0000terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1)
2022-11-16 17:45:57 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:f467:abff:e567:955f)
2022-11-16 17:51:16 +0000califax(~califax@user/califx)
2022-11-16 17:54:56 +0000cafkafk(~cafkafk@fsf/member/cafkafk)
2022-11-16 17:58:43 +0000waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-11-16 18:03:00 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2022-11-16 18:03:01 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2022-11-16 18:03:01 +0000wroathe(~wroathe@user/wroathe)
2022-11-16 18:05:04 +0000MajorBiscuit(~MajorBisc@86-88-79-148.fixed.kpn.net) (Quit: WeeChat 3.6)
2022-11-16 18:05:12 +0000cafkafk(~cafkafk@fsf/member/cafkafk) (Remote host closed the connection)
2022-11-16 18:07:20 +0000xilo(~xilo@84.32.165.17) (Ping timeout: 252 seconds)
2022-11-16 18:08:27 +0000califax(~califax@user/califx) (Remote host closed the connection)
2022-11-16 18:09:47 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:f467:abff:e567:955f) (Remote host closed the connection)
2022-11-16 18:10:13 +0000shapr(~user@68.54.166.125) (Remote host closed the connection)
2022-11-16 18:11:01 +0000cafkafk(~cafkafk@fsf/member/cafkafk)
2022-11-16 18:11:05 +0000califax(~califax@user/califx)
2022-11-16 18:11:45 +0000vglfr(~vglfr@145.224.100.22) (Read error: Connection reset by peer)
2022-11-16 18:12:39 +0000stiell(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2022-11-16 18:13:00 +0000vglfr(~vglfr@145.224.100.22)
2022-11-16 18:13:49 +0000stiell(~stiell@gateway/tor-sasl/stiell)
2022-11-16 18:15:03 +0000Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Remote host closed the connection)
2022-11-16 18:16:13 +0000nschoe(~q@141.101.51.197) (Ping timeout: 268 seconds)
2022-11-16 18:16:50 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-11-16 18:16:50 +0000wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2022-11-16 18:18:55 +0000razetime(~quassel@117.193.2.3) (Ping timeout: 260 seconds)
2022-11-16 18:20:27 +0000`2jt(~jtomas@191.red-88-17-199.dynamicip.rima-tde.net)
2022-11-16 18:21:23 +0000mvk(~mvk@2607:fea8:5ce3:8500::4b68) (Quit: Going elsewhere)
2022-11-16 18:23:35 +0000srk(~sorki@user/srk) (Ping timeout: 260 seconds)
2022-11-16 18:26:26 +0000AlexNoo_(~AlexNoo@178.34.161.167)
2022-11-16 18:26:32 +0000tormenatur(uid576041@user/tormenatur) (Quit: Connection closed for inactivity)
2022-11-16 18:26:50 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds)
2022-11-16 18:28:14 +0000pavonia(~user@user/siracusa) (Quit: Bye!)
2022-11-16 18:28:30 +0000AlexZenon(~alzenon@94.233.241.222) (Ping timeout: 240 seconds)
2022-11-16 18:28:44 +0000Alex_test(~al_test@94.233.241.222) (Ping timeout: 260 seconds)
2022-11-16 18:28:58 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-11-16 18:30:00 +0000mvk(~mvk@2607:fea8:5ce3:8500::4b68)
2022-11-16 18:30:17 +0000machinedgod(~machinedg@clnet-p10-126.ikbnet.co.at) (Ping timeout: 256 seconds)
2022-11-16 18:30:24 +0000AlexNoo(~AlexNoo@94.233.241.222) (Ping timeout: 268 seconds)
2022-11-16 18:32:26 +0000Alex_test(~al_test@178.34.161.167)
2022-11-16 18:32:46 +0000AlexZenon(~alzenon@178.34.161.167)
2022-11-16 18:33:15 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-16 18:37:32 +0000jmdaemon(~jmdaemon@user/jmdaemon)
2022-11-16 18:38:42 +0000king_gs(~Thunderbi@187.201.139.206)
2022-11-16 18:43:42 +0000Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
2022-11-16 18:44:04 +0000ft(~ft@p508dbd59.dip0.t-ipconnect.de)
2022-11-16 18:48:13 +0000euandreh2(~Thunderbi@189.40.79.96)
2022-11-16 18:48:26 +0000jumper149(~jumper149@base.felixspringer.xyz)
2022-11-16 18:48:47 +0000euandreh(~Thunderbi@179.214.113.107) (Ping timeout: 260 seconds)
2022-11-16 18:48:52 +0000euandreh2euandreh
2022-11-16 18:49:44 +0000euandreh(~Thunderbi@189.40.79.96) (Client Quit)
2022-11-16 18:50:41 +0000notzmv(~zmv@user/notzmv) (Ping timeout: 256 seconds)
2022-11-16 18:54:03 +0000ddellacosta(~ddellacos@143.244.47.83)
2022-11-16 18:54:54 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:f467:abff:e567:955f)
2022-11-16 18:56:44 +0000 <EvanR> is there a startsWith :: Char -> String -> Bool
2022-11-16 18:57:02 +0000 <EvanR> @hoogle Char -> String -> Bool
2022-11-16 18:57:03 +0000 <lambdabot> Basement.String elem :: Char -> String -> Bool
2022-11-16 18:57:03 +0000 <lambdabot> Data.Char.Properties.UnicodeBlocks elemCodeBlock :: Char -> String -> Bool
2022-11-16 18:57:03 +0000 <lambdabot> Algebra.ModuleBasis propDimension :: C a v => a -> v -> Bool
2022-11-16 18:57:21 +0000 <EvanR> @hoogle Eq a => a -> [a] -> Bool
2022-11-16 18:57:22 +0000 <lambdabot> GHC.List elem :: Eq a => a -> [a] -> Bool
2022-11-16 18:57:22 +0000 <lambdabot> GHC.List notElem :: Eq a => a -> [a] -> Bool
2022-11-16 18:57:22 +0000 <lambdabot> GHC.OldList elem :: Eq a => a -> [a] -> Bool
2022-11-16 18:57:27 +0000 <geekosaur> `isPrefixOf`?
2022-11-16 18:57:34 +0000 <EvanR> :t isPrefixOf
2022-11-16 18:57:35 +0000 <lambdabot> Eq a => [a] -> [a] -> Bool
2022-11-16 18:57:39 +0000 <EvanR> fine.
2022-11-16 18:58:21 +0000Guest61(~Guest61@80.71.141.42.ipv4.parknet.dk)
2022-11-16 18:59:10 +0000Guest61(~Guest61@80.71.141.42.ipv4.parknet.dk) (Client Quit)
2022-11-16 19:06:39 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds)
2022-11-16 19:08:04 +0000AlexNoo_AlexNoo
2022-11-16 19:08:55 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:f467:abff:e567:955f) (Remote host closed the connection)
2022-11-16 19:08:56 +0000kenran(~user@user/kenran)
2022-11-16 19:10:42 +0000zebrag(~chris@user/zebrag)
2022-11-16 19:10:56 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-11-16 19:12:23 +0000mmhat(~mmh@p200300f1c7050c1bee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2022-11-16 19:13:27 +0000jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-11-16 19:15:14 +0000eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2022-11-16 19:17:41 +0000enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2022-11-16 19:18:07 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-16 19:18:44 +0000xilo(~yourname@84.32.165.17)
2022-11-16 19:21:35 +0000chromoblob(~user@37.113.164.122) (Ping timeout: 268 seconds)
2022-11-16 19:22:51 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds)
2022-11-16 19:23:00 +0000 <dminuoso> EvanR: If possible, you can also put this into pattern matching: `f str@('s':_) ...; f str = ...`
2022-11-16 19:23:11 +0000euandreh(~Thunderbi@179.214.113.107)
2022-11-16 19:24:17 +0000 <EvanR> only works for constant Char...
2022-11-16 19:24:41 +0000freeside(~mengwong@103.252.202.193) (Ping timeout: 256 seconds)
2022-11-16 19:24:55 +0000 <EvanR> unlike elixir which lets you reference variables in the pattern...
2022-11-16 19:25:40 +0000lottaquestions_(~nick@104.221.24.83)
2022-11-16 19:25:41 +0000Vajb(~Vajb@2001:999:504:3ad6:52a4:a3b5:32d8:e74d) (Read error: Connection reset by peer)
2022-11-16 19:25:42 +0000 <dminuoso> With elixir thats probably a macro though.
2022-11-16 19:25:45 +0000lottaquestions_(~nick@104.221.24.83) (Client Quit)
2022-11-16 19:25:50 +0000 <dminuoso> Which means we have that in GHC Haskell too. :p
2022-11-16 19:25:56 +0000 <geekosaur> f str@(c:_) | c == foo = ...
2022-11-16 19:26:06 +0000 <dminuoso> Or that, yeah
2022-11-16 19:26:16 +0000lottaquestions_(~nick@104.221.24.83)
2022-11-16 19:26:33 +0000Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi)
2022-11-16 19:28:05 +0000lottaquestions(~nick@2607:fa49:503e:7100:bded:99b3:7299:5ee6) (Ping timeout: 256 seconds)
2022-11-16 19:28:22 +0000`2jt(~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) (Ping timeout: 268 seconds)
2022-11-16 19:28:59 +0000troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 268 seconds)
2022-11-16 19:29:20 +0000mmhat(~mmh@p200300f1c719b9aaee086bfffe095315.dip0.t-ipconnect.de)
2022-11-16 19:29:35 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-11-16 19:30:34 +0000davetapley(sid666@id-666.uxbridge.irccloud.com) (Ping timeout: 252 seconds)
2022-11-16 19:32:09 +0000systemfault(sid267009@id-267009.uxbridge.irccloud.com) (Ping timeout: 252 seconds)
2022-11-16 19:32:53 +0000zebrag(~chris@user/zebrag) (Remote host closed the connection)
2022-11-16 19:33:49 +0000irrgit_(~irrgit@146.70.27.250) (Remote host closed the connection)
2022-11-16 19:34:36 +0000irrgit_(~irrgit@89.47.234.26)
2022-11-16 19:34:37 +0000 <EvanR> filter (\case (c:_) | c == foo = True | otherwise = False; [] -> False) bars
2022-11-16 19:34:42 +0000eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-11-16 19:35:16 +0000davetapley(sid666@id-666.uxbridge.irccloud.com)
2022-11-16 19:35:53 +0000 <EvanR> filter (\case (c:_) -> c == foo; [] -> False) bars
2022-11-16 19:36:01 +0000systemfault(sid267009@id-267009.uxbridge.irccloud.com)
2022-11-16 19:36:03 +0000 <EvanR> not bad
2022-11-16 19:36:40 +0000b20n(sid115913@id-115913.uxbridge.irccloud.com) (Ping timeout: 252 seconds)
2022-11-16 19:40:10 +0000freeside(~mengwong@103.252.202.193)
2022-11-16 19:41:59 +0000systemfault(sid267009@id-267009.uxbridge.irccloud.com) (Ping timeout: 260 seconds)
2022-11-16 19:42:37 +0000b20n(sid115913@uxbridge.irccloud.com)
2022-11-16 19:42:55 +0000mmhat(~mmh@p200300f1c719b9aaee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-11-16 19:44:35 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:f467:abff:e567:955f)
2022-11-16 19:48:03 +0000b20n(sid115913@uxbridge.irccloud.com) (Ping timeout: 260 seconds)
2022-11-16 19:48:05 +0000king_gs(~Thunderbi@187.201.139.206) (Read error: Connection reset by peer)
2022-11-16 19:49:14 +0000shailangsa(~shailangs@109.159.108.137)
2022-11-16 19:49:19 +0000king_gs(~Thunderbi@2806:103e:29:bfeb:c988:bbd5:2586:4924)
2022-11-16 19:49:49 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 260 seconds)
2022-11-16 19:50:49 +0000fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-11-16 19:51:21 +0000systemfault(sid267009@uxbridge.irccloud.com)
2022-11-16 19:51:31 +0000SrPx(sid108780@2a03:5180:f:5::1:a8ec) (Ping timeout: 252 seconds)
2022-11-16 19:51:49 +0000alanz(sid110616@id-110616.uxbridge.irccloud.com) (Ping timeout: 268 seconds)
2022-11-16 19:53:20 +0000lyle(~lyle@104.246.145.85) (Quit: WeeChat 3.7.1)
2022-11-16 19:55:26 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-11-16 19:56:09 +0000alanz(sid110616@id-110616.uxbridge.irccloud.com)
2022-11-16 19:56:11 +0000mmhat(~mmh@p200300f1c719d069ee086bfffe095315.dip0.t-ipconnect.de)
2022-11-16 19:56:40 +0000SrPx(sid108780@id-108780.uxbridge.irccloud.com)
2022-11-16 19:57:33 +0000systemfault(sid267009@uxbridge.irccloud.com) (Ping timeout: 256 seconds)
2022-11-16 19:59:30 +0000SrPx(sid108780@id-108780.uxbridge.irccloud.com) (Max SendQ exceeded)
2022-11-16 20:00:27 +0000SrPx(sid108780@id-108780.uxbridge.irccloud.com)
2022-11-16 20:00:31 +0000systemfault(sid267009@uxbridge.irccloud.com)
2022-11-16 20:01:08 +0000gmg(~user@user/gehmehgeh)
2022-11-16 20:01:59 +0000azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2022-11-16 20:03:21 +0000SrPx(sid108780@id-108780.uxbridge.irccloud.com) (Max SendQ exceeded)
2022-11-16 20:03:50 +0000azimut(~azimut@gateway/tor-sasl/azimut)
2022-11-16 20:04:38 +0000SrPx(sid108780@id-108780.uxbridge.irccloud.com)
2022-11-16 20:04:59 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-11-16 20:05:49 +0000Techcable(~Techcable@user/Techcable) (Ping timeout: 252 seconds)
2022-11-16 20:07:18 +0000b20n(sid115913@id-115913.uxbridge.irccloud.com)
2022-11-16 20:07:38 +0000SrPx(sid108780@id-108780.uxbridge.irccloud.com) (Max SendQ exceeded)
2022-11-16 20:08:25 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-11-16 20:08:44 +0000SrPx(sid108780@id-108780.uxbridge.irccloud.com)
2022-11-16 20:08:57 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:f467:abff:e567:955f) (Remote host closed the connection)
2022-11-16 20:11:40 +0000SrPx(sid108780@id-108780.uxbridge.irccloud.com) (Max SendQ exceeded)
2022-11-16 20:12:59 +0000SrPx(sid108780@id-108780.uxbridge.irccloud.com)
2022-11-16 20:15:13 +0000sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-11-16 20:15:55 +0000SrPx(sid108780@id-108780.uxbridge.irccloud.com) (Max SendQ exceeded)
2022-11-16 20:17:10 +0000mmhat(~mmh@p200300f1c719d069ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-11-16 20:17:32 +0000mmhat(~mmh@p200300f1c719d097ee086bfffe095315.dip0.t-ipconnect.de)
2022-11-16 20:17:33 +0000Guest75(~Guest75@178.141.130.118)
2022-11-16 20:18:19 +0000SrPx(sid108780@uxbridge.irccloud.com)
2022-11-16 20:19:17 +0000CiaoSen(~Jura@p200300c95701f1002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-11-16 20:19:32 +0000cafkafk(~cafkafk@fsf/member/cafkafk) (Ping timeout: 255 seconds)
2022-11-16 20:23:21 +0000jakalx(~jakalx@base.jakalx.net) ()
2022-11-16 20:26:42 +0000kenran(~user@user/kenran) (Remote host closed the connection)
2022-11-16 20:27:44 +0000ub(~Thunderbi@178.165.179.251.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
2022-11-16 20:28:32 +0000jakalx(~jakalx@base.jakalx.net)
2022-11-16 20:30:11 +0000ub(~Thunderbi@178.165.179.251.wireless.dyn.drei.com)
2022-11-16 20:30:11 +0000vglfr(~vglfr@145.224.100.22) (Write error: Connection reset by peer)
2022-11-16 20:30:24 +0000federico(~federico@93-34-233-131.ip52.fastwebnet.it)
2022-11-16 20:30:46 +0000vglfr(~vglfr@145.224.100.22)
2022-11-16 20:30:51 +0000federico(~federico@93-34-233-131.ip52.fastwebnet.it) (Client Quit)
2022-11-16 20:30:58 +0000bobbingbob(~bobbingbo@2604:3d09:207f:f650::b469)
2022-11-16 20:31:11 +0000gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2022-11-16 20:32:03 +0000gmg(~user@user/gehmehgeh)
2022-11-16 20:34:43 +0000enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2022-11-16 20:35:31 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:7d33:673a:80f0:1322)
2022-11-16 20:36:07 +0000mmhat(~mmh@p200300f1c719d097ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-11-16 20:40:10 +0000freeside(~mengwong@103.252.202.193) (Ping timeout: 240 seconds)
2022-11-16 20:44:12 +0000coot(~coot@213.134.171.3)
2022-11-16 20:49:40 +0000mmhat(~mmh@p200300f1c71a6d71ee086bfffe095315.dip0.t-ipconnect.de)
2022-11-16 20:53:09 +0000ub(~Thunderbi@178.165.179.251.wireless.dyn.drei.com) (Quit: ub)
2022-11-16 20:53:21 +0000ub(~Thunderbi@178.165.179.251.wireless.dyn.drei.com)
2022-11-16 20:54:07 +0000freeside(~mengwong@103.252.202.193)
2022-11-16 20:54:49 +0000azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-11-16 20:59:24 +0000irrgit_(~irrgit@89.47.234.26) (Quit: Leaving)
2022-11-16 20:59:59 +0000notzmv(~zmv@user/notzmv)
2022-11-16 21:01:40 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:7d33:673a:80f0:1322) (Quit: WeeChat 2.8)
2022-11-16 21:05:05 +0000azimut(~azimut@gateway/tor-sasl/azimut)
2022-11-16 21:09:28 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:f467:abff:e567:955f)
2022-11-16 21:11:44 +0000califax(~califax@user/califx) (Ping timeout: 255 seconds)
2022-11-16 21:13:30 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:f467:abff:e567:955f) (Ping timeout: 240 seconds)
2022-11-16 21:14:07 +0000califax(~califax@user/califx)
2022-11-16 21:16:28 +0000califax(~califax@user/califx) (Remote host closed the connection)
2022-11-16 21:17:28 +0000Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-11-16 21:17:37 +0000Vajb(~Vajb@2001:999:504:3ad6:52a4:a3b5:32d8:e74d)
2022-11-16 21:18:40 +0000nschoe(~q@2a01:e0a:8e:a190:68cf:faba:8c01:da9f)
2022-11-16 21:18:41 +0000nschoe(~q@2a01:e0a:8e:a190:68cf:faba:8c01:da9f) (Client Quit)
2022-11-16 21:18:45 +0000califax(~califax@user/califx)
2022-11-16 21:19:15 +0000kenaryn(~aurele@89-88-44-27.abo.bbox.fr)
2022-11-16 21:21:51 +0000youziqi(~youziqi@103.37.140.45) (Ping timeout: 260 seconds)
2022-11-16 21:24:18 +0000raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
2022-11-16 21:24:55 +0000youziqi(~youziqi@103.37.140.25)
2022-11-16 21:25:43 +0000chromoblob(~user@37.113.164.122)
2022-11-16 21:30:14 +0000king_gs(~Thunderbi@2806:103e:29:bfeb:c988:bbd5:2586:4924) (Quit: king_gs)
2022-11-16 21:31:37 +0000chromoblob(~user@37.113.164.122) (Ping timeout: 256 seconds)
2022-11-16 21:32:35 +0000ub(~Thunderbi@178.165.179.251.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
2022-11-16 21:33:38 +0000pavonia(~user@user/siracusa)
2022-11-16 21:35:42 +0000Dutchgriffon(~Laurens@70.36.53.134)
2022-11-16 21:38:10 +0000michalz(~michalz@185.246.207.197) (Ping timeout: 240 seconds)
2022-11-16 21:38:31 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-11-16 21:38:45 +0000lambdabot(~lambdabot@haskell/bot/lambdabot) (Read error: Connection reset by peer)
2022-11-16 21:40:31 +0000takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-11-16 21:40:47 +0000lambdabot(~lambdabot@silicon.int-e.eu)
2022-11-16 21:40:47 +0000lambdabot(~lambdabot@silicon.int-e.eu) (Changing host)
2022-11-16 21:40:47 +0000lambdabot(~lambdabot@haskell/bot/lambdabot)
2022-11-16 21:43:42 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds)
2022-11-16 21:44:03 +0000coot(~coot@213.134.171.3) (Quit: coot)
2022-11-16 21:45:35 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-11-16 21:51:44 +0000eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2022-11-16 21:51:56 +0000biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2022-11-16 21:52:49 +0000biberu(~biberu@user/biberu)
2022-11-16 21:57:52 +0000freeside(~mengwong@103.252.202.193) (Ping timeout: 256 seconds)
2022-11-16 22:05:57 +0000eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-11-16 22:07:35 +0000fockerize(~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds)
2022-11-16 22:07:53 +0000CiaoSen(~Jura@p200300c95701f1002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2022-11-16 22:09:11 +0000phma_(phma@2001:5b0:211f:71d8:b1fb:b9c3:f43b:db91)
2022-11-16 22:09:20 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:f467:abff:e567:955f)
2022-11-16 22:10:36 +0000phma(~phma@host-67-44-208-21.hnremote.net) (Read error: Connection reset by peer)
2022-11-16 22:11:35 +0000freeside(~mengwong@103.252.202.193)
2022-11-16 22:12:07 +0000califax(~califax@user/califx) (Remote host closed the connection)
2022-11-16 22:13:19 +0000AlexNoo_(~AlexNoo@178.34.161.167)
2022-11-16 22:13:47 +0000mei(~mei@user/mei) (Remote host closed the connection)
2022-11-16 22:14:12 +0000mei(~mei@user/mei)
2022-11-16 22:14:41 +0000califax(~califax@user/califx)
2022-11-16 22:15:50 +0000freeside(~mengwong@103.252.202.193) (Ping timeout: 240 seconds)
2022-11-16 22:16:41 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:f467:abff:e567:955f) (Remote host closed the connection)
2022-11-16 22:16:49 +0000AlexNoo(~AlexNoo@178.34.161.167) (Ping timeout: 260 seconds)
2022-11-16 22:19:34 +0000gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-11-16 22:20:45 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:f467:abff:e567:955f)
2022-11-16 22:22:31 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:f467:abff:e567:955f) (Remote host closed the connection)
2022-11-16 22:23:54 +0000troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-11-16 22:25:59 +0000ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds)
2022-11-16 22:26:55 +0000gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-11-16 22:27:35 +0000ec(~ec@gateway/tor-sasl/ec)
2022-11-16 22:35:49 +0000Erutuon(~Erutuon@user/erutuon)
2022-11-16 22:37:27 +0000hgolden(~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
2022-11-16 22:39:05 +0000freeside(~mengwong@103.252.202.193)
2022-11-16 22:39:38 +0000hgolden(~hgolden@cpe-172-251-233-141.socal.res.rr.com)
2022-11-16 22:43:51 +0000freeside(~mengwong@103.252.202.193) (Ping timeout: 268 seconds)
2022-11-16 22:46:42 +0000AlexNoo_AlexNoo
2022-11-16 22:54:49 +0000DDR(~DDR@2604:3d08:4c7f:8250:843b:f3d0:47c:129e)
2022-11-16 23:03:53 +0000detuneattune(~detuneatt@user/detuneattune) (Quit: Ping timeout (120 seconds))
2022-11-16 23:04:18 +0000detuneattune(~detuneatt@user/detuneattune)
2022-11-16 23:05:24 +0000 <Profpatsch> Is there a good way to mark the `m` of a do-block?
2022-11-16 23:05:37 +0000 <Profpatsch> e.g. I’d like to be able to say do @Maybe { … } or something
2022-11-16 23:06:06 +0000 <Profpatsch> Just so it’s easier to read, cause usually do-blocks are in IO/some monad stack and it gets confusing when you switch the instance for some sub-expression
2022-11-16 23:08:23 +0000 <geekosaur> no, although you might be able to abuse https://downloads.haskell.org/ghc/9.4.2/docs/users_guide/exts/qualified_do.html
2022-11-16 23:08:40 +0000 <geekosaur> usually it's enough for me to just assign a type
2022-11-16 23:09:40 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-11-16 23:09:48 +0000 <Profpatsch> geekosaur: how do you mean assign a type?
2022-11-16 23:09:56 +0000 <Profpatsch> Just add a type sig to the first statement?
2022-11-16 23:10:15 +0000 <geekosaur> my do blocks are all entire functions, so I just give the function a type signature indicating the m
2022-11-16 23:11:49 +0000 <Profpatsch> It would be cool if you could put type applications after operators
2022-11-16 23:11:53 +0000 <geekosaur> and if I do something internally that could be a do (ignoring if-then-else) I usually just use bind syntax directly
2022-11-16 23:11:57 +0000 <Profpatsch> e.g. a >>= @Maybe fb
2022-11-16 23:12:07 +0000 <geekosaur> which to me is usually an indication that something special's going on
2022-11-16 23:12:28 +0000 <Profpatsch> okay maybe it wouldn’t be that cool :P
2022-11-16 23:13:00 +0000 <geekosaur> % :t ((>>=) @Maybe)
2022-11-16 23:13:00 +0000 <yahb2> ((>>=) @Maybe) :: Maybe a -> (a -> Maybe b) -> Maybe b
2022-11-16 23:13:17 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-11-16 23:13:18 +0000 <geekosaur> not real friendly with all the parens though
2022-11-16 23:13:26 +0000 <Profpatsch> is that still infix
2022-11-16 23:13:31 +0000 <geekosaur> no
2022-11-16 23:13:36 +0000 <Profpatsch> yeah
2022-11-16 23:14:00 +0000 <geekosaur> and you can't just wrap it in `` to make it infix again
2022-11-16 23:14:05 +0000 <Profpatsch> haha oh no
2022-11-16 23:14:20 +0000fserucas(~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Ping timeout: 260 seconds)
2022-11-16 23:14:23 +0000freeside(~mengwong@103.252.202.193)
2022-11-16 23:14:50 +0000 <lyxia> idf :: forall f a. f a -> f a then you can write idf @Maybe do { ... }
2022-11-16 23:15:18 +0000 <Profpatsch> lyxia: oh this is pretty cool
2022-11-16 23:15:55 +0000 <Profpatsch> mAs @IO $ do
2022-11-16 23:18:10 +0000jumper149(~jumper149@base.felixspringer.xyz) (Quit: WeeChat 3.7.1)
2022-11-16 23:18:59 +0000freeside(~mengwong@103.252.202.193) (Ping timeout: 260 seconds)
2022-11-16 23:19:33 +0000zebrag(~chris@user/zebrag)
2022-11-16 23:22:54 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-11-16 23:23:01 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:f467:abff:e567:955f)
2022-11-16 23:27:24 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:f467:abff:e567:955f) (Ping timeout: 256 seconds)
2022-11-16 23:30:53 +0000InstX1(~Liam@c-98-208-218-119.hsd1.fl.comcast.net)
2022-11-16 23:35:47 +0000InstX1(~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 260 seconds)
2022-11-16 23:38:08 +0000Guest75(~Guest75@178.141.130.118) (Ping timeout: 260 seconds)
2022-11-16 23:39:29 +0000freeside(~mengwong@103.252.202.193)
2022-11-16 23:39:31 +0000wonko(~wjc@2a0e:1c80:2:0:45:15:19:130)
2022-11-16 23:40:11 +0000merijn(~merijn@86.86.29.250)
2022-11-16 23:41:11 +0000eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2022-11-16 23:41:58 +0000 <EvanR> yes mixing a bunch of different monads do blocks, unless it's for short stuff that you'd easily toss a >>= at, sounds like a recipe for write only code
2022-11-16 23:42:26 +0000 <EvanR> maybe that's why everyone wants a single master App monad
2022-11-16 23:42:40 +0000 <EvanR> to rule them all
2022-11-16 23:42:45 +0000 <EvanR> and you know
2022-11-16 23:43:18 +0000shapr(~user@68.54.166.125)
2022-11-16 23:43:28 +0000 <shapr> Is there a generic introduction to testing in Haskell?
2022-11-16 23:43:54 +0000 <shapr> even just "this is what's most popular right now" would be nice
2022-11-16 23:45:07 +0000freeside(~mengwong@103.252.202.193) (Ping timeout: 260 seconds)
2022-11-16 23:45:41 +0000 <dsal> shapr: are you trying to start a fight? :)
2022-11-16 23:46:05 +0000 <dsal> I think property tests should be used unless you've got a good excuse not to. That's a pretty steep learning curve for a lot of people.
2022-11-16 23:46:23 +0000 <dsal> tasty is nice, but none of the frameworks are significantly better than others.
2022-11-16 23:46:29 +0000 <shapr> dsal: I agree, but I don't see much property testing on hackage
2022-11-16 23:46:47 +0000 <shapr> I am often tempted to go add a zillion property tests to the most popular libraries
2022-11-16 23:46:49 +0000 <Rembane> Is it tasty that has a plugin for using quickcheck too?
2022-11-16 23:47:06 +0000 <Rembane> So you can mix and match property based testing and unit tests
2022-11-16 23:47:21 +0000 <shapr> hspec too, iirc
2022-11-16 23:47:39 +0000 <dsal> Rembane: Yeah, tasty lets you run all kinds of stuff.
2022-11-16 23:47:47 +0000 <Rembane> dsal: Cool.
2022-11-16 23:47:58 +0000 <dsal> I do a bunch of different test things from tasty. It's just a runner + plugin thing.
2022-11-16 23:47:59 +0000 <Rembane> Then I suppose it boils down to syntax.
2022-11-16 23:48:27 +0000 <dsal> Sometimes property tests are kind of hard and a bad test (for some value of bad) is better than no test.
2022-11-16 23:48:28 +0000 <Rembane> The test modules of hspec and tasty look quite different
2022-11-16 23:48:48 +0000 <Rembane> Just getting the bugs out of the generators and properties takes quite a bit of time.
2022-11-16 23:48:57 +0000 <dsal> I don't like the cucumberish syntax, and I find that most people who use it don't have the slightest idea what it exists for or how it's meant to be used.
2022-11-16 23:48:58 +0000 <shapr> I haven't looked at tasty in awhile, do you have a link to one?
2022-11-16 23:49:16 +0000 <shapr> I have *opinions* on property based testing
2022-11-16 23:49:47 +0000 <dsal> I wonder if I have any good ones…
2022-11-16 23:50:32 +0000 <dsal> This one's not too scarY; https://github.com/dustin/aoc/blob/master/test/BitSetTests.hs
2022-11-16 23:51:08 +0000 <shapr> Ah, using discover
2022-11-16 23:51:09 +0000 <dsal> This one has a mix: https://github.com/dustin/aoc/blob/master/test/SearchTests.hs
2022-11-16 23:51:21 +0000 <dsal> Yeah, I started using that at one point. The latter also introduces trees along the way.
2022-11-16 23:51:36 +0000 <shapr> I like explicit test trees, but it's not a strong leaning
2022-11-16 23:52:05 +0000 <dsal> I migrated to this at one point and it was just slightly better.
2022-11-16 23:52:12 +0000 <dsal> I can add a test in one place.
2022-11-16 23:52:25 +0000 <shapr> yeah, that's a benefit
2022-11-16 23:52:34 +0000justachejustGrit