2023/04/21

2023-04-21 00:02:32 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl)
2023-04-21 00:03:42 +0200czy(~user@host-140-25.ilcub310.champaign.il.us.clients.pavlovmedia.net) (Remote host closed the connection)
2023-04-21 00:04:09 +0200czy(~user@host-140-25.ilcub310.champaign.il.us.clients.pavlovmedia.net)
2023-04-21 00:09:37 +0200extor(~extor@ns3018124.ip-149-202-82.eu) (Remote host closed the connection)
2023-04-21 00:12:22 +0200heraldo(~heraldo@user/heraldo) (Quit: heraldo)
2023-04-21 00:16:36 +0200roboguy_(~roboguy_@cpe-69-76-235-109.kc.res.rr.com) (Remote host closed the connection)
2023-04-21 00:17:32 +0200roboguy_(~roboguy_@cpe-69-76-235-109.kc.res.rr.com)
2023-04-21 00:17:58 +0200roboguy_(~roboguy_@cpe-69-76-235-109.kc.res.rr.com) (Client Quit)
2023-04-21 00:25:35 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 260 seconds)
2023-04-21 00:25:48 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl) (Quit: Connection closed)
2023-04-21 00:27:22 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2023-04-21 00:31:28 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 248 seconds)
2023-04-21 00:33:13 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2023-04-21 00:34:46 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-04-21 00:56:28 +0200extor(~extor@2001:41d0:1004:636::1)
2023-04-21 01:04:00 +0200extor(~extor@2001:41d0:1004:636::1) (Quit: ZNC 1.8.2+deb2build5 - https://znc.in)
2023-04-21 01:04:10 +0200extor(~extor@ns3018124.ip-149-202-82.eu)
2023-04-21 01:19:17 +0200Me-me(~Me-me@146.102.215.218.dyn.iprimus.net.au)
2023-04-21 01:21:03 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:95b6:69e0:a477:4ab1)
2023-04-21 01:22:10 +0200nate1(~nate@98.45.169.16)
2023-04-21 01:23:04 +0200Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
2023-04-21 01:25:39 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:95b6:69e0:a477:4ab1) (Ping timeout: 250 seconds)
2023-04-21 01:26:45 +0200nate1(~nate@98.45.169.16) (Ping timeout: 240 seconds)
2023-04-21 01:26:50 +0200 <sm> an interview with SPJ today: https://www.youtube.com/watch?v=fBFsxmJEk7M
2023-04-21 01:27:01 +0200jmorris(uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2023-04-21 01:28:11 +0200 <c_wraith> whoa, that's a long video
2023-04-21 01:28:35 +0200pieguy128(~pieguy128@bras-base-mtrlpq5031w-grc-56-65-92-162-12.dsl.bell.ca) (Quit: ZNC 1.8.2 - https://znc.in)
2023-04-21 01:29:37 +0200 <hpc> don't watch the 5 hour john carmack interview then :D
2023-04-21 01:29:45 +0200xff0x(~xff0x@2405:6580:b080:900:ccb0:7555:1a99:76be) (Ping timeout: 260 seconds)
2023-04-21 01:30:04 +0200 <c_wraith> I didn't. (though that was mostly due to my dislike of the interviewer)
2023-04-21 01:30:06 +0200systemhalted(~systemhal@22.sub-174-244-22.myvzw.com)
2023-04-21 01:31:42 +0200pieguy128(~pieguy128@bas1-montreal02-65-92-162-12.dsl.bell.ca)
2023-04-21 01:31:44 +0200xff0x(~xff0x@178.255.149.135)
2023-04-21 01:31:58 +0200thegeekinside(~thegeekin@189.180.119.50) (Remote host closed the connection)
2023-04-21 01:32:18 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2023-04-21 01:33:35 +0200systemhalted(~systemhal@22.sub-174-244-22.myvzw.com) (Remote host closed the connection)
2023-04-21 01:34:47 +0200Me-me(~Me-me@146.102.215.218.dyn.iprimus.net.au) (Changing host)
2023-04-21 01:34:47 +0200Me-me(~Me-me@user/me-me)
2023-04-21 01:40:15 +0200mncheck(~mncheck@193.224.205.254) (Ping timeout: 255 seconds)
2023-04-21 01:47:05 +0200xff0x(~xff0x@178.255.149.135) (Ping timeout: 240 seconds)
2023-04-21 01:49:07 +0200xff0x(~xff0x@2405:6580:b080:900:ccb0:7555:1a99:76be)
2023-04-21 01:49:50 +0200mauke_(~mauke@user/mauke)
2023-04-21 01:50:46 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-04-21 01:51:25 +0200mauke(~mauke@user/mauke) (Ping timeout: 240 seconds)
2023-04-21 01:51:25 +0200mauke_mauke
2023-04-21 01:53:13 +0200AWizzArd_(~code@gehrels.uberspace.de)
2023-04-21 01:53:33 +0200AWizzArd(~code@gehrels.uberspace.de) (Ping timeout: 252 seconds)
2023-04-21 01:55:56 +0200acidjnk(~acidjnk@p200300d6e715c424513ef02743108d16.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2023-04-21 01:56:53 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-04-21 01:58:47 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-04-21 01:59:25 +0200zer0bitz_(~zer0bitz@2001:2003:f443:d600:4413:c8de:8d77:b5ff)
2023-04-21 01:59:28 +0200vglfr(~vglfr@37.73.154.150) (Ping timeout: 252 seconds)
2023-04-21 02:00:56 +0200zer0bitz(~zer0bitz@2001:2003:f443:d600:c4a2:61a9:2888:7ad) (Ping timeout: 246 seconds)
2023-04-21 02:04:53 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-04-21 02:06:45 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds)
2023-04-21 02:07:15 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2023-04-21 02:14:11 +0200NiceBird(~NiceBird@185.133.111.196) (Ping timeout: 246 seconds)
2023-04-21 02:21:39 +0200 <hammond> jackdk: https://www.irccloud.com/pastebin/snDGzEnC/Strings.hs regarding this from yesterday, so you take the two functions separate and then have a wrapper function to handle them both. You don't call g inside of f. (I didn't look at it too closely yesterday since I was too tired)
2023-04-21 02:22:59 +0200 <jackdk> hammond: Hello! Could you please repeat your initial question, because I don't remember exactly what you asked.
2023-04-21 02:24:50 +0200 <hammond> so I have a function that goes from String->IO String and inside that function I'm calling another function that goes from String->Maybe String and I want to use that result to return it to the IO String.
2023-04-21 02:25:16 +0200 <hammond> im just asking to see if that's the paradigm in haskell.
2023-04-21 02:25:25 +0200chanceyan(~chanceyan@user/chanceyan)
2023-04-21 02:26:58 +0200 <ski> you could call `g' inside of `f', if you wanted to
2023-04-21 02:27:45 +0200 <hammond> ok
2023-04-21 02:28:11 +0200 <ski> (but then to show how that would look like, you'd need to show the implementation of `f' .. so `f' would (presumably) involve doing some `IO', possibly invoking some other action .. now, this is exactly what jackdk's code does, for his function(s) calling `f' and `g')
2023-04-21 02:29:08 +0200 <ski> .. hard to show how `f' would call `g', without showing implementation of `f' (apart from calling `g', say)
2023-04-21 02:29:22 +0200 <hammond> oh
2023-04-21 02:29:31 +0200 <hammond> ok heh
2023-04-21 02:32:02 +0200thegeekinside(~thegeekin@189.180.119.50)
2023-04-21 02:35:05 +0200oac(~oac@50-93-248-155.fttp.usinternet.com)
2023-04-21 02:35:36 +0200rburkholder(~blurb@96.45.2.121) (Ping timeout: 246 seconds)
2023-04-21 02:36:52 +0200oac(~oac@50-93-248-155.fttp.usinternet.com) (Client Quit)
2023-04-21 02:37:37 +0200foul_owl(~kerry@71.212.137.212) (Ping timeout: 276 seconds)
2023-04-21 02:44:58 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2023-04-21 02:46:01 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-04-21 02:46:02 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-04-21 02:46:02 +0200wroathe(~wroathe@user/wroathe)
2023-04-21 02:51:27 +0200Albina_Pavlovna(~Albina_Pa@2603-7000-76f0-76e0-f900-6862-141c-1878.res6.spectrum.com)
2023-04-21 02:54:39 +0200jargon(~jargon@174-22-213-236.phnx.qwest.net)
2023-04-21 03:00:01 +0200 <Axman6> hammond: what do you want to do if the String -> Maybe String retuns Nothing?
2023-04-21 03:00:23 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2023-04-21 03:00:24 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl)
2023-04-21 03:03:02 +0200 <Axman6> :t let strToIOStr :: String -> IO String; strToIOStr = undefined; strToMayStr :: String -> Maybe String; strToMayStr = undefined in maybe (pure "") strToIOStr . strToMayStr
2023-04-21 03:03:03 +0200 <lambdabot> String -> IO [Char]
2023-04-21 03:04:12 +0200 <Axman6> (should've read the code, that has the right types but does the wrong thing)
2023-04-21 03:04:53 +0200 <Axman6> maybeFunction is probably what I'd ue
2023-04-21 03:05:41 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl) (Quit: Connection closed)
2023-04-21 03:05:57 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl)
2023-04-21 03:07:16 +0200 <hammond> Axman6: prolly return an empty string like so ""
2023-04-21 03:07:23 +0200 <hammond> I'm a beginner though
2023-04-21 03:10:13 +0200 <hammond> so maybe in the first function he wrote where is says, Nothing -> pure str' -- from f, I can say Nothing -> pure ""
2023-04-21 03:10:20 +0200 <hammond> idk lemmi see if it works
2023-04-21 03:11:04 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl) (Quit: Connection closed)
2023-04-21 03:11:22 +0200 <ski> should work
2023-04-21 03:11:59 +0200 <hammond> yes.
2023-04-21 03:12:13 +0200 <ski> @type fromMaybe "" :: Maybe String -> String
2023-04-21 03:12:14 +0200 <lambdabot> Maybe String -> String
2023-04-21 03:15:51 +0200Albina_Pavlovna(~Albina_Pa@2603-7000-76f0-76e0-f900-6862-141c-1878.res6.spectrum.com) (Quit: ZZZzzz…)
2023-04-21 03:22:28 +0200gmg(~user@user/gehmehgeh)
2023-04-21 03:25:05 +0200gehmehgeh(~user@user/gehmehgeh) (Ping timeout: 255 seconds)
2023-04-21 03:31:34 +0200mei(~mei@user/mei) (Ping timeout: 276 seconds)
2023-04-21 03:35:11 +0200mei(~mei@user/mei)
2023-04-21 03:42:36 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-04-21 03:47:03 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds)
2023-04-21 03:48:58 +0200chanceyan(~chanceyan@user/chanceyan) (Quit: Client closed)
2023-04-21 03:59:39 +0200xff0x(~xff0x@2405:6580:b080:900:ccb0:7555:1a99:76be) (Ping timeout: 260 seconds)
2023-04-21 04:05:20 +0200td_(~td@i53870923.versanet.de) (Ping timeout: 248 seconds)
2023-04-21 04:06:58 +0200td_(~td@i53870924.versanet.de)
2023-04-21 04:09:16 +0200jero98772(~jero98772@2800:484:1d84:9000::6) (Remote host closed the connection)
2023-04-21 04:16:54 +0200epolanski(uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2023-04-21 04:20:05 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2023-04-21 04:29:16 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:95b6:69e0:a477:4ab1)
2023-04-21 04:31:50 +0200jero98772(~jero98772@2800:484:1d84:9000::6)
2023-04-21 04:33:42 +0200srk(~sorki@user/srk) (Quit: ZNC 1.8.1 - https://znc.in)
2023-04-21 04:34:02 +0200srk(~sorki@user/srk)
2023-04-21 04:35:21 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-04-21 04:35:21 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-04-21 04:35:21 +0200wroathe(~wroathe@user/wroathe)
2023-04-21 04:42:55 +0200wroathe(~wroathe@user/wroathe) (Quit: Reconnecting)
2023-04-21 04:43:08 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-04-21 04:43:09 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-04-21 04:43:09 +0200wroathe(~wroathe@user/wroathe)
2023-04-21 04:44:09 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2023-04-21 04:44:51 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2023-04-21 04:45:26 +0200nate1(~nate@98.45.169.16)
2023-04-21 04:48:48 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 255 seconds)
2023-04-21 04:53:24 +0200rburkholder(~blurb@96.45.2.121)
2023-04-21 05:00:29 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds)
2023-04-21 05:02:35 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-04-21 05:03:05 +0200td_(~td@i53870924.versanet.de) (Ping timeout: 240 seconds)
2023-04-21 05:04:47 +0200jero98772(~jero98772@2800:484:1d84:9000::6) (Remote host closed the connection)
2023-04-21 05:05:02 +0200td_(~td@i53870936.versanet.de)
2023-04-21 05:21:04 +0200L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 248 seconds)
2023-04-21 05:26:27 +0200Guest|19(~Guest|19@186.139.39.141)
2023-04-21 05:26:53 +0200 <Guest|19> error 0x80092012
2023-04-21 05:27:05 +0200 <Guest|19> while installing
2023-04-21 05:27:07 +0200 <Guest|19> help
2023-04-21 05:27:48 +0200Guest|19(~Guest|19@186.139.39.141) (Client Quit)
2023-04-21 05:29:12 +0200phma(~phma@host-67-44-208-186.hnremote.net) (Read error: Connection reset by peer)
2023-04-21 05:30:11 +0200phma(phma@2001:5b0:211f:e428:9fb9:b7cc:2fd:9e9)
2023-04-21 05:34:40 +0200 <maerwald[m]> Guest|19: try disabling curl
2023-04-21 05:35:03 +0200 <maerwald[m]> https://www.haskell.org/ghcup/guide/#certificate-authority-errors-curl
2023-04-21 05:35:08 +0200 <maerwald[m]> The command at the bottom
2023-04-21 05:48:25 +0200nate1(~nate@98.45.169.16) (Ping timeout: 240 seconds)
2023-04-21 05:49:28 +0200[Leary](~Leary]@user/Leary/x-0910699) (Remote host closed the connection)
2023-04-21 05:49:44 +0200[Leary](~Leary]@user/Leary/x-0910699)
2023-04-21 06:08:06 +0200[Leary](~Leary]@user/Leary/x-0910699) (Remote host closed the connection)
2023-04-21 06:08:21 +0200[Leary](~Leary]@user/Leary/x-0910699)
2023-04-21 06:08:31 +0200euandreh(~Thunderbi@189.6.18.7) (Ping timeout: 240 seconds)
2023-04-21 06:09:16 +0200mbuf(~Shakthi@49.207.178.186)
2023-04-21 06:11:35 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2023-04-21 06:12:20 +0200pharonix71(~pharonix7@user/pharonix71) (Remote host closed the connection)
2023-04-21 06:12:34 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2023-04-21 06:12:51 +0200pharonix71(~pharonix7@user/pharonix71)
2023-04-21 06:17:47 +0200opticblast(~Thunderbi@172.58.83.143) (Remote host closed the connection)
2023-04-21 06:42:04 +0200monochrom(trebla@216.138.220.146) (Quit: NO CARRIER)
2023-04-21 06:43:31 +0200michalz(~michalz@185.246.207.203)
2023-04-21 06:49:23 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
2023-04-21 06:50:39 +0200 <segfaultfizzbuzz> so i am realizing that i am having a hard time conceptualizing currying,... that is to say when you look at myfunc :: a -> b -> c -> d -> e -> f ... how do you conceptualize that,...
2023-04-21 06:51:13 +0200 <segfaultfizzbuzz> in most languages/noncurried languages i guess all functions look like foofunc :: a -> z
2023-04-21 06:52:12 +0200 <segfaultfizzbuzz> myfunc can mean many different things depending on which arguments were provided...
2023-04-21 06:54:01 +0200 <jackdk> Yes. This is especially instructive when you look at the type for e.g., `map :: (a -> b) -> ([a] -> [b])` could be seen as lifting a function on elements to a function on lists
2023-04-21 06:54:45 +0200 <segfaultfizzbuzz> well, that one is easy to understand because it is a -> z at the top level
2023-04-21 06:55:02 +0200 <jackdk> huh? All functions in Haskell take one argument
2023-04-21 06:56:07 +0200 <segfaultfizzbuzz> one argument? what is a -> b -> c -> d -> e -> f then ?
2023-04-21 06:56:30 +0200 <jackdk> a function that takes an `a` and returns a `b -> c -> d -> e -> f -> ...`
2023-04-21 06:57:00 +0200 <segfaultfizzbuzz> so the evaluation must be in order from start to end?
2023-04-21 06:58:04 +0200monochrom(trebla@216.138.220.146)
2023-04-21 06:58:19 +0200 <jackdk> no
2023-04-21 06:59:36 +0200 <jackdk> The argument passed in won't get forced until it's used. Consider:
2023-04-21 06:59:41 +0200 <jackdk> > (\a b -> b) (error "boom") 3
2023-04-21 06:59:42 +0200 <lambdabot> 3
2023-04-21 07:01:55 +0200 <segfaultfizzbuzz> what lol
2023-04-21 07:02:38 +0200 <jwiegley> lazy evaluation means that arguments are evaluated when they are needed, rather than prior to the "call"
2023-04-21 07:05:16 +0200 <segfaultfizzbuzz> right
2023-04-21 07:05:51 +0200 <segfaultfizzbuzz> but,... somehow the evaluation order is unimportant...?
2023-04-21 07:06:01 +0200 <segfaultfizzbuzz> i guess you can do this due to purity?
2023-04-21 07:06:06 +0200 <jwiegley> there is no "evaluation order"
2023-04-21 07:06:13 +0200 <jwiegley> rather, there's a directed graph of value dependencies
2023-04-21 07:06:41 +0200 <jwiegley> since the return value of the function is the second argument, then the second argument must be evaluated if the result of the function is evaluated
2023-04-21 07:07:01 +0200 <segfaultfizzbuzz> well for a -> b -> c -> d -> e -> f, something might set the value of c,... i suppose that would produce a -> b -> d -> e -> f?
2023-04-21 07:07:01 +0200 <jwiegley> of course, I use the term "second argument" loosely
2023-04-21 07:07:06 +0200dodecahedron(~dodecahed@user/dodecahedron)
2023-04-21 07:07:15 +0200 <jwiegley> there is no "setting the value of c" either
2023-04-21 07:07:28 +0200 <jwiegley> variables are in the mathematical sense: names of values
2023-04-21 07:07:36 +0200 <jwiegley> they aren't memory cells, or locations that can be "changed"
2023-04-21 07:07:37 +0200 <segfaultfizzbuzz> lazy or not, the evaluation has to occur some time... no?
2023-04-21 07:07:37 +0200dodecahedron(~dodecahed@user/dodecahedron) ()
2023-04-21 07:07:41 +0200 <jwiegley> all a function can do is produce a result
2023-04-21 07:07:50 +0200 <jwiegley> the evaluation occurs when the result of the function is demanded
2023-04-21 07:08:05 +0200 <jwiegley> in the case of lambdabot above, the value was needed by the printing function
2023-04-21 07:08:28 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2023-04-21 07:10:20 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Read error: Connection reset by peer)
2023-04-21 07:10:38 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2023-04-21 07:12:16 +0200trev(~trev@user/trev)
2023-04-21 07:12:23 +0200 <segfaultfizzbuzz> well then intead of "set the value of c" perhaps i should say that a function somewhere else might denote myfunc with a specific const value for c (or to a value they know something about)
2023-04-21 07:13:00 +0200 <segfaultfizzbuzz> myfunc2 w x y z = myfunc w x 5 y z
2023-04-21 07:13:28 +0200 <jwiegley> sure
2023-04-21 07:13:50 +0200 <segfaultfizzbuzz> but i am thinking that purity is the only reason this is meaningful
2023-04-21 07:15:14 +0200 <jwiegley> by purity, do you mean that these are really mathematical functions? i.e., outputs are wholly derived from inputs?
2023-04-21 07:17:33 +0200 <jade[m]> I suppose so - if there was global state, then lazy evaluation would simply break
2023-04-21 07:18:59 +0200 <segfaultfizzbuzz> by purity i mean that myfunc is a pure function of its uh, arguments or whatever a thru f are referred to as
2023-04-21 07:19:18 +0200 <segfaultfizzbuzz> and so because it is pure you are guaranteed to be able to reorder things however you please
2023-04-21 07:19:30 +0200 <segfaultfizzbuzz> but if not pure, the reordering would cause a mess
2023-04-21 07:19:40 +0200 <jwiegley> the only thing that really makes life tricky for us as Haskellers is the presence of "undefined" or "error". Without that, then it wouldn't matter what the evaluation strategy was, the result of the function would always be the same for a given set of inputs
2023-04-21 07:19:49 +0200 <jade[m]> I don't quite understand
2023-04-21 07:20:19 +0200 <segfaultfizzbuzz> well undefined and error are a huge fraction of programming
2023-04-21 07:20:56 +0200 <jade[m]> jwiegley: something something bottom, something something inhabitant of every type ;)
2023-04-21 07:21:02 +0200 <jwiegley> yep
2023-04-21 07:21:04 +0200oddline(~oddline@user/oddline)
2023-04-21 07:21:09 +0200 <segfaultfizzbuzz> wha
2023-04-21 07:21:17 +0200 <jwiegley> which means undefined || True != True || undefined
2023-04-21 07:22:28 +0200 <jade[m]> because || is lazy in its second argument iirc
2023-04-21 07:22:50 +0200 <jwiegley> https://en.wikipedia.org/wiki/Reduction_strategy
2023-04-21 07:23:30 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2023-04-21 07:23:31 +0200 <oddline> if I have a new type of Array (say, newtype MyA i a = MyA (Array i a)), is there a way to derive IArray for it?
2023-04-21 07:23:59 +0200 <jwiegley> oddline: have you tried GeneralizedNewtypeDeriving?
2023-04-21 07:24:07 +0200 <jade[m]> GeneralizedNewTypeDeriving
2023-04-21 07:24:18 +0200 <jade[m]> oh you beat me to it
2023-04-21 07:24:31 +0200 <oddline> yes, I have, but I can't quite find the correct invocation
2023-04-21 07:24:34 +0200 <jade[m]> and I also misspelled it
2023-04-21 07:26:24 +0200 <oddline> because IArray is a MultiParamTypeClass
2023-04-21 07:27:14 +0200 <jade[m]> The docs mention that you should also enable that extension then
2023-04-21 07:27:33 +0200jade[m]uploaded an image: (188KiB) < https://libera.ems.host/_matrix/media/v3/download/matrix.org/MQMdUcUDrgEUBPGZIKbEOHoO/d2e5a53a-09d… >
2023-04-21 07:27:33 +0200 <oddline> I have it enabled, but what's the syntax to derive it?
2023-04-21 07:29:29 +0200 <jwiegley> you can pass arguments in the deriving statement
2023-04-21 07:29:29 +0200 <jade[m]> https://stackoverflow.com/questions/33245788/using-xgeneralizednewtypederiving-with-xmultiparamtyp…
2023-04-21 07:29:35 +0200 <jwiegley> deriving (IArray Foo)
2023-04-21 07:30:09 +0200 <oddline> ah, but the answer of that one explains that you can only do this with the last parameter of a multi-param type class
2023-04-21 07:30:19 +0200 <oddline> the newtype here is of Array, which would be the first parameter
2023-04-21 07:30:59 +0200 <oddline> that SO answer seems to think that it can't be done, I just thought I'd check in case there's some way to do it with StandaloneDeriving or DerivingVia or some such
2023-04-21 07:31:21 +0200 <jade[m]> you can do something like `type Foo a b = Bar b a => Baz b a` I guess?
2023-04-21 07:31:40 +0200 <jade[m]> unless I'm missing something
2023-04-21 07:31:43 +0200 <jade[m]> I'm not good with types yet
2023-04-21 07:32:07 +0200 <oddline> I don't think changing the order of the type's arguments is helpful here
2023-04-21 07:32:21 +0200 <oddline> it's the order of the typeclass's parameters that is preventing this
2023-04-21 07:32:27 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds)
2023-04-21 07:32:33 +0200 <jade[m]> hm
2023-04-21 07:36:23 +0200 <oddline> the one thing that I think could work is to enable DerivingVia, FlexibleInstances, StandaloneDeriving, and do this:
2023-04-21 07:36:39 +0200 <oddline> deriving via (IArray Array e) instance IArray MyA e
2023-04-21 07:37:46 +0200 <oddline> wait, no, that syntax is wrong
2023-04-21 07:38:43 +0200zer0bitz(~zer0bitz@2001:2003:f443:d600:28e6:b5d5:3c01:ef5f)
2023-04-21 07:40:01 +0200zer0bitz_(~zer0bitz@2001:2003:f443:d600:4413:c8de:8d77:b5ff) (Ping timeout: 240 seconds)
2023-04-21 07:41:29 +0200 <[Leary]> oddline: Did you try `newtype MyA i a = MyA (Array i a) deriving IArray`? That should just work.
2023-04-21 07:48:17 +0200MatthiasPG(~MatthiasP@202.133.199.92)
2023-04-21 07:49:10 +0200 <MatthiasPG> Hi!  Do we have a data structure that supports 'cons', 'uncons' and 'append' in amortised O(1)?
2023-04-21 07:49:19 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
2023-04-21 07:49:36 +0200 <MatthiasPG> (By append, I mean concatenating two existing structures.)
2023-04-21 07:50:22 +0200 <segfaultfizzbuzz> jwiegley: i assume you mean exceptions/asynchronous exceptions by "error" and the like?
2023-04-21 07:50:34 +0200 <segfaultfizzbuzz> what drives the need for exceptions in a language
2023-04-21 07:52:01 +0200 <jwiegley> segfaultfizzbuzz: no, I just meant bottom: that which has no meaning
2023-04-21 07:57:13 +0200 <oddline> [Leary]: yes, I tried it: error: ‘IArray’ is not a unary constraint, as expected by a deriving clause
2023-04-21 07:57:29 +0200 <mauke> MatthiasPG: closest thing I know of is Seq, whose append is O(log(min(n1, n2)))
2023-04-21 07:59:56 +0200 <oddline> it seems neither GeneralisedNewtypeDeriving nor DerivingVia, even with every other appropriate extension, can't derive where the type you're deriving for isn't the last parameter of a MultiParamTypeClass
2023-04-21 07:59:56 +0200 <MatthiasPG> Thanks, I already know that one.  But I think I need O(1) to achieve my desired asymptotic runtime.
2023-04-21 08:02:06 +0200 <MatthiasPG> http://www.math.tau.ac.il/~haimk/adv-ds-2000/jacm-final.pdf describes a datastructure that fits the bill, but I'm not sure there's an implementation available.  (Circular linked lists would also work, but only in an imperative setting.)
2023-04-21 08:03:33 +0200finnekit(~finnekit@fsf/member/finnekit) (Ping timeout: 246 seconds)
2023-04-21 08:03:39 +0200bramhaag(~bramhaag@134.195.121.39) (Ping timeout: 255 seconds)
2023-04-21 08:03:46 +0200 <segfaultfizzbuzz> ok gtg bye
2023-04-21 08:04:06 +0200Wstfgl0_(~Me-me@146.102.215.218.dyn.iprimus.net.au)
2023-04-21 08:06:34 +0200finnekit(~finnekit@fsf/member/finnekit)
2023-04-21 08:06:34 +0200finnekit(~finnekit@fsf/member/finnekit) (Remote host closed the connection)
2023-04-21 08:06:56 +0200Me-me(~Me-me@user/me-me) (Ping timeout: 248 seconds)
2023-04-21 08:07:04 +0200Wstfgl0_Me-me
2023-04-21 08:07:04 +0200finnekit(~finnekit@fsf/member/finnekit)
2023-04-21 08:08:06 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Ping timeout: 252 seconds)
2023-04-21 08:09:17 +0200chiselfuse(~chiselfus@user/chiselfuse) (Remote host closed the connection)
2023-04-21 08:10:14 +0200anime-ps1cho(~srijan-pa@122.171.16.195)
2023-04-21 08:13:33 +0200 <MatthiasPG> https://hackage.haskell.org/package/monoid-subclasses-1.2.3/docs/Data-Monoid-Instances-Concat.html looks like it might do the trick.  They promise amortised constant time for the relevant operations when wrapping any monoid.
2023-04-21 08:14:49 +0200 <jackdk> MatthiasPG: Finger trees? (Data.Sequence from containers)
2023-04-21 08:15:07 +0200bramhaag(~bramhaag@134.195.121.39)
2023-04-21 08:15:57 +0200 <jackdk> oh, that was already mentinoed
2023-04-21 08:19:55 +0200chiselfuse(~chiselfus@user/chiselfuse)
2023-04-21 08:24:02 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 265 seconds)
2023-04-21 08:24:09 +0200chanceyan(~chanceyan@user/chanceyan)
2023-04-21 08:25:45 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2023-04-21 08:26:10 +0200bramhaag(~bramhaag@134.195.121.39) (Quit: Ping timeout (120 seconds))
2023-04-21 08:27:03 +0200bramhaag(~bramhaag@134.195.121.39)
2023-04-21 08:28:56 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:95b6:69e0:a477:4ab1) (Remote host closed the connection)
2023-04-21 08:31:05 +0200 <MatthiasPG> jackdk, they would be great in practice, but I'm interested in theory, ie in asymptotic O(.) runtime.
2023-04-21 08:31:45 +0200 <MatthiasPG> I'm trying to write up an algorithm that simulates min-heaps in linear time.  See eg https://cstheory.stackexchange.com/questions/41251/simulate-a-heap-in-linear-time
2023-04-21 08:32:02 +0200 <MatthiasPG> (Or also https://cs.stackexchange.com/questions/56643/is-this-special-case-of-a-scheduling-problem-solvable… )
2023-04-21 08:32:40 +0200 <MatthiasPG> Simulate in the sense that you only see the result at the end of a sequence of operations, but not what happens for each individual step.
2023-04-21 08:35:30 +0200slack1256(~slack1256@186.11.20.9) (Remote host closed the connection)
2023-04-21 08:37:33 +0200chanceyan(~chanceyan@user/chanceyan) (Quit: chanceyan)
2023-04-21 08:39:40 +0200son0p(~ff@181.136.122.143) (Ping timeout: 276 seconds)
2023-04-21 08:45:42 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:bfaf:4519:163b:bb1b)
2023-04-21 08:47:50 +0200mncheck(~mncheck@193.224.205.254)
2023-04-21 08:50:47 +0200delYsid(~user@user/delYsid)
2023-04-21 08:57:32 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-04-21 09:00:19 +0200 <delYsid> I sometimes wonder if upper-bounds actually do more harm then good.
2023-04-21 09:00:52 +0200mmhat(~mmh@p200300f1c7132c5cee086bfffe095315.dip0.t-ipconnect.de)
2023-04-21 09:00:59 +0200mmhat(~mmh@p200300f1c7132c5cee086bfffe095315.dip0.t-ipconnect.de) (Client Quit)
2023-04-21 09:03:56 +0200CiaoSen(~Jura@p200300c9573131002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2023-04-21 09:04:24 +0200 <jackdk> I'm a fan
2023-04-21 09:07:07 +0200anime-ps1cho(~srijan-pa@122.171.16.195) (Ping timeout: 268 seconds)
2023-04-21 09:09:38 +0200 <geekosaur> you have to fix more of the ecosystem when a text 2.0 or aeson 2.0 breaks everything
2023-04-21 09:10:05 +0200 <geekosaur> but this argument has been going on for years and nobody is going to change anyone else's mind at this point
2023-04-21 09:10:41 +0200acidjnk(~acidjnk@p200300d6e715c424892a24693f8d0a15.dip0.t-ipconnect.de)
2023-04-21 09:27:10 +0200ft(~ft@p4fc2a88b.dip0.t-ipconnect.de) (Quit: leaving)
2023-04-21 09:29:27 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:95b6:69e0:a477:4ab1)
2023-04-21 09:29:54 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2023-04-21 09:30:41 +0200anime-ps1cho(~srijan-pa@203.192.247.242)
2023-04-21 09:32:56 +0200 <ujjwalgupta[m]> Hey,... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/454df54912e950e437a36907ac01c355280f…>)
2023-04-21 09:33:40 +0200 <ujjwalgupta[m]> * Hey,... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/129e38ed390910f2b8a55c800202107d85eb…>)
2023-04-21 09:33:47 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:95b6:69e0:a477:4ab1) (Ping timeout: 256 seconds)
2023-04-21 09:34:28 +0200 <ujjwalgupta[m]> * Hey,... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/98a4c9d85ca19288e23a8dca97ff9eddc59d…>)
2023-04-21 09:35:31 +0200 <ujjwalgupta[m]> * Hey,... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/af83c4797d7137fb067e72ffbca2b537ae31…>)
2023-04-21 09:35:40 +0200 <ujjwalgupta[m]> * Hey,... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/97688044d707d2f47b54e79225edaee64a21…>)
2023-04-21 09:36:44 +0200 <ujjwalgupta[m]> * Hey,... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/2fef347557ed14d1896fefca634fb9bca8d7…>)
2023-04-21 09:36:50 +0200nschoe(~q@141.101.51.197)
2023-04-21 09:39:38 +0200MatthiasPG(~MatthiasP@202.133.199.92) (Ping timeout: 260 seconds)
2023-04-21 09:47:00 +0200 <geekosaur> please don't do matrix edits in an IRC channel.
2023-04-21 09:47:46 +0200 <geekosaur> (https://imgur.com/I918nG1.png)
2023-04-21 09:56:56 +0200Square2(~Square4@user/square)
2023-04-21 10:06:10 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-04-21 10:09:54 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-04-21 10:12:02 +0200shriekingnoise(~shrieking@186.137.175.87) (Ping timeout: 252 seconds)
2023-04-21 10:16:54 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2023-04-21 10:17:22 +0200cfricke(~cfricke@user/cfricke)
2023-04-21 10:18:11 +0200juri_(~juri@84-19-175-179.pool.ovpn.com) (Ping timeout: 264 seconds)
2023-04-21 10:19:16 +0200anime-ps1cho(~srijan-pa@203.192.247.242) (Ping timeout: 268 seconds)
2023-04-21 10:22:44 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-04-21 10:25:18 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl)
2023-04-21 10:28:05 +0200jil(~user@vps-15050500.vps.ovh.net) (Remote host closed the connection)
2023-04-21 10:30:17 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
2023-04-21 10:31:33 +0200MajorBiscuit(~MajorBisc@145.94.168.115)
2023-04-21 10:31:42 +0200Square2(~Square4@user/square) (Ping timeout: 255 seconds)
2023-04-21 10:41:23 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-04-21 10:42:04 +0200L29Ah(~L29Ah@wikipedia/L29Ah)
2023-04-21 10:42:19 +0200nschoe(~q@141.101.51.197) (Ping timeout: 248 seconds)
2023-04-21 10:51:27 +0200son0p(~ff@181.136.122.143)
2023-04-21 10:53:41 +0200nschoe(~q@141.101.51.197)
2023-04-21 10:54:17 +0200vglfr(~vglfr@46.96.172.186)
2023-04-21 11:00:03 +0200nicm[m](~nicmollel@2001:470:69fc:105::1:feeb) (Quit: You have been kicked for being idle)
2023-04-21 11:01:16 +0200use-value1(~Thunderbi@2a00:23c6:8a03:2f01:21d4:e288:9164:f829)
2023-04-21 11:02:55 +0200use-value(~Thunderbi@2a00:23c6:8a03:2f01:21d4:e288:9164:f829) (Ping timeout: 260 seconds)
2023-04-21 11:02:55 +0200use-value1use-value
2023-04-21 11:07:52 +0200anime-psycho(~srijan-pa@203.192.247.242)
2023-04-21 11:09:58 +0200mc47(~mc47@xmonad/TheMC47)
2023-04-21 11:36:17 +0200stefan-_(~cri@42dots.de) (Quit: ZNC 1.8.2+deb2build5 - https://znc.in)
2023-04-21 11:36:34 +0200stefan-_(~cri@42dots.de)
2023-04-21 11:37:16 +0200chanceyan(~chanceyan@user/chanceyan)
2023-04-21 11:37:18 +0200ubert1(~Thunderbi@2a02:8109:abc0:6434:cc0d:e677:3758:c057)
2023-04-21 11:39:44 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2023-04-21 11:45:49 +0200chanceyan(~chanceyan@user/chanceyan) (Quit: Client closed)
2023-04-21 11:47:11 +0200nate1(~nate@98.45.169.16)
2023-04-21 11:49:00 +0200euandreh(~Thunderbi@189.6.18.7)
2023-04-21 11:50:46 +0200Techcable(~Techcable@user/Techcable) (Ping timeout: 276 seconds)
2023-04-21 11:51:46 +0200nate1(~nate@98.45.169.16) (Ping timeout: 252 seconds)
2023-04-21 11:52:29 +0200euandreh(~Thunderbi@189.6.18.7) (Remote host closed the connection)
2023-04-21 11:54:19 +0200ubert1(~Thunderbi@2a02:8109:abc0:6434:cc0d:e677:3758:c057) (Remote host closed the connection)
2023-04-21 11:55:00 +0200euandreh(~Thunderbi@189.6.18.7)
2023-04-21 11:58:07 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 255 seconds)
2023-04-21 12:01:45 +0200thegeekinside(~thegeekin@189.180.119.50) (Ping timeout: 240 seconds)
2023-04-21 12:02:33 +0200delYsid(~user@user/delYsid) (ERC 5.4.1 (IRC client for GNU Emacs 30.0.50))
2023-04-21 12:03:59 +0200euandreh(~Thunderbi@189.6.18.7) (Quit: euandreh)
2023-04-21 12:05:27 +0200pavonia(~user@user/siracusa)
2023-04-21 12:06:05 +0200vglfr(~vglfr@46.96.172.186) (Ping timeout: 240 seconds)
2023-04-21 12:12:31 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 255 seconds)
2023-04-21 12:16:46 +0200elkcl(~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru) (Ping timeout: 276 seconds)
2023-04-21 12:22:31 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl) (Quit: Connection closed)
2023-04-21 12:22:53 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl)
2023-04-21 12:24:05 +0200nschoe(~q@141.101.51.197) (Ping timeout: 240 seconds)
2023-04-21 12:25:02 +0200elkcl(~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru)
2023-04-21 12:29:18 +0200__monty__(~toonn@user/toonn)
2023-04-21 12:34:49 +0200juri_(~juri@84-19-175-179.pool.ovpn.com)
2023-04-21 12:35:19 +0200CiaoSen(~Jura@p200300c9573131002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2023-04-21 12:35:24 +0200ub(~Thunderbi@p200300ecdf114f6db3d7a9799dbefffd.dip0.t-ipconnect.de)
2023-04-21 12:36:42 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2023-04-21 12:36:45 +0200ubert(~Thunderbi@p548c84d6.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2023-04-21 12:36:45 +0200ububert
2023-04-21 12:39:50 +0200 <carbolymer> ujjwalgupta[m]: your message isn't readable
2023-04-21 12:48:32 +0200acidjnk(~acidjnk@p200300d6e715c424892a24693f8d0a15.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2023-04-21 12:51:58 +0200vglfr(~vglfr@46.96.172.186)
2023-04-21 12:54:05 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-04-21 13:02:14 +0200polux1(~polux@51-15-169-172.rev.poneytelecom.eu)
2023-04-21 13:03:38 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 252 seconds)
2023-04-21 13:03:38 +0200Rembane(~Rembane@li346-36.members.linode.com) (Ping timeout: 252 seconds)
2023-04-21 13:03:42 +0200oddline(~oddline@user/oddline) (Ping timeout: 268 seconds)
2023-04-21 13:04:00 +0200jle`(~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 252 seconds)
2023-04-21 13:04:00 +0200kraftwerk28(~kraftwerk@178.62.210.83) (Ping timeout: 252 seconds)
2023-04-21 13:04:01 +0200polux(~polux@51-15-169-172.rev.poneytelecom.eu) (Read error: Connection reset by peer)
2023-04-21 13:04:01 +0200polux1polux
2023-04-21 13:04:07 +0200Rembane(~Rembane@li346-36.members.linode.com)
2023-04-21 13:04:20 +0200kraftwerk28(~kraftwerk@178.62.210.83)
2023-04-21 13:04:21 +0200jle`(~jle`@cpe-23-240-75-236.socal.res.rr.com)
2023-04-21 13:05:06 +0200dumptruckman(~dumptruck@143-42-239-71.ip.linodeusercontent.com) (Ping timeout: 252 seconds)
2023-04-21 13:05:16 +0200dumptruckman(~dumptruck@143-42-239-71.ip.linodeusercontent.com)
2023-04-21 13:05:59 +0200hugo(znc@verdigris.lysator.liu.se)
2023-04-21 13:14:51 +0200msavoritias(cb716af6b3@irc.cheogram.com) (Ping timeout: 248 seconds)
2023-04-21 13:16:05 +0200oddline(~oddline@user/oddline)
2023-04-21 13:20:26 +0200 <dminuoso> geekosaur: Im not sure whether they can be blamed.
2023-04-21 13:20:49 +0200 <dminuoso> I see this as a matrix issue, not a user issue.
2023-04-21 13:20:53 +0200 <dminuoso> *matrix bridge
2023-04-21 13:21:48 +0200msavoritias(cb716af6b3@irc.cheogram.com)
2023-04-21 13:26:18 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 255 seconds)
2023-04-21 13:31:03 +0200vglfr(~vglfr@46.96.172.186) (Ping timeout: 250 seconds)
2023-04-21 13:33:36 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-04-21 13:37:44 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2023-04-21 13:37:50 +0200anime-psycho(~srijan-pa@203.192.247.242) (Ping timeout: 268 seconds)
2023-04-21 13:40:05 +0200 <oddline> hmm - now I'm trying to use GeneralisedNewtypeDeriving with IArray the other way round, the way that afaik _should_ work, and it's still not working?
2023-04-21 13:40:52 +0200 <oddline> here's a little example https://dpaste.org/TTQSZ and here's what it complains of https://dpaste.org/LsVMr
2023-04-21 13:41:50 +0200 <oddline> the same thing happens whether I use GeneralisedNewtypeDeriving or DerivingVia, and whether or not I use a standalone deriving instance
2023-04-21 13:42:10 +0200 <oddline> I've checked and Word8 and MyByte are definitely coercible (as they should be)
2023-04-21 13:42:33 +0200 <dminuoso> oddline: Are their constructors in scope?
2023-04-21 13:42:43 +0200 <dminuoso> Or mmm
2023-04-21 13:42:56 +0200 <dminuoso> You would get a different error if that was an issue
2023-04-21 13:43:54 +0200 <dminuoso> oddline: I wonder whether this is a GHC bug maybe
2023-04-21 13:44:16 +0200 <dminuoso> The Coercible constraint is quite magical, and maybe its just not visible inside the GND coercion
2023-04-21 13:44:26 +0200 <oddline> I didn't want to presume it was, as this is not space I'm super familiar with, but it certainly smells like it could be
2023-04-21 13:44:33 +0200 <oddline> behaves the same in 9.2 and 9.6 fwiw
2023-04-21 13:44:38 +0200 <dminuoso> oddline: Run it in #ghc perhaps first
2023-04-21 13:44:54 +0200 <dminuoso> Though mmm
2023-04-21 13:45:13 +0200 <dminuoso> Yeah this looks very strange
2023-04-21 13:45:29 +0200 <dminuoso> It's either a bad diagnostic or bad behavior. Either way it's a GHC bug.
2023-04-21 13:46:16 +0200 <dminuoso> oddline: If you added `import GHC.Word` will it compile then?
2023-04-21 13:46:36 +0200 <dminuoso> (Idea is to just bring the constructor of Word8 into scope)
2023-04-21 13:46:51 +0200 <oddline> no difference
2023-04-21 13:48:42 +0200euandreh(~Thunderbi@189.6.18.7)
2023-04-21 13:50:24 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2023-04-21 13:51:35 +0200euandreh(~Thunderbi@189.6.18.7) (Remote host closed the connection)
2023-04-21 13:53:37 +0200nschoe(~q@141.101.51.197)
2023-04-21 13:54:02 +0200gurkenglas(~gurkengla@dynamic-046-114-177-200.46.114.pool.telefonica.de)
2023-04-21 13:54:14 +0200euandreh(~Thunderbi@189.6.18.7)
2023-04-21 14:02:16 +0200xff0x(~xff0x@2405:6580:b080:900:2633:8ce2:126b:e828)
2023-04-21 14:04:04 +0200use-value(~Thunderbi@2a00:23c6:8a03:2f01:21d4:e288:9164:f829) (Remote host closed the connection)
2023-04-21 14:04:23 +0200use-value(~Thunderbi@2a00:23c6:8a03:2f01:21d4:e288:9164:f829)
2023-04-21 14:04:51 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds)
2023-04-21 14:13:34 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2023-04-21 14:17:33 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl) (Quit: Connection closed)
2023-04-21 14:20:52 +0200troydm(~troydm@user/troydm) (Ping timeout: 252 seconds)
2023-04-21 14:21:25 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 240 seconds)
2023-04-21 14:22:20 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl)
2023-04-21 14:24:11 +0200 <[Leary]> oddline, dminuoso: `type role UArray nominal nominal`. You can't coerce underneath it, so you can't coerce the `Word8`.
2023-04-21 14:24:29 +0200 <oddline> ah, poo.
2023-04-21 14:24:42 +0200 <oddline> thanks; shame I bothered #ghc
2023-04-21 14:25:26 +0200 <oddline> the explicit instance is going to be rather nasty to write out, too (assuming it's even possible? I think it is...)
2023-04-21 14:27:13 +0200kenran(~user@user/kenran)
2023-04-21 14:27:58 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
2023-04-21 14:38:30 +0200ddellacosta(~ddellacos@143.244.47.84)
2023-04-21 14:45:10 +0200ccapndave(~ccapndave@mob-194-230-146-228.cgn.sunrise.net)
2023-04-21 14:45:54 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl) (Quit: Connection closed)
2023-04-21 14:46:14 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl)
2023-04-21 14:51:30 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl) (Quit: Connection closed)
2023-04-21 14:52:13 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl)
2023-04-21 14:55:18 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2023-04-21 15:01:34 +0200xff0x(~xff0x@2405:6580:b080:900:2633:8ce2:126b:e828) (Ping timeout: 252 seconds)
2023-04-21 15:03:20 +0200xff0x(~xff0x@ai098135.d.east.v6connect.net)
2023-04-21 15:04:34 +0200hayden_(~hayden@158.123.160.43)
2023-04-21 15:12:23 +0200ddellacosta(~ddellacos@143.244.47.84) (Quit: WeeChat 3.8)
2023-04-21 15:16:36 +0200kenran(~user@user/kenran) (Remote host closed the connection)
2023-04-21 15:17:39 +0200hayden_(~hayden@158.123.160.43) (Ping timeout: 250 seconds)
2023-04-21 15:18:59 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
2023-04-21 15:19:31 +0200hayden_(~hayden@158.123.160.43)
2023-04-21 15:19:31 +0200nehsou^(~nehsou@c-76-105-96-13.hsd1.ga.comcast.net) (Remote host closed the connection)
2023-04-21 15:21:20 +0200titibandit(~titibandi@user/titibandit)
2023-04-21 15:21:27 +0200troydm(~troydm@user/troydm)
2023-04-21 15:21:36 +0200titibandit(~titibandi@user/titibandit) ()
2023-04-21 15:21:54 +0200ddellacosta(~ddellacos@143.244.47.84)
2023-04-21 15:24:27 +0200ft(~ft@p4fc2a88b.dip0.t-ipconnect.de)
2023-04-21 15:27:16 +0200NiceBird(~NiceBird@185.133.111.196)
2023-04-21 15:32:30 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
2023-04-21 15:37:20 +0200 <geekosaur> dminuoso, I'm not blaming them, just asking that it be avoided
2023-04-21 15:37:38 +0200 <geekosaur> I'd have let it go for 1 edit but 5 in a row was a bit much
2023-04-21 15:38:10 +0200 <geekosaur> and would have been worse if synapse hadn't put most of the message in a pastebin due to being too large for IRC
2023-04-21 15:39:24 +0200jero98772(~jero98772@190.158.28.80)
2023-04-21 15:39:35 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-04-21 15:39:36 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-04-21 15:39:36 +0200wroathe(~wroathe@user/wroathe)
2023-04-21 15:39:48 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-04-21 15:40:11 +0200rekahsoft(~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca)
2023-04-21 15:40:47 +0200euandreh(~Thunderbi@189.6.18.7) (Quit: euandreh)
2023-04-21 15:43:52 +0200hayden_(~hayden@158.123.160.43) (Ping timeout: 265 seconds)
2023-04-21 15:45:55 +0200puke(~puke@user/puke) (Quit: puke)
2023-04-21 15:45:55 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-04-21 15:46:40 +0200rekahsoft(~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca) (Remote host closed the connection)
2023-04-21 15:47:10 +0200rekahsoft(~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca)
2023-04-21 15:48:25 +0200nate1(~nate@98.45.169.16)
2023-04-21 15:48:54 +0200puke(~puke@user/puke)
2023-04-21 15:49:31 +0200ccapndave(~ccapndave@mob-194-230-146-228.cgn.sunrise.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2023-04-21 15:51:39 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 255 seconds)
2023-04-21 15:53:14 +0200nate1(~nate@98.45.169.16) (Ping timeout: 246 seconds)
2023-04-21 15:53:42 +0200anime-ps1cho(~srijan-pa@122.171.22.131)
2023-04-21 15:55:26 +0200ccapndave(~ccapndave@mob-194-230-146-228.cgn.sunrise.net)
2023-04-21 15:55:47 +0200rekahsoft(~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca) (Remote host closed the connection)
2023-04-21 15:55:49 +0200gurkenglas(~gurkengla@dynamic-046-114-177-200.46.114.pool.telefonica.de) (Ping timeout: 276 seconds)
2023-04-21 15:56:23 +0200rekahsoft(~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca)
2023-04-21 15:57:18 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-04-21 15:58:25 +0200jero98772(~jero98772@190.158.28.80) (Ping timeout: 276 seconds)
2023-04-21 15:59:28 +0200ccapndave(~ccapndave@mob-194-230-146-228.cgn.sunrise.net) (Client Quit)
2023-04-21 15:59:50 +0200pyook(~puke@user/puke) (Remote host closed the connection)
2023-04-21 16:00:08 +0200pyook(~puke@user/puke)
2023-04-21 16:02:38 +0200rekahsoft(~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca) (Remote host closed the connection)
2023-04-21 16:03:12 +0200rekahsoft(~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca)
2023-04-21 16:08:47 +0200rekahsoft(~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca) (Remote host closed the connection)
2023-04-21 16:11:25 +0200jero98772(~jero98772@2800:484:1d84:9000::1)
2023-04-21 16:12:13 +0200rekahsoft(~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca)
2023-04-21 16:16:57 +0200thegeekinside(~thegeekin@189.180.119.50)
2023-04-21 16:17:22 +0200rekahsoft(~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca) (Remote host closed the connection)
2023-04-21 16:21:04 +0200ub(~Thunderbi@p200300ecdf114f599e78396caae91165.dip0.t-ipconnect.de)
2023-04-21 16:21:34 +0200ubert(~Thunderbi@p200300ecdf114f6db3d7a9799dbefffd.dip0.t-ipconnect.de) (Ping timeout: 265 seconds)
2023-04-21 16:21:34 +0200ububert
2023-04-21 16:21:36 +0200hayden_(~hayden@158.123.160.43)
2023-04-21 16:22:00 +0200rekahsoft(~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca)
2023-04-21 16:29:16 +0200anime-ps1cho(~srijan-pa@122.171.22.131) (Ping timeout: 268 seconds)
2023-04-21 16:35:02 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:bfaf:4519:163b:bb1b) (Quit: WeeChat 2.8)
2023-04-21 16:38:13 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2023-04-21 16:40:54 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Ping timeout: 265 seconds)
2023-04-21 16:40:58 +0200elain4(~textual@static-71-251-226-194.rcmdva.fios.verizon.net)
2023-04-21 16:42:21 +0200hayden_(~hayden@158.123.160.43) (Quit: Leaving)
2023-04-21 16:45:01 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
2023-04-21 16:48:49 +0200anime-ps1cho(~srijan-pa@122.171.22.131)
2023-04-21 16:49:40 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds)
2023-04-21 16:52:26 +0200Sgeo(~Sgeo@user/sgeo)
2023-04-21 16:53:58 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
2023-04-21 16:59:24 +0200nschoe(~q@141.101.51.197) (Ping timeout: 252 seconds)
2023-04-21 17:00:49 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2023-04-21 17:06:52 +0200nschoe(~q@141.101.51.197)
2023-04-21 17:08:20 +0200jero98772(~jero98772@2800:484:1d84:9000::1) (Ping timeout: 260 seconds)
2023-04-21 17:09:17 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2023-04-21 17:09:38 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Quit: ZNC 1.8.2 - https://znc.in)
2023-04-21 17:09:57 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2023-04-21 17:10:02 +0200Me-me(~Me-me@146.102.215.218.dyn.iprimus.net.au) (Quit: This is to deliver a punchline, it's worth it for the bit.)
2023-04-21 17:11:22 +0200acidjnk(~acidjnk@p200300d6e715c4560d89bcbac05bf750.dip0.t-ipconnect.de)
2023-04-21 17:13:29 +0200shriekingnoise(~shrieking@186.137.175.87)
2023-04-21 17:16:09 +0200hippoid(~My_user_n@c-98-213-162-40.hsd1.il.comcast.net)
2023-04-21 17:16:13 +0200hippoid(~My_user_n@c-98-213-162-40.hsd1.il.comcast.net) (Changing host)
2023-04-21 17:16:13 +0200hippoid(~My_user_n@user/hippoid)
2023-04-21 17:18:58 +0200Albina_Pavlovna(~Albina_Pa@2603-7000-76f0-76e0-f900-6862-141c-1878.res6.spectrum.com)
2023-04-21 17:21:31 +0200jero98772(~jero98772@2800:484:1d84:9000::1)
2023-04-21 17:23:35 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 264 seconds)
2023-04-21 17:32:25 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds)
2023-04-21 17:32:38 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl) (Quit: Connection closed)
2023-04-21 17:32:55 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl)
2023-04-21 17:34:24 +0200hueso(~root@user/hueso) (Read error: Connection reset by peer)
2023-04-21 17:34:37 +0200sammelweis(~quassel@2601:401:8003:1f60::5)
2023-04-21 17:34:39 +0200hueso(~root@user/hueso)
2023-04-21 17:34:39 +0200hueso(~root@user/hueso) (Read error: Connection reset by peer)
2023-04-21 17:39:18 +0200hueso(~root@user/hueso)
2023-04-21 17:39:34 +0200anime-ps1cho(~srijan-pa@122.171.22.131) (Ping timeout: 268 seconds)
2023-04-21 17:42:17 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl) (Ping timeout: 265 seconds)
2023-04-21 17:43:33 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
2023-04-21 17:44:28 +0200rekahsoft(~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca) (Remote host closed the connection)
2023-04-21 17:45:11 +0200rekahsoft(~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca)
2023-04-21 17:46:01 +0200cods(~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 252 seconds)
2023-04-21 17:46:13 +0200cods(~fred@82-65-232-44.subs.proxad.net)
2023-04-21 17:50:40 +0200econo(uid147250@user/econo)
2023-04-21 17:51:04 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-04-21 17:52:02 +0200nschoe(~q@141.101.51.197) (Quit: Switching off)
2023-04-21 17:54:02 +0200rekahsoft(~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca) (Remote host closed the connection)
2023-04-21 17:54:34 +0200rekahsoft(~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca)
2023-04-21 18:04:52 +0200 <segfaultfizzbuzz> people normally talk about the performance/throughput impact of garbage collection, but i haven't encountered much discussion about security
2023-04-21 18:05:11 +0200 <[exa]> what kind of security
2023-04-21 18:05:21 +0200 <segfaultfizzbuzz> if you are working with say, a private key of some kind or other sensitive thing
2023-04-21 18:05:29 +0200sammelweis(~quassel@2601:401:8003:1f60::5) (Ping timeout: 265 seconds)
2023-04-21 18:05:37 +0200gurkenglas(~gurkengla@dynamic-046-114-177-200.46.114.pool.telefonica.de)
2023-04-21 18:05:39 +0200 <segfaultfizzbuzz> and that is being handled by a garbage collector, the key won't go away until it is garbage collected (?)
2023-04-21 18:05:52 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2023-04-21 18:05:55 +0200 <[exa]> ah then if you don't manage the memory for it manually you're either doomed beyond discussion or you publicly declare that you don't care
2023-04-21 18:06:11 +0200 <[exa]> spoiler: it won't go away even if garbage collected
2023-04-21 18:06:13 +0200 <segfaultfizzbuzz> okay so you must manually manage sensitive data
2023-04-21 18:06:30 +0200 <segfaultfizzbuzz> oh the memory doesn't get zeroed out i am guessing?
2023-04-21 18:06:45 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-04-21 18:06:52 +0200 <ski> i'd not rely on it
2023-04-21 18:07:03 +0200 <L29Ah> segfaultfizzbuzz: memory only gets zeroed out when given anew to some process by the kernel
2023-04-21 18:07:11 +0200 <[exa]> spoiler 2: your smart operating system will then swap out the key to a hard disk which you will throw out with the other things and random guys who sort the waste will have your keys in plaintext there
2023-04-21 18:07:13 +0200 <segfaultfizzbuzz> yipes
2023-04-21 18:07:22 +0200 <dolio> Even in stuff like C, deallocating isn't going to zero out the memory, most likely.
2023-04-21 18:07:35 +0200 <[exa]> yeah
2023-04-21 18:07:46 +0200 <[exa]> in summary, GC is the least of the problems there :D
2023-04-21 18:07:58 +0200 <segfaultfizzbuzz> so then how do haskellers manage secrets?
2023-04-21 18:08:21 +0200 <segfaultfizzbuzz> it seems like you must know when you are done and you must mutate a secret (zero out or whatever) when done
2023-04-21 18:08:45 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2023-04-21 18:09:12 +0200 <[exa]> good question, I guess most people go the "no care" way
2023-04-21 18:09:24 +0200 <jean-paul[m]> No, before you start you must carefully allocate the memory so that it isn't carelessly copied by other parts of your system
2023-04-21 18:09:41 +0200 <segfaultfizzbuzz> wow what lo
2023-04-21 18:09:46 +0200 <segfaultfizzbuzz> lol
2023-04-21 18:09:47 +0200sammelweis(~quassel@2601:401:8003:1f60:3859:e60e:adbd:7270)
2023-04-21 18:10:29 +0200 <L29Ah> segfaultfizzbuzz: i don't care: i don't see a reason to tbh
2023-04-21 18:10:30 +0200 <[exa]> also usually the low-level libraries do the heavy lifting, such as you usually use something like openSSL and gnuTLS to make https connections, which are typically written so that they do the Rightest Thing
2023-04-21 18:10:50 +0200 <segfaultfizzbuzz> so basically, if you manage confidential/secret data, that must be a linear/affine type,... and actually it might be worthwhile to call that a "secure linear type" or "secure affine type" as the memory management needs to also wipe the data...
2023-04-21 18:11:24 +0200 <[exa]> and make sure the data is locked in memory
2023-04-21 18:11:28 +0200 <segfaultfizzbuzz> locked?
2023-04-21 18:11:36 +0200 <jean-paul[m]> It's not clear how much sense it makes to talk about the types of such things until you have a type system that acknowledges the existence of things like MMUs and page faults and swap.
2023-04-21 18:11:38 +0200 <[exa]> see `man mlockall`
2023-04-21 18:12:26 +0200 <[exa]> also, if you want to be really sure, you want to prevent all CPU branchy instructions that use bits from the secret data (if(secret_bit) can be sploited to leak the bit)
2023-04-21 18:12:56 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2023-04-21 18:13:04 +0200 <segfaultfizzbuzz> what? if(secret_bit)?
2023-04-21 18:13:09 +0200 <[exa]> and finally you might want to completely prevent other programs from accessing the RAM neighborhood of your data in order to prevent the rowhammer attacks
2023-04-21 18:13:24 +0200 <[exa]> segfaultfizzbuzz: yeah there are branch predictor timing attacks against that
2023-04-21 18:13:25 +0200 <ski> segfaultfizzbuzz : timing attacks ?
2023-04-21 18:13:33 +0200 <jean-paul[m]> If you branch depending on the contents of your secret, you leak your secret in the time it takes to complete your operation.
2023-04-21 18:13:36 +0200 <segfaultfizzbuzz> jean-paul[m]: i don't see any reason for swap today (???) the other two things i don't understand
2023-04-21 18:13:59 +0200 <segfaultfizzbuzz> jean-paul[m]: ah right
2023-04-21 18:14:14 +0200 <jean-paul[m]> segfaultfizzbuzz: Even if you don't see any reason for it, it does exist, so if you want to write software that doesn't write its secrets to a hard drive somewhere, you have to deal with it.
2023-04-21 18:14:16 +0200 <L29Ah> segfaultfizzbuzz: swap is great for indefinite suspend (on battery devices) and for leaking leaky software
2023-04-21 18:14:29 +0200 <segfaultfizzbuzz> jean-paul[m]: which also means that strictness is important for security, i think because laziness becomes a timing channel?
2023-04-21 18:14:43 +0200 <geekosaur> or for building ghc on a laptop ")
2023-04-21 18:14:52 +0200 <[exa]> segfaultfizzbuzz: the problem is way beyond strictness and laziness
2023-04-21 18:14:59 +0200 <jean-paul[m]> segfaultfizzbuzz: Possibly! Sounds like an interesting paper someone should write/someone has already written and would be fun to read.
2023-04-21 18:15:11 +0200 <[exa]> also that reminds me the funny phreak with listening to RSA keys via high-frequency microphone
2023-04-21 18:15:16 +0200 <[exa]> where's the paper
2023-04-21 18:15:47 +0200 <jean-paul[m]> Basically, your computer is a sieve and the default behavior is for anything you put in it to leak out of a million holes.
2023-04-21 18:15:51 +0200 <[exa]> ah yes here, that's a magnificent side channel https://www.cs.tau.ac.il/~tromer/acoustic/
2023-04-21 18:15:54 +0200 <dolio> See? You've been not caring about all the security nuances of all the software you use this whole time, just like most other people.
2023-04-21 18:16:00 +0200 <segfaultfizzbuzz> jean-paul[m]: yeah i have learned that much
2023-04-21 18:16:11 +0200anime-psycho(~srijan-pa@122.171.22.131)
2023-04-21 18:16:25 +0200 <segfaultfizzbuzz> but like, do big iron servers have swap enabled? like "hey we have 4tb of ram but turn swap on just in case"? seems pretty lol
2023-04-21 18:19:46 +0200hueso(~root@user/hueso) (Quit: hueso)
2023-04-21 18:22:46 +0200 <segfaultfizzbuzz> well i gotta run sorry but i will check the logs in a couple hours or so
2023-04-21 18:23:11 +0200hueso(~root@user/hueso)
2023-04-21 18:26:00 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-04-21 18:27:40 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds)
2023-04-21 18:34:37 +0200mbuf(~Shakthi@49.207.178.186) (Quit: Leaving)
2023-04-21 18:34:52 +0200 <__monty__> I wonder whether non-strict evaluation actually allows for more opportunities to combat memory/timing side-channels by randomly evaluating thunks before they're needed?
2023-04-21 18:36:53 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-04-21 18:39:38 +0200 <jean-paul[m]> Anything "random" doesn't solve timing side-channels.
2023-04-21 18:39:58 +0200 <jean-paul[m]> It adds more noise which might require you take more samples before you find the signal, that's all.
2023-04-21 18:41:50 +0200 <dolio> Most non-strict evaluation strategies aren't random, either.
2023-04-21 18:42:28 +0200 <dolio> At least, the ones that get used.
2023-04-21 18:42:45 +0200 <__monty__> dolio: I mean intentionally taking advantage of the flexibility in when things have to get evaluated.
2023-04-21 18:43:05 +0200 <jean-paul[m]> I suspect it would be very annoying in general if thunk evaluation order were randomized.
2023-04-21 18:43:41 +0200 <__monty__> jean-paul[m]: Noise is already a bonus. But the runtime could also intentionally try to obscure signals.
2023-04-21 18:44:07 +0200 <juri_> crypto in haskell is a Hard problem.
2023-04-21 18:44:43 +0200 <jean-paul[m]> __monty__: in strict languages, people are sometimes tempted to add delays and such to deal with this problem. It's not generally recognized as a winning strategy. I imagine the same thing would be true about playing games with thunk evaluation order in a lazy language.
2023-04-21 18:45:15 +0200 <jean-paul[m]> Just a hunch, of course.
2023-04-21 18:46:45 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-04-21 18:47:07 +0200 <__monty__> I think it's still interesting as a way to deal with things where you can't completely get to constant-time operation pragmatically.
2023-04-21 18:48:10 +0200MajorBiscuit(~MajorBisc@145.94.168.115) (Quit: WeeChat 3.6)
2023-04-21 18:53:40 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
2023-04-21 18:58:12 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Ping timeout: 265 seconds)
2023-04-21 18:58:54 +0200jargon(~jargon@174-22-213-236.phnx.qwest.net) (Remote host closed the connection)
2023-04-21 19:01:07 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-04-21 19:07:00 +0200ddellacosta(~ddellacos@143.244.47.84) (Ping timeout: 252 seconds)
2023-04-21 19:12:31 +0200ddellacosta(~ddellacos@143.244.47.84)
2023-04-21 19:16:49 +0200natto(~natto@140.238.225.67) (Quit: a.)
2023-04-21 19:18:04 +0200natto(~natto@140.238.225.67)
2023-04-21 19:20:34 +0200gurkenglas(~gurkengla@dynamic-046-114-177-200.46.114.pool.telefonica.de) (Ping timeout: 276 seconds)
2023-04-21 19:23:03 +0200Albina_Pavlovna(~Albina_Pa@2603-7000-76f0-76e0-f900-6862-141c-1878.res6.spectrum.com) (Quit: bb)
2023-04-21 19:28:56 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
2023-04-21 19:31:49 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-04-21 19:33:30 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds)
2023-04-21 19:36:11 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 264 seconds)
2023-04-21 19:38:37 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-04-21 19:40:57 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-04-21 19:40:57 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-04-21 19:40:57 +0200wroathe(~wroathe@user/wroathe)
2023-04-21 19:47:59 +0200gurkenglas(~gurkengla@dynamic-046-114-177-200.46.114.pool.telefonica.de)
2023-04-21 19:49:20 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
2023-04-21 19:51:44 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2023-04-21 19:52:42 +0200 <jean-paul[m]> modern-uri has this RText type and doesn't seem to export its constructor... So I cannot pattern match on values of this type, right?
2023-04-21 19:53:34 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Ping timeout: 252 seconds)
2023-04-21 19:53:40 +0200 <monochrom> So you go through all of modern-uri's API and look for other ways.
2023-04-21 19:55:30 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-7945-4893-06bb-2687.rev.sfr.net)
2023-04-21 19:55:48 +0200delYsid(~user@user/delYsid)
2023-04-21 19:57:09 +0200 <jean-paul[m]> I don't see anything, but I also can't prove a negative :)
2023-04-21 19:57:20 +0200Guest|82(~Guest|82@ip-178-13-248-87.eidsiva.net)
2023-04-21 19:58:07 +0200Guest|82(~Guest|82@ip-178-13-248-87.eidsiva.net) (Client Quit)
2023-04-21 19:59:15 +0200 <jean-paul[m]> Or, well, I see unRText so I can unwrap the values and then do something with those, but I was hoping to just do one pattern for this whole thing.
2023-04-21 20:00:10 +0200 <monochrom> You can write your own uni-directional pattern synonym :)
2023-04-21 20:00:33 +0200 <ski> unRText :: RText l -> Text
2023-04-21 20:00:42 +0200 <jean-paul[m]> Aha, an excuse to learn about pattern synonyms.
2023-04-21 20:00:44 +0200 <ski> yea
2023-04-21 20:00:53 +0200 <ski> (or view patterns)
2023-04-21 20:01:19 +0200 <monochrom> But personally I don't obsess over pattern matching when the whole point is an abstract type.
2023-04-21 20:03:27 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
2023-04-21 20:04:03 +0200 <jean-paul[m]> I think the point of RText is only safe construction.
2023-04-21 20:04:28 +0200 <monochrom> Yes, and "safe construction" = "abstract type".
2023-04-21 20:04:37 +0200 <jean-paul[m]> Hm.
2023-04-21 20:04:57 +0200 <monochrom> Just like "fittest" = "survival"
2023-04-21 20:11:10 +0200 <ski> OCaml has "private types", which allow deconstruction (matching and projection), but not construction, outside of the module (see <https://v2.ocaml.org/manual/privatetypes.html>)
2023-04-21 20:12:23 +0200 <monochrom> In the case of RText, I actually question the value of it in the first place.
2023-04-21 20:13:54 +0200 <monochrom> But in general when abstract types make sense, I doubt the value of verbatim deconstruction. For example Sequence, HashMap.
2023-04-21 20:17:59 +0200 <monochrom> Clarification: I question the value of having this RText type in the first place.
2023-04-21 20:19:41 +0200 <jean-paul[m]> How would you ensure safety?
2023-04-21 20:20:09 +0200 <monochrom> How much safety in this case do I ever need to ensure?
2023-04-21 20:20:36 +0200 <monochrom> Like, I know that URI's uriHost field has a valid host. Great.
2023-04-21 20:20:50 +0200 <monochrom> But I already know that from the field name "uriHost" itself.
2023-04-21 20:22:49 +0200 <monochrom> You may raise the marginal possibility that I handcode my own "myURI = URI{uriHost : "key=value", ...}" and goof up there.
2023-04-21 20:23:10 +0200 <monochrom> But I don't even do that. I can just use any of the URI parsers provided.
2023-04-21 20:23:50 +0200 <monochrom> I am lazy. I write "parseURI "http:..."" not "URI{handcode every field painstakingly}".
2023-04-21 20:26:14 +0200 <c_wraith> but do you use an irrefutable match in the process?
2023-04-21 20:26:39 +0200 <monochrom> Depends on the context and the risk model.
2023-04-21 20:26:44 +0200 <jean-paul[m]> Reasonable. I wonder if a pattern like `add u@URI{uriQuery} = u { uriQuery = (mkQueryKey "foo", mkQueryValue "Bar"):uriQuery }` gets some benefit here. But that was really annoying to type out, I don't think I like it.
2023-04-21 20:27:13 +0200 <jean-paul[m]> (and still wrong since mk* can fail)
2023-04-21 20:28:26 +0200 <monochrom> There is some small value in this particular safety. I argue that it is too small.
2023-04-21 20:30:29 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-04-21 20:36:48 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 248 seconds)
2023-04-21 20:43:52 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2023-04-21 20:55:13 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 250 seconds)
2023-04-21 20:55:22 +0200Techcable(~Techcable@user/Techcable)
2023-04-21 21:01:31 +0200anime-psycho(~srijan-pa@122.171.22.131) (Quit: Lost terminal)
2023-04-21 21:03:47 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl)
2023-04-21 21:08:24 +0200heraldo(~heraldo@user/heraldo)
2023-04-21 21:08:30 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl) (Client Quit)
2023-04-21 21:09:22 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2023-04-21 21:14:11 +0200sammelweis(~quassel@2601:401:8003:1f60:3859:e60e:adbd:7270) (Ping timeout: 246 seconds)
2023-04-21 21:15:34 +0200gurkenglas(~gurkengla@dynamic-046-114-177-200.46.114.pool.telefonica.de) (Ping timeout: 252 seconds)
2023-04-21 21:20:25 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 256 seconds)
2023-04-21 21:24:59 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
2023-04-21 21:27:49 +0200Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
2023-04-21 21:28:25 +0200vglfr(~vglfr@46.96.172.186)
2023-04-21 21:29:58 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 265 seconds)
2023-04-21 21:31:04 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-04-21 21:34:12 +0200elevenkb(~elevenkb@105.225.53.253)
2023-04-21 21:35:27 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 255 seconds)
2023-04-21 21:35:53 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-04-21 21:40:08 +0200elevenkb(~elevenkb@105.225.53.253) (Remote host closed the connection)
2023-04-21 21:40:25 +0200L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 240 seconds)
2023-04-21 21:48:24 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
2023-04-21 21:48:48 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 248 seconds)
2023-04-21 21:51:25 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl)
2023-04-21 21:55:21 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2023-04-21 22:01:15 +0200biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2023-04-21 22:07:27 +0200biberu(~biberu@user/biberu)
2023-04-21 22:10:37 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-04-21 22:11:32 +0200elevenkb(~elevenkb@105.225.53.253)
2023-04-21 22:13:25 +0200heraldo(~heraldo@user/heraldo) (Ping timeout: 240 seconds)
2023-04-21 22:18:39 +0200heraldo(~heraldo@user/heraldo)
2023-04-21 22:20:54 +0200ryantrinkle(~ryantrink@38.27.99.245) (Ping timeout: 255 seconds)
2023-04-21 22:22:44 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
2023-04-21 22:28:55 +0200 <peutri> Anyone have experience with http-conduit over http-client-tls? I'm having trouble parallelizing it.
2023-04-21 22:29:42 +0200 <peutri> I'm launching a few threads downloading stuff over https, shared Manager, and after a few minutes they all crash for lack of entropy as reported by lower-level cryptonite
2023-04-21 22:29:59 +0200accord(uid568320@id-568320.hampstead.irccloud.com)
2023-04-21 22:35:00 +0200jargon(~jargon@174-22-213-236.phnx.qwest.net)
2023-04-21 22:36:06 +0200ryantrinkle(~ryantrink@209.91.195.194)
2023-04-21 22:36:30 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-04-21 22:36:54 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
2023-04-21 22:37:45 +0200heraldo(~heraldo@user/heraldo) (Ping timeout: 240 seconds)
2023-04-21 22:39:27 +0200heraldo(~heraldo@user/heraldo)
2023-04-21 22:41:25 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
2023-04-21 22:42:45 +0200ryantrinkle(~ryantrink@209.91.195.194) (Ping timeout: 240 seconds)
2023-04-21 22:44:04 +0200heraldo(~heraldo@user/heraldo) (Ping timeout: 252 seconds)
2023-04-21 22:50:30 +0200heraldo(~heraldo@user/heraldo)
2023-04-21 22:56:08 +0200ryantrinkle(~ryantrink@209.91.235.83)
2023-04-21 22:57:41 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-04-21 22:58:04 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2023-04-21 22:59:09 +0200heraldo(~heraldo@user/heraldo) (Ping timeout: 255 seconds)
2023-04-21 22:59:19 +0200 <peutri> (threadcount times https://pastebin.com/JPzTHG9c after downloading ~3MB of data)
2023-04-21 23:00:04 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-04-21 23:00:47 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2023-04-21 23:01:05 +0200[exa](~exa@user/exa/x-3587197) (Remote host closed the connection)
2023-04-21 23:01:18 +0200kimiamania(~65804703@user/kimiamania) (Quit: PegeLinux)
2023-04-21 23:01:30 +0200heraldo(~heraldo@user/heraldo)
2023-04-21 23:01:37 +0200kimiamania(~65804703@user/kimiamania)
2023-04-21 23:11:19 +0200heraldo(~heraldo@user/heraldo) (Ping timeout: 276 seconds)
2023-04-21 23:11:31 +0200dsrt^(~dsrt@c-76-105-96-13.hsd1.ga.comcast.net)
2023-04-21 23:12:30 +0200heraldo(~heraldo@user/heraldo)
2023-04-21 23:16:48 +0200heraldo(~heraldo@user/heraldo) (Ping timeout: 248 seconds)
2023-04-21 23:23:46 +0200heraldo(~heraldo@user/heraldo)
2023-04-21 23:25:56 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-7945-4893-06bb-2687.rev.sfr.net) (Remote host closed the connection)
2023-04-21 23:28:05 +0200heraldo(~heraldo@user/heraldo) (Ping timeout: 240 seconds)
2023-04-21 23:28:52 +0200vglfr(~vglfr@46.96.172.186) (Ping timeout: 265 seconds)
2023-04-21 23:31:02 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-04-21 23:31:44 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
2023-04-21 23:32:12 +0200cassiopea(~cassiopea@user/cassiopea)
2023-04-21 23:34:04 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
2023-04-21 23:34:51 +0200heraldo(~heraldo@user/heraldo)
2023-04-21 23:35:16 +0200trev(~trev@user/trev) (Quit: trev)
2023-04-21 23:35:23 +0200son0p(~ff@181.136.122.143) (Read error: Connection reset by peer)
2023-04-21 23:37:01 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-04-21 23:38:37 +0200rf(~rf@2605:59c8:1604:2210:3b9d:e321:bd23:2925)
2023-04-21 23:39:05 +0200heraldo(~heraldo@user/heraldo) (Ping timeout: 240 seconds)
2023-04-21 23:42:13 +0200michalz(~michalz@185.246.207.203) (Remote host closed the connection)
2023-04-21 23:43:45 +0200elain4(~textual@static-71-251-226-194.rcmdva.fios.verizon.net) (Read error: Connection reset by peer)
2023-04-21 23:45:47 +0200elevenkb(~elevenkb@105.225.53.253) (Ping timeout: 264 seconds)
2023-04-21 23:46:18 +0200heraldo(~heraldo@user/heraldo)
2023-04-21 23:47:22 +0200mncheck(~mncheck@193.224.205.254) (Ping timeout: 252 seconds)
2023-04-21 23:48:50 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
2023-04-21 23:56:10 +0200heraldo(~heraldo@user/heraldo) (Ping timeout: 276 seconds)
2023-04-21 23:57:24 +0200heraldo(~heraldo@user/heraldo)
2023-04-21 23:57:54 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2023-04-21 23:58:05 +0200__monty__(~toonn@user/toonn) (Quit: leaving)