2025/01/08

2025-01-08 00:04:37 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2025-01-08 00:07:59 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Quit: Bye!)
2025-01-08 00:09:23 +0100remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2025-01-08 00:10:26 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2025-01-08 00:15:09 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 00:15:19 +0100ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2025-01-08 00:16:31 +0100target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2025-01-08 00:18:19 +0100orangeFlu(~orangeFlu@240-100-179-143.ftth.glasoperator.nl) orangeFlu
2025-01-08 00:18:33 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds)
2025-01-08 00:18:33 +0100ljdarj1ljdarj
2025-01-08 00:21:36 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2025-01-08 00:33:11 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2025-01-08 00:33:12 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 00:37:27 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2025-01-08 00:40:05 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds)
2025-01-08 00:41:03 +0100Sgeo(~Sgeo@user/sgeo) Sgeo
2025-01-08 00:41:19 +0100acidjnk_new(~acidjnk@p200300d6e7283f16946c8eff929943ae.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2025-01-08 00:45:49 +0100sprotte24(~sprotte24@p200300d16f116c002c29764fca4182ef.dip0.t-ipconnect.de) (Quit: Leaving)
2025-01-08 00:48:34 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 00:53:42 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2025-01-08 00:57:57 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 00:59:23 +0100emmanuelux(~emmanuelu@user/emmanuelux) emmanuelux
2025-01-08 01:02:28 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2025-01-08 01:05:24 +0100dsrt^(~dsrt@c-98-242-74-66.hsd1.ga.comcast.net) (Ping timeout: 252 seconds)
2025-01-08 01:11:44 +0100connrs(~connrs@user/connrs) (Read error: Connection reset by peer)
2025-01-08 01:14:32 +0100dsrt^(dsrt@c-98-242-74-66.hsd1.ga.comcast.net)
2025-01-08 01:15:41 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 01:16:47 +0100kaskal(~kaskal@84-115-237-124.cable.dynamic.surfer.at) (Quit: ZNC - https://znc.in)
2025-01-08 01:17:19 +0100kaskal(~kaskal@84-115-237-124.cable.dynamic.surfer.at) kaskal
2025-01-08 01:21:28 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2025-01-08 01:24:11 +0100connrs(~connrs@user/connrs) connrs
2025-01-08 01:24:23 +0100whatsupdoc_(uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2025-01-08 01:24:32 +0100JuanDaugherty(~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
2025-01-08 01:24:49 +0100xff0x_(~xff0x@2405:6580:b080:900:7a35:e66e:66c0:36ee) (Ping timeout: 260 seconds)
2025-01-08 01:31:55 +0100 <danso> i'm confused about why this line defines a function which returns Nothing for all inputs
2025-01-08 01:32:01 +0100 <danso> safediv :: Int -> Int -> Maybe Int; safediv x y = Nothing >> pure (x `div` y)
2025-01-08 01:32:05 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 01:32:52 +0100 <danso> i expected (>>) to discard the nothing and return pure (div x y) for all inputs (sometimes failing)
2025-01-08 01:33:53 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 248 seconds)
2025-01-08 01:36:33 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2025-01-08 01:38:10 +0100 <orangeFlu> You are basically making a chain of monads, piping the result from one to the other. if any of those Maybe's is Nothing, the whole thing is Nothing. It's just how this monad works
2025-01-08 01:41:13 +0100 <ncf> if you think of Maybe as an exception/failure monad, then your program is do fail; pure ...
2025-01-08 01:41:23 +0100 <ncf> this fails instead of returning anything, as in every language
2025-01-08 01:41:48 +0100 <ncf> in other words >> discards values, not effects
2025-01-08 01:42:45 +0100 <orangeFlu> If you know >>=, then >> is like it except it discards the result of the computation, like ncf said, it doesn't 'bind' it to anything
2025-01-08 01:45:21 +0100ft(~ft@p4fc2a354.dip0.t-ipconnect.de) (Remote host closed the connection)
2025-01-08 01:45:25 +0100notzmv(~umar@user/notzmv) notzmv
2025-01-08 01:45:55 +0100 <EvanR> what did you want Nothing >> something to do
2025-01-08 01:46:10 +0100 <EvanR> if it was like 0 + something... it would have no effect
2025-01-08 01:46:34 +0100 <EvanR> though it's acting more like 0 * something = 0
2025-01-08 01:47:28 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 01:49:16 +0100ft(~ft@p4fc2a354.dip0.t-ipconnect.de) ft
2025-01-08 01:55:16 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2025-01-08 01:57:21 +0100prasad(~Thunderbi@c-73-75-25-251.hsd1.in.comcast.net) (Ping timeout: 248 seconds)
2025-01-08 02:07:08 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 02:08:48 +0100prasad(~Thunderbi@c-73-75-25-251.hsd1.in.comcast.net)
2025-01-08 02:12:21 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2025-01-08 02:12:46 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2025-01-08 02:22:30 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 02:22:56 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2025-01-08 02:26:54 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2025-01-08 02:32:26 +0100doyougnu(~doyougnu@syn-045-046-170-068.res.spectrum.com) (Quit: ZNC 1.8.2 - https://znc.in)
2025-01-08 02:32:53 +0100lbseale(~quassel@user/ep1ctetus) (Quit: No Ping reply in 180 seconds.)
2025-01-08 02:33:00 +0100saulosilva(~saulosilv@181.216.220.21) saulosilva
2025-01-08 02:34:18 +0100lbseale(~quassel@user/ep1ctetus) ep1ctetus
2025-01-08 02:34:43 +0100doyougnu(~doyougnu@syn-045-046-170-068.res.spectrum.com) doyougnu
2025-01-08 02:35:00 +0100 <sim590> I'm presently looking at how to make Haskell bindings for a C++ library. I'm reading https://wiki.haskell.org/Cxx_foreign_function_interface and I see that there are many approaches. From the history of the page, fficxx seems to have been brought up most recently. It doesn't mean it's best. I'm looking for an opinion as to what to look at first.
2025-01-08 02:37:53 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 02:40:15 +0100otto_s(~user@p5de2f2cf.dip0.t-ipconnect.de) (Ping timeout: 265 seconds)
2025-01-08 02:41:53 +0100otto_s(~user@p4ff2701d.dip0.t-ipconnect.de)
2025-01-08 02:42:35 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2025-01-08 02:48:36 +0100Jeanne-Kamikaze(~Jeanne-Ka@79.127.217.40) Jeanne-Kamikaze
2025-01-08 02:53:15 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 02:54:30 +0100Too2manyQ5(~Too2manyQ@mwg-w15.infosec.fedex.com)
2025-01-08 02:57:41 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2025-01-08 03:02:43 +0100xdminsy(~xdminsy@117.147.71.200) (Read error: Connection reset by peer)
2025-01-08 03:03:46 +0100xdminsy(~xdminsy@117.147.71.200) xdminsy
2025-01-08 03:04:23 +0100 <sim590> I guess that the page hints on the approach of making C++ look like C. They say "This seems to be the standard technique for bridging the gap between Haskell and C++.". I guess, I will look into that first.
2025-01-08 03:06:10 +0100m1dnight_(~m1dnight@d8D861908.access.telenet.be) (Read error: Connection reset by peer)
2025-01-08 03:08:38 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 03:11:50 +0100saulosilva(~saulosilv@181.216.220.21) (Quit: Client closed)
2025-01-08 03:12:06 +0100m1dnight_(~m1dnight@d8D861908.access.telenet.be) m1dnight
2025-01-08 03:13:36 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2025-01-08 03:21:52 +0100Smiles(uid551636@id-551636.lymington.irccloud.com) Smiles
2025-01-08 03:24:00 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 03:30:45 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2025-01-08 03:37:41 +0100Too2manyQ5(~Too2manyQ@mwg-w15.infosec.fedex.com) (Quit: Client closed)
2025-01-08 03:38:40 +0100OftenFaded48(~OftenFade@user/tisktisk) OftenFaded
2025-01-08 03:42:02 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 03:45:36 +0100weary-traveler(~user@user/user363627) user363627
2025-01-08 03:46:22 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2025-01-08 03:49:43 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 03:55:17 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2025-01-08 03:57:52 +0100OftenFaded48(~OftenFade@user/tisktisk) (Quit: Client closed)
2025-01-08 04:06:07 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 04:07:07 +0100JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2025-01-08 04:10:52 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2025-01-08 04:15:03 +0100Square(~Square@user/square) (Ping timeout: 246 seconds)
2025-01-08 04:15:15 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 252 seconds)
2025-01-08 04:19:45 +0100prasad(~Thunderbi@c-73-75-25-251.hsd1.in.comcast.net) (Ping timeout: 276 seconds)
2025-01-08 04:21:30 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 04:23:41 +0100 <haskellbridge> <maerwald> When will merijn fix his bouncer?
2025-01-08 04:25:49 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2025-01-08 04:35:36 +0100Square(~Square@user/square) Square
2025-01-08 04:36:54 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 04:41:18 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2025-01-08 04:47:57 +0100Square(~Square@user/square) (Ping timeout: 246 seconds)
2025-01-08 04:49:29 +0100Jeanne-Kamikaze(~Jeanne-Ka@79.127.217.40) (Quit: Leaving)
2025-01-08 04:52:17 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 04:55:14 +0100caconym3(~caconym@user/caconym) caconym
2025-01-08 04:56:33 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2025-01-08 04:57:05 +0100caconym(~caconym@user/caconym) (Ping timeout: 248 seconds)
2025-01-08 04:57:06 +0100caconym3caconym
2025-01-08 05:00:36 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-01-08 05:00:59 +0100huhu(~huhu@2605:52c0:2:4de:f040:60ff:fe3f:6e4a)
2025-01-08 05:02:36 +0100lianhuayu(~lianhuayu@2605:52c0:2:4de:f040:60ff:fe3f:6e4a)
2025-01-08 05:04:43 +0100huhu(~huhu@2605:52c0:2:4de:f040:60ff:fe3f:6e4a) (Client Quit)
2025-01-08 05:04:48 +0100lianhuayu(~lianhuayu@2605:52c0:2:4de:f040:60ff:fe3f:6e4a) (Client Quit)
2025-01-08 05:07:40 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 05:08:03 +0100aforemny(~aforemny@i59F4C56A.versanet.de) aforemny
2025-01-08 05:08:53 +0100aforemny_(~aforemny@2001:9e8:6cc4:4700:8cff:3cd6:574c:3859) (Ping timeout: 248 seconds)
2025-01-08 05:12:34 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2025-01-08 05:14:00 +0100nkatte(~nkatte@user/nkatte) (Quit: nkatte)
2025-01-08 05:17:49 +0100notzmv(~umar@user/notzmv) (Ping timeout: 265 seconds)
2025-01-08 05:23:12 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 05:24:19 +0100caconym(~caconym@user/caconym) (Quit: bye)
2025-01-08 05:24:44 +0100caconym3(~caconym@user/caconym) caconym
2025-01-08 05:25:21 +0100caconym3caconym
2025-01-08 05:26:08 +0100Square(~Square4@user/square) Square
2025-01-08 05:27:02 +0100Square(~Square4@user/square) (Quit: Leaving)
2025-01-08 05:27:52 +0100Square(~Square4@user/square) Square
2025-01-08 05:27:58 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2025-01-08 05:32:12 +0100Square2(~Square@user/square) Square
2025-01-08 05:36:29 +0100JuanDaugherty(~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
2025-01-08 05:38:34 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 05:41:00 +0100Smiles(uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2025-01-08 05:42:57 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2025-01-08 05:47:45 +0100 <hololeap> anyone know if there is a canonical way to "lift" m [a] to ListT m a
2025-01-08 05:47:56 +0100 <hololeap> err LogicT m a
2025-01-08 05:48:39 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2025-01-08 05:49:01 +0100 <hololeap> d <- blah $ listDirectory dataDir
2025-01-08 05:49:31 +0100 <hololeap> blah :: IO [FilePath] -> LogicT IO FilePath
2025-01-08 05:49:35 +0100Square2(~Square@user/square) (Remote host closed the connection)
2025-01-08 05:49:38 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-01-08 05:49:50 +0100 <c_wraith> based on the type, it's not going to be as nice as you'd want
2025-01-08 05:49:59 +0100Square2(~Square@user/square) Square
2025-01-08 05:50:39 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 05:50:43 +0100 <c_wraith> the issue is that m [a] is a *single* action that produces an entire list.
2025-01-08 05:51:00 +0100 <c_wraith> LogicT really wants to break that apart
2025-01-08 05:52:22 +0100 <hololeap> c_wraith: I have some old code that uses ListT, and I'm trying to replace it so that it builds on newer base (since they removed ListT)
2025-01-08 05:52:27 +0100 <hololeap> https://github.com/hololeap/cabal-portage/blob/main/portage-hs/test/Emerge/ParserTests.hs#L66-L76
2025-01-08 05:52:42 +0100 <c_wraith> you really should be using conduit or something for that
2025-01-08 05:53:10 +0100 <c_wraith> like https://hackage.haskell.org/package/conduit-1.3.6/docs/Data-Conduit-List.html exists specifically to replace ListT
2025-01-08 05:53:17 +0100 <hololeap> I felt like conduit would be overkill
2025-01-08 05:53:22 +0100 <hololeap> but maybe you're right
2025-01-08 05:53:30 +0100 <c_wraith> oh, I guess https://hackage.haskell.org/package/conduit-1.3.6/docs/Data-Conduit-Combinators.html is the better option
2025-01-08 05:53:53 +0100 <c_wraith> conduit *is* overkill, but it's at least overkill designed for the job.
2025-01-08 05:54:44 +0100 <int-e> @pl \x -> LogicT (\f c -> x >>= foldr f c)
2025-01-08 05:54:44 +0100 <lambdabot> LogicT . (. foldr) . (.) . (>>=)
2025-01-08 05:56:54 +0100Feuermagier(~Feuermagi@user/feuermagier) Feuermagier
2025-01-08 05:57:00 +0100 <hololeap> this was the one use-case where ListT was actually the most elegant way to do it
2025-01-08 05:57:57 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2025-01-08 05:58:09 +0100 <int-e> oh it's \m -> lift m >>= fromList
2025-01-08 05:58:54 +0100Square2(~Square@user/square) (Ping timeout: 265 seconds)
2025-01-08 05:59:25 +0100 <c_wraith> I mean, conduit really is better.
2025-01-08 05:59:36 +0100 <c_wraith> you have tools like https://hackage.haskell.org/package/conduit-1.3.6/docs/Data-Conduit-Combinators.html#v:sourceDirec…
2025-01-08 05:59:48 +0100 <c_wraith> which actually won't construct the whole list in memory before moving to the next step
2025-01-08 06:00:35 +0100 <c_wraith> that's kind of the whole point of it.
2025-01-08 06:00:36 +0100 <int-e> I'm not arguing against that, it's a separate question
2025-01-08 06:01:12 +0100 <hololeap> I'm ok with using conduit here
2025-01-08 06:03:12 +0100eL_Bart0(eL_Bart0@dietunichtguten.org) (Ping timeout: 246 seconds)
2025-01-08 06:08:04 +0100 <jackdk> I like https://hackage.haskell.org/package/directory-tree for this sort of thing, unless you really need to handle large inputs (I haven't tested its lazy `readDirectoryWithL` function). Otherwise, yeah, streaming libraries would be the way to go. I tend to use package `streaming`.
2025-01-08 06:09:00 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 06:12:17 +0100forell(~forell@user/forell) (Ping timeout: 248 seconds)
2025-01-08 06:15:36 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2025-01-08 06:27:03 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 06:31:39 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2025-01-08 06:36:40 +0100 <monochrom> Belated: Nothing >> pure foo = Nothing is pretty much forced by the monad laws. Several laws are involved, but the most damning one is k >>= pure = k, now let k be Nothing.
2025-01-08 06:37:49 +0100 <monochrom> But if you prefer pragmatics to theory, every exception system, in every language, says that { throw Exception; return (div 5 2); } is going to throw that exception rather than return normally.
2025-01-08 06:39:34 +0100 <monochrom> If you want Nothing ??? pure foo = pure foo, consider using <|> instead: Nothing <|> pure foo. In other words, you are looking for { throw Exception; } catch Exception { return foo; }
2025-01-08 06:42:26 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 06:50:22 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2025-01-08 06:55:19 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 06:56:13 +0100 <haskellbridge> <yatta> maerwald: Maybe the jokes on us and his bouncer is performing exactly as planned?
2025-01-08 06:56:18 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2025-01-08 06:57:52 +0100dtman34(~dtman34@2601:447:d080:1a3c:effe:71d9:1c5c:6a1a) (Ping timeout: 265 seconds)
2025-01-08 06:59:58 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2025-01-08 07:00:22 +0100michalz(~michalz@185.246.207.221)
2025-01-08 07:10:28 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-01-08 07:10:50 +0100sord937(~sord937@gateway/tor-sasl/sord937) sord937
2025-01-08 07:11:18 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 07:11:42 +0100Eoco(~ian@128.101.131.218) (Ping timeout: 252 seconds)
2025-01-08 07:12:44 +0100Eoco(~ian@128.101.131.218) Eoco
2025-01-08 07:15:48 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2025-01-08 07:15:59 +0100hgolden(~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363) (Ping timeout: 260 seconds)
2025-01-08 07:16:42 +0100hgolden(~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363) hgolden
2025-01-08 07:17:52 +0100dtman34(~dtman34@2601:447:d080:1a3c:6104:fe1a:e15b:6312) dtman34
2025-01-08 07:18:09 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2025-01-08 07:22:01 +0100 <hololeap> this looks a lot cleaner with conduit: https://github.com/hololeap/cabal-portage/blob/c85bc09e23514d816b6d1936b7ebbacb058fe58a/portage-hs…
2025-01-08 07:22:35 +0100 <hololeap> my only question is if Data.Text.IO.readFile makes sense here
2025-01-08 07:23:44 +0100 <haskellbridge> <maerwald> jackdk: Uh... directory-tree uses lazy IO. That's not the same as a proper streaming library. It just blows up randomly in your face.
2025-01-08 07:24:02 +0100 <hololeap> I tried using (\f -> sourceFile f .| decodeUtf8Lenient .| mapC (f,)), but for some reason it only read part of the file when I tested it
2025-01-08 07:26:40 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
2025-01-08 07:26:41 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 07:27:56 +0100rvalue-(~rvalue@user/rvalue) rvalue
2025-01-08 07:28:43 +0100rvalue(~rvalue@user/rvalue) (Ping timeout: 244 seconds)
2025-01-08 07:31:17 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2025-01-08 07:32:32 +0100rvalue-rvalue
2025-01-08 07:42:05 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 07:46:28 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2025-01-08 07:52:41 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 07:54:46 +0100acidjnk_new(~acidjnk@p200300d6e7283f6814cd06cb5011f3d5.dip0.t-ipconnect.de) acidjnk
2025-01-08 07:55:35 +0100hughjfchen(~hughjfche@vmi556545.contaboserver.net) (Quit: WeeChat 4.2.2)
2025-01-08 07:56:05 +0100hughjfchen(~hughjfche@vmi556545.contaboserver.net) hughjfchen
2025-01-08 07:57:41 +0100Square2(~Square@user/square) Square
2025-01-08 07:59:15 +0100famubu(~julinuser@user/famubu) (Ping timeout: 265 seconds)
2025-01-08 07:59:24 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2025-01-08 08:01:37 +0100hughjfchen(~hughjfche@vmi556545.contaboserver.net) (Quit: WeeChat 4.2.2)
2025-01-08 08:02:09 +0100Square(~Square4@user/square) (Ping timeout: 265 seconds)
2025-01-08 08:04:33 +0100hughjfchen(~hughjfche@vmi556545.contaboserver.net) hughjfchen
2025-01-08 08:06:26 +0100CiaoSen(~Jura@2a05:5800:213:8800:ca4b:d6ff:fec1:99da) CiaoSen
2025-01-08 08:09:13 +0100 <jackdk> maerwald: True, but for simple directory-walking things I don't mind it as a way to get started, and then replace it once I've written a program that I've liked and used enough to have it blow up in my face.
2025-01-08 08:09:51 +0100 <haskellbridge> <maerwald> I'd be surprised if you go back and actually replace it
2025-01-08 08:09:57 +0100 <haskellbridge> <maerwald> most people never replace their prototypes
2025-01-08 08:11:29 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 08:15:49 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2025-01-08 08:23:19 +0100agent314(~quassel@138.199.43.74) (Read error: Connection reset by peer)
2025-01-08 08:26:51 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 08:29:28 +0100 <jackdk> And to be fair, I didn't either. But I never had the lazy i/o blow up in my face, which was the forcing function to replace it with a proper streaming abstraction
2025-01-08 08:30:53 +0100lbseale(~quassel@user/ep1ctetus) (Ping timeout: 252 seconds)
2025-01-08 08:32:47 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2025-01-08 08:32:49 +0100Guest5708(~guest5708@117.222.137.69)
2025-01-08 08:42:53 +0100mchav(~mchav@197.221.255.246)
2025-01-08 08:43:49 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 08:46:08 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2025-01-08 08:47:40 +0100mchav(~mchav@197.221.255.246) (Ping timeout: 240 seconds)
2025-01-08 08:48:05 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2025-01-08 08:53:42 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-08 08:58:12 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2025-01-08 09:00:00 +0100caconym(~caconym@user/caconym) (Quit: bye)
2025-01-08 09:00:40 +0100caconym(~caconym@user/caconym) caconym
2025-01-08 09:06:55 +0100Square2(~Square@user/square) (Ping timeout: 265 seconds)
2025-01-08 09:08:17 +0100alist(~alist@108-224-153-186.lightspeed.cicril.sbcglobal.net)
2025-01-08 09:08:56 +0100alist(~alist@108-224-153-186.lightspeed.cicril.sbcglobal.net) ()
2025-01-08 09:09:01 +0100alist(~alist@108-224-153-186.lightspeed.cicril.sbcglobal.net)
2025-01-08 09:09:14 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2025-01-08 09:09:38 +0100 <alist> hi all, im looking for help understanding the paper theorema for free
2025-01-08 09:10:10 +0100 <alist> is this the right channel? haskell-in-depth seems to have very few people comparatively
2025-01-08 09:11:01 +0100weary-traveler(~user@user/user363627) (Quit: Konversation terminated!)
2025-01-08 09:11:29 +0100 <mauke> potentially yes, but personally I'm not familiar with the paper (beyond the title)
2025-01-08 09:12:15 +0100 <alist> ok, to be fair its a pretty specific question so no worries if you cant help
2025-01-08 09:13:50 +0100 <alist> basically, on the top of page 6 the author expands the forall quantifier for relations by specializing the fold function for the types A and B.
2025-01-08 09:14:55 +0100 <alist> but the definition of fold in that example is defined as (a->b->b)->a etc., where a, b are functions from A->A', B->B'
2025-01-08 09:16:41 +0100 <alist> the previous page defines forall expansion and i think accordingly fold should be specialized to a, b (lowercase) in this instance my question
2025-01-08 09:17:09 +0100 <alist> *my question is what am i missing, or did the author make a mistake
2025-01-08 09:17:27 +0100CiaoSen(~Jura@2a05:5800:213:8800:ca4b:d6ff:fec1:99da) (Ping timeout: 276 seconds)
2025-01-08 09:20:20 +0100 <mauke> I don't know, but I'm reading the paper and I already found a bug on page 1
2025-01-08 09:21:06 +0100 <alist> where? i thought i found a bug earlier than 6 too
2025-01-08 09:23:09 +0100 <mauke> the inc*/odds ≠ odds/inc* example shows incoherent intermediate results
2025-01-08 09:23:32 +0100 <mauke> it's true that the results are not the same, but I don't see how they can be [2,4] and [4], respectively
2025-01-08 09:24:46 +0100 <mauke> it's either [2,4] and [3], or [3] and [2,4], depending on how odds is defined
2025-01-08 09:24:55 +0100 <mauke> but I have no idea how you can get [4]
2025-01-08 09:25:57 +0100 <alist> youre right, that makes no sense
2025-01-08 09:26:51 +0100 <alist> by saying odds "removes all odd elements from a list of integers" id argue it has to be [3], right
2025-01-08 09:28:26 +0100 <alist> i thought this paper was very popular. maybe im sounding mean but is this like a preprint or something that is circulating online? ive never read a paper with such obvious typos
2025-01-08 09:34:04 +0100 <mauke> I'm looking at https://www2.cs.sfu.ca/CourseCentral/831/burton/Notes/July14/free.pdf, which is a "revised version"
2025-01-08 09:38:15 +0100 <alist> i have the same problem with its version of page 6
2025-01-08 09:40:01 +0100 <alist> i am disappointed because im reading a book on haskell and was interested in the fact that there is only one functiom of typs a -> a. someone recommended me this paper
2025-01-08 09:40:12 +0100 <ncf> alist: what's wrong with page 6?