Home liberachat/#haskell: Logs Calendar

Logs on 2025-05-26 (liberachat/#haskell)

00:00:17 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
00:03:30 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
00:03:55 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
00:04:34 × jespada quits (~jespada@r186-48-60-195.dialup.adsl.anteldata.net.uy) (Ping timeout: 245 seconds)
00:08:28 × acidjnk quits (~acidjnk@p200300d6e71c4f264dd37730a8fc49ec.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
00:09:49 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
00:10:13 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
00:11:35 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:15:28 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
00:15:52 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
00:16:58 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
00:21:33 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
00:21:55 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
00:24:47 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
00:25:24 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Quit: Lost terminal)
00:25:39 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
00:26:04 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
00:26:42 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
00:27:25 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:30:40 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
00:31:04 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
00:31:24 xff0x_ joins (~xff0x@2405:6580:b080:900:b6ff:b254:b6ae:4cb7)
00:32:25 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
00:32:26 × califax quits (~califax@user/califx) (Remote host closed the connection)
00:32:42 × xff0x quits (~xff0x@2405:6580:b080:900:6950:4692:fe46:5eb2) (Ping timeout: 268 seconds)
00:33:41 califax joins (~califax@user/califx)
00:35:34 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
00:36:00 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
00:41:45 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
00:42:08 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
00:43:11 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:46:29 × ft quits (~ft@mue-88-130-107-234.dsl.tropolys.de) (Ping timeout: 260 seconds)
00:47:52 ft joins (~ft@mue-88-130-106-109.dsl.tropolys.de)
00:48:20 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
00:48:23 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
00:48:46 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
00:53:35 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
00:53:58 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
00:58:34 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:58:39 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
00:59:06 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
01:03:33 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
01:05:57 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
01:06:20 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
01:08:25 × xff0x_ quits (~xff0x@2405:6580:b080:900:b6ff:b254:b6ae:4cb7) (Ping timeout: 244 seconds)
01:10:11 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
01:11:57 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
01:12:23 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
01:12:47 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 265 seconds)
01:13:09 × ttybitnik quits (~ttybitnik@user/wolper) (Quit: Fading out...)
01:14:00 j1n37 joins (~j1n37@user/j1n37)
01:14:23 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:18:00 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
01:18:26 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
01:19:58 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
01:22:49 simplystuart joins (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net)
01:23:21 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
01:23:43 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
01:25:30 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
01:25:55 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
01:30:41 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
01:30:57 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:31:01 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
01:35:35 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
01:36:12 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
01:36:35 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
01:37:11 JuanDaugherty joins (~juan@user/JuanDaugherty)
01:41:43 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
01:42:07 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
01:46:21 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
01:46:45 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:46:46 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
01:51:36 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
01:51:49 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
01:52:01 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
01:57:27 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
01:57:50 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
02:00:41 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:02:16 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
02:02:45 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
02:03:46 × sim590 quits (~simon@209-15-185-101.resi.cgocable.ca) (Quit: WeeChat 4.6.2)
02:05:58 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
02:06:00 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
02:06:22 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
02:07:19 × td_ quits (~td@i5387091A.versanet.de) (Ping timeout: 244 seconds)
02:09:00 xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
02:09:12 td_ joins (~td@83.135.9.23)
02:10:12 euouae joins (~euouae@user/euouae)
02:10:59 <euouae> Hello, I'm reading about Trees in Data.Graph: <https://hackage-content.haskell.org/package/containers-0.7/docs/Data-Graph.html#g:9> When I use them in the REPL I see the rootLabel and subForest member functions, but they're not shown in the documentation in that page I linked
02:11:10 <euouae> Why not? Are they an implementation detail? Or just incomplete documentation?
02:12:43 <int-e> they're part of the datatype declaration: https://hackage-content.haskell.org/package/containers-0.7/docs/Data-Tree.html#t:Tree
02:13:23 <euouae> Hm, why is there a Data.Tree? Why is Tree also mentioned in Data.Graph?
02:14:22 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
02:14:46 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
02:16:30 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:20:01 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
02:20:27 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
02:21:25 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
02:24:52 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org))
02:25:27 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
02:25:52 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
02:26:13 <Leary> euouae: Trees are graphs. They're also used in 'Graph Algorithms'.
02:28:58 <euouae> I find that navigation of the docs a bit confusing
02:31:39 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
02:32:04 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
02:32:17 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:32:50 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Remote host closed the connection)
02:37:32 <m_a_r_k> have any of you used servant? i made some little CRUD apps as samples for myself, but im curious about authentication. are there Oauth/OIS
02:37:57 <m_a_r_k> OIDC libraries that are well regarded, or should i expect to implement myself
02:38:32 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
02:38:56 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
02:39:19 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
02:44:49 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
02:44:52 <jackdk> euouae: Data.Graph re-exports all of Data.Tree, presumably for convenience. When Haddock processes a module with a re-export, the docs from the re-exported module (here, Data.Tree) also appear in the module doing the re-exporting (here, Data.Graph).
02:45:12 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
02:45:59 tavare joins (~tavare@150.129.88.189)
02:45:59 × tavare quits (~tavare@150.129.88.189) (Changing host)
02:45:59 tavare joins (~tavare@user/tavare)
02:46:39 × tavare quits (~tavare@user/tavare) (Remote host closed the connection)
02:47:15 <euouae> jackdk: a bit unfortunate that Haddock does not have some indication that a re-export is happening, isn't it?
02:47:34 <Leary> No, it only re-exports `Tree(Node)` and `Forest`. If it re-exported the whole module or even just `Tree(..)` the haddocks would look very different.
02:49:42 <jackdk> Leary: cheers, I only scrolled as far as the `module` entry in the export list, and didn't check what was being imported.
02:50:06 <Leary> euouae: Whole-module re-exports look like this: https://hackage.haskell.org/package/xmonad-0.18.0/docs/XMonad.html
02:50:08 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
02:50:20 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:50:30 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
02:51:41 <euouae> Well that's better for sure
02:55:17 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
02:56:39 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
02:57:04 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
03:01:10 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
03:01:47 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
03:02:09 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
03:04:10 × califax quits (~califax@user/califx) (Remote host closed the connection)
03:04:30 califax joins (~califax@user/califx)
03:06:06 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:08:43 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
03:09:05 × Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 248 seconds)
03:09:09 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
03:11:49 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
03:14:15 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
03:14:37 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
03:16:41 Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
03:20:11 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
03:20:32 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
03:21:56 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:23:58 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
03:24:19 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
03:25:37 × aforemny quits (~aforemny@2001:9e8:6ce5:7a00:7c9b:daad:e593:5334) (Ping timeout: 248 seconds)
03:25:48 aforemny_ joins (~aforemny@i59F4C598.versanet.de)
03:27:12 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
03:28:53 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
03:29:17 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
03:32:19 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
03:32:20 × Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 260 seconds)
03:35:21 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
03:35:45 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
03:37:43 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:38:31 Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
03:39:58 j1n37 joins (~j1n37@user/j1n37)
03:40:26 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
03:40:51 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
03:42:14 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
03:43:08 arahael joins (~arahael@user/arahael)
03:43:24 × gmg quits (~user@user/gehmehgeh) (Ping timeout: 264 seconds)
03:45:04 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
03:45:31 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
03:50:59 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
03:51:23 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
03:52:22 × Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Read error: Connection reset by peer)
03:53:19 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:53:53 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
03:55:11 img joins (~img@user/img)
03:55:14 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
03:55:39 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
03:58:24 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
03:59:55 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
04:00:17 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
04:01:42 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:01:58 <euouae> How can I stop GHC from giving "HasCallStack backtrace:" whenever I do ^D to getLine?
04:02:12 <euouae> I tried `onException myFunction (pure ())` but it still blows up
04:02:36 <Umeaboy> euouae: Have you asked ChatGPT about it?
04:03:10 <euouae> I guess for some reasno onException propagates the exception
04:03:24 <Leary> That's what it's meant to do, yes.
04:03:37 <euouae> Umeaboy: why? are you bothered by human communication?
04:04:07 <Umeaboy> https://chatgpt.com/share/6833e823-daf0-8011-83b5-ccdd8f19d4c3
04:04:30 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
04:04:35 <euouae> I only noticed that from reading more carefully: "onException" is like "finally" and then "finally" is like "bracket", and bracket explains that it re-raises
04:04:38 <euouae> the second indirection threw me off
04:04:55 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
04:05:40 × Umeaboy quits (~Umeaboy@94-255-145-133.cust.bredband2.com) (Quit: Leaving)
04:06:33 × poscat quits (~poscat@user/poscat) (Remote host closed the connection)
04:06:40 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
04:09:44 poscat joins (~poscat@user/poscat)
04:09:59 <euouae> when I `try myFunction` I get "ambiguous type variable" I think it doesn't know what type the exception is?
04:10:02 <euouae> I'm not sure how to deal with this
04:10:12 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
04:10:38 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
04:12:40 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
04:12:51 <Leary> % let silently act = try @SomeException act >>= either mempty pure in silently do{ putStrLn "audible"; throwIO (ErrorCall "silenced"); pure "lost" }
04:12:51 <yahb2> audible ; ""
04:13:15 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
04:14:00 <Leary> euouae: You can match on a constructor, put a type signature on the exception, or use a type application like I did above.
04:15:23 <EvanR> smh unironic "let me chatgpt that for you"
04:16:17 <EvanR> one weird thing I ran into early on in haskell was catching exceptions, and trying to intuitively put type signatures on stuff in a pattern match
04:16:43 <EvanR> which is apparently not at all popular but apparently can work by enabling the right extension, very confusing
04:17:29 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:18:32 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
04:18:56 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
04:19:55 iNomad joins (~iNomad@user/iNomad)
04:21:35 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
04:23:29 × leah2 quits (~leah@vuxu.org) (Ping timeout: 260 seconds)
04:23:53 <euouae> I wrote <https://termbin.com/2r3i>, I'm not sure if it is a good solution
04:24:02 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
04:24:08 <euouae> I use it like `ignoreException $ myFunc param1 ... paramN`
04:25:11 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
04:25:33 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
04:27:39 <euouae> hm, that first *> could be a <$
04:27:54 Square joins (~Square4@user/square)
04:28:31 Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
04:31:39 × Square2 quits (~Square@user/square) (Ping timeout: 260 seconds)
04:32:12 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
04:32:36 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
04:35:32 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:37:31 michalz joins (~michalz@185.246.207.222)
04:38:27 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
04:38:50 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
04:40:24 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
04:42:23 <EvanR> it's simpler to use try to ignore any exception (SomeException)
04:43:22 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
04:43:48 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
04:45:59 gmg joins (~user@user/gehmehgeh)
04:50:01 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
04:50:29 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
04:51:20 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:51:43 <Leary> That also discards the result, so it won't do you much good with e.g. `getLine`. Compare:
04:51:48 <Leary> % :t let silently act = try @SomeException act >>= foldMap pure in silently
04:51:48 <yahb2> let silently act = try @SomeException act >>= foldMap pure in silently ; :: Monoid b => IO b -> IO b
04:52:16 <Leary> Also:
04:52:21 <Leary> % :t void
04:52:21 <yahb2> void :: Functor f => f a -> f ()
04:52:35 <Leary> euouae: ^
04:53:37 <euouae> I'm not using getLine though, it's a bunch of IO stuff
04:54:04 <euouae> I mean, I'm using getLine but...
04:54:10 <euouae> what do you mean it discards the result? the result is EOF
04:54:46 <Leary> If the function you put under `ignoreException` successfully produces an `a`, it's thrown away.
04:55:01 <euouae> As in `a^D`?
04:55:23 <euouae> I'm OK with that for what I'm doing
04:55:43 <Leary> No a value of type `a`, from the signature in your paste.
04:56:04 <Leary> Err, I should have said /action/, not function.
04:56:10 <euouae> that's jsut so ignoreException can be as genreal as possible
04:56:31 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
04:56:37 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
04:57:20 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
04:57:45 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
04:57:54 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds)
04:57:56 Lord_of_Life_ is now known as Lord_of_Life
05:01:57 <euouae> thank you for the hep
05:01:58 <euouae> help
05:01:59 × euouae quits (~euouae@user/euouae) ()
05:02:41 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:03:55 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
05:04:35 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
05:05:03 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
05:06:48 leah2 joins (~leah@vuxu.org)
05:07:29 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
05:09:27 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
05:09:48 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
05:14:54 takuan joins (~takuan@d8D86B601.access.telenet.be)
05:15:05 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
05:15:28 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
05:18:19 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:19:28 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
05:19:49 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
05:22:54 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
05:25:40 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
05:26:06 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
05:26:56 harveypwca joins (~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c)
05:33:02 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
05:33:27 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
05:34:06 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:35:28 × werneta quits (~werneta@syn-071-083-160-242.res.spectrum.com) (Ping timeout: 252 seconds)
05:37:39 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
05:37:55 × Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Read error: Connection reset by peer)
05:38:01 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
05:38:40 Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
05:39:19 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
05:42:21 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
05:42:42 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
05:46:03 jmcantrell parts (~weechat@user/jmcantrell) (WeeChat 4.6.3)
05:46:55 × Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Read error: Connection reset by peer)
05:49:37 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
05:49:52 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:50:00 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
05:52:03 × craunts7 quits (~craunts@user/craunts7) (Quit: The Lounge - https://thelounge.chat)
05:52:39 Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
05:54:00 kuribas joins (~user@ptr-17d51enukjwnxk3nj92.18120a2.ip6.access.telenet.be)
05:54:58 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
05:55:45 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
05:56:09 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
06:01:58 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
06:02:21 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
06:03:42 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:07:49 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
06:08:18 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
06:10:22 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
06:15:31 tromp joins (~textual@2001:1c00:3487:1b00:29cc:e961:ab7b:113b)
06:16:34 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
06:16:57 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
06:19:56 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
06:20:00 erty joins (~user@user/aeroplane)
06:20:18 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
06:21:46 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:25:57 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
06:26:18 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
06:27:13 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
06:31:59 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
06:32:24 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
06:32:48 × haritz quits (~hrtz@user/haritz) (Remote host closed the connection)
06:34:51 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex)
06:36:51 ChaiTRex joins (~ChaiTRex@user/chaitrex)
06:37:32 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:38:00 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
06:38:26 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
06:42:29 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
06:44:05 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
06:44:28 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
06:49:08 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
06:49:29 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
06:52:52 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
06:53:21 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:54:31 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
06:54:52 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
06:58:31 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
07:00:01 × caconym7 quits (~caconym@user/caconym) (Quit: bye)
07:00:27 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
07:00:43 caconym7 joins (~caconym@user/caconym)
07:00:48 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
07:06:30 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
07:06:52 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
07:11:32 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
07:11:58 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
07:12:16 × erty quits (~user@user/aeroplane) (Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.4))
07:16:15 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
07:16:41 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
07:22:22 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
07:22:45 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
07:27:17 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
07:27:43 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
07:29:57 × hellwolf quits (~user@7d52-7131-0650-0283-0f00-4d40-07d0-2001.sta.estpak.ee) (Ping timeout: 248 seconds)
07:31:33 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
07:33:15 hellwolf joins (~user@2add-0666-e6c9-d3e2-0f00-4d40-07d0-2001.sta.estpak.ee)
07:35:11 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
07:35:35 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
07:36:34 × tuxpaint quits (~a@2600:3c06::f03c:93ff:fea6:ef0e) (Ping timeout: 260 seconds)
07:39:51 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
07:40:13 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
07:41:19 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Quit: au revoir)
07:41:52 × Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 265 seconds)
07:44:04 merijn joins (~merijn@77.242.116.146)
07:44:07 tuxpaint joins (~a@put.gay)
07:44:11 × harveypwca quits (~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c) (Quit: Leaving)
07:46:09 acidjnk joins (~acidjnk@p200300d6e71c4f79f02f4230d0d82149.dip0.t-ipconnect.de)
07:46:31 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
07:46:54 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
07:48:48 __monty__ joins (~toonn@user/toonn)
07:50:13 shaeto joins (~Shaeto@94.25.234.192)
07:50:44 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
07:51:07 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
07:51:56 lxsameer joins (~lxsameer@Serene/lxsameer)
07:54:50 × shaeto quits (~Shaeto@94.25.234.192) (Ping timeout: 260 seconds)
07:56:28 shaeto joins (~Shaeto@94.25.234.151)
07:56:52 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
07:57:15 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
07:58:12 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
08:02:35 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
08:03:01 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
08:08:38 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
08:09:01 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
08:12:23 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds)
08:15:01 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
08:15:16 chele joins (~chele@user/chele)
08:15:27 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
08:20:44 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
08:21:07 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
08:25:57 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
08:26:29 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
08:27:09 × Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 276 seconds)
08:32:47 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
08:33:13 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
08:40:00 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
08:40:25 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
08:44:44 comerijn joins (~merijn@77.242.116.146)
08:46:12 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
08:46:36 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
08:47:36 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 265 seconds)
08:52:56 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
08:53:20 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
09:00:15 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
09:00:37 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
09:04:58 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
09:05:23 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
09:05:23 Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
09:11:00 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
09:11:23 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
09:12:07 × drdo quits (~drdo@2a01:4f8:1c1c:4976::1) (Remote host closed the connection)
09:12:42 drdo joins (~drdo@2a01:4f8:1c1c:4976::1)
09:18:22 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
09:18:48 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
09:20:13 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.5.2)
09:24:27 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
09:24:42 × Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 252 seconds)
09:24:50 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
09:26:27 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
09:30:36 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
09:30:58 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
09:33:52 craunts7 joins (~craunts@136.158.8.87)
09:38:00 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
09:38:25 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
09:41:00 × infinity0 quits (~infinity0@pwned.gg) (Ping timeout: 260 seconds)
09:42:56 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
09:43:18 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
09:45:08 Maxdamantus joins (~Maxdamant@user/maxdamantus)
09:45:46 × tromp quits (~textual@2001:1c00:3487:1b00:29cc:e961:ab7b:113b) (Quit: My iMac has gone to sleep. ZZZzzz…)
09:46:15 × haskellbridge quits (~hackager@syn-096-028-224-255.res.spectrum.com) (Ping timeout: 252 seconds)
09:50:00 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
09:50:23 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
09:50:30 × califax quits (~califax@user/califx) (Remote host closed the connection)
09:51:46 califax joins (~califax@user/califx)
09:53:15 yoneda joins (~mike@193.206.102.122)
09:57:23 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
09:57:47 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
09:58:02 × califax quits (~califax@user/califx) (Remote host closed the connection)
09:59:41 Digitteknohippie joins (~user@user/digit)
10:00:38 × Digit quits (~user@user/digit) (Ping timeout: 252 seconds)
10:00:54 × lxsameer quits (~lxsameer@Serene/lxsameer) (Quit: WeeChat 4.6.2)
10:03:02 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
10:03:25 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
10:04:12 Digitteknohippie is now known as Digit
10:04:58 califax joins (~califax@user/califx)
10:10:00 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
10:10:23 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
10:15:46 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
10:16:09 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
10:16:23 × comerijn quits (~merijn@77.242.116.146) (Ping timeout: 244 seconds)
10:19:20 × xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 252 seconds)
10:22:51 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
10:23:52 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
10:24:13 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
10:28:51 merijn joins (~merijn@77.242.116.146)
10:29:31 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
10:29:57 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
10:30:00 × ft quits (~ft@mue-88-130-106-109.dsl.tropolys.de) (Quit: leaving)
10:31:33 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
10:32:00 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
10:32:55 Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
10:32:57 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
10:33:23 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
10:33:40 × wickedjargon quits (~user@2001:569:fc3c:d000:49fd:4f0f:5c90:505) (Remote host closed the connection)
10:37:44 comerijn joins (~merijn@77.242.116.146)
10:39:38 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
10:40:03 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
10:40:10 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 252 seconds)
10:44:12 wootehfoot joins (~wootehfoo@user/wootehfoot)
10:46:02 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
10:46:25 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
10:55:48 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
10:56:12 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
10:58:18 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
11:01:29 jespada joins (~jespada@r167-61-38-116.dialup.adsl.anteldata.net.uy)
11:01:50 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
11:02:12 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
11:07:50 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
11:08:13 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
11:13:15 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
11:13:36 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
11:14:15 xff0x joins (~xff0x@ai083248.d.east.v6connect.net)
11:17:04 × shaeto quits (~Shaeto@94.25.234.151) (Ping timeout: 260 seconds)
11:18:11 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
11:18:34 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
11:21:05 shaeto joins (~Shaeto@94.25.234.143)
11:25:56 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
11:26:19 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
11:29:30 × acidjnk quits (~acidjnk@p200300d6e71c4f79f02f4230d0d82149.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
11:29:58 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
11:30:20 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
11:35:57 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
11:36:19 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
11:36:20 × comerijn quits (~merijn@77.242.116.146) (Ping timeout: 252 seconds)
11:42:40 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
11:43:01 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
11:48:06 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
11:48:31 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
11:53:33 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
11:53:56 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
11:56:48 merijn joins (~merijn@77.242.116.146)
11:58:29 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
11:58:52 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
11:59:25 × arahael quits (~arahael@user/arahael) (Ping timeout: 252 seconds)
12:02:31 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 244 seconds)
12:02:35 × dispater quits (~dispater@mail.brprice.uk) (Quit: ZNC 1.8.2 - https://znc.in)
12:02:36 × orcus quits (~orcus@mail.brprice.uk) (Quit: ZNC 1.8.2 - https://znc.in)
12:03:29 × Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 248 seconds)
12:04:30 dispater joins (~dispater@mail.brprice.uk)
12:04:33 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
12:04:55 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
12:05:01 orcus joins (~orcus@mail.brprice.uk)
12:08:29 × califax quits (~califax@user/califx) (Remote host closed the connection)
12:08:37 merijn joins (~merijn@77.242.116.146)
12:09:45 califax joins (~califax@user/califx)
12:11:20 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
12:11:30 × yoneda quits (~mike@193.206.102.122) (Quit: leaving)
12:11:42 yoneda joins (~mike@193.206.102.122)
12:11:42 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
12:15:47 absence joins (torgeihe@hildring.pvv.ntnu.no)
12:16:00 × son0p quits (~ff@2800:e6:4000:5cf7:2aa0:f8ac:1dbc:787d) (Remote host closed the connection)
12:17:24 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
12:17:24 × jespada quits (~jespada@r167-61-38-116.dialup.adsl.anteldata.net.uy) (Quit: My Mac has gone to sleep. ZZZzzz…)
12:17:49 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
12:17:59 × califax quits (~califax@user/califx) (Remote host closed the connection)
12:19:08 califax joins (~califax@user/califx)
12:21:00 × califax quits (~califax@user/califx) (Remote host closed the connection)
12:21:19 jespada joins (~jespada@r167-61-38-116.dialup.adsl.anteldata.net.uy)
12:21:52 califax joins (~califax@user/califx)
12:22:58 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
12:23:20 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
12:26:57 son0p joins (~ff@2800:e6:4000:5cf7:2aa0:f8ac:1dbc:787d)
12:29:13 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
12:29:37 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
12:34:28 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
12:34:49 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
12:38:23 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
12:38:47 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
12:39:41 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
12:40:05 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
12:41:49 arahael joins (~arahael@user/arahael)
12:42:36 × Square quits (~Square4@user/square) (Ping timeout: 244 seconds)
12:44:25 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
12:44:52 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
12:50:42 × jespada quits (~jespada@r167-61-38-116.dialup.adsl.anteldata.net.uy) (Quit: Textual IRC Client: www.textualapp.com)
12:51:18 jespada joins (~jespada@r167-61-38-116.dialup.adsl.anteldata.net.uy)
12:51:28 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
12:51:52 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
12:51:59 weary-traveler joins (~user@user/user363627)
12:56:00 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
12:56:24 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
13:02:01 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
13:02:23 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
13:05:49 tromp joins (~textual@2001:1c00:3487:1b00:29cc:e961:ab7b:113b)
13:06:00 × arahael quits (~arahael@user/arahael) (Ping timeout: 276 seconds)
13:08:34 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
13:09:00 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
13:13:24 × califax quits (~califax@user/califx) (Ping timeout: 264 seconds)
13:13:53 × bliminse quits (~bliminse@user/bliminse) (Quit: leaving)
13:14:35 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
13:14:57 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
13:18:48 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
13:18:58 califax joins (~califax@user/califx)
13:19:12 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
13:20:40 bliminse joins (~bliminse@user/bliminse)
13:21:19 × Pixi quits (~Pixi@user/pixi) (Read error: Connection reset by peer)
13:21:49 Pixi joins (~Pixi@user/pixi)
13:23:43 × codedmart quits (~codedmart@li335-49.members.linode.com) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
13:23:44 sp1ff` joins (~user@c-67-160-173-55.hsd1.wa.comcast.net)
13:23:44 × danso quits (~danso@user/danso) (Quit: quittin time)
13:23:57 danso joins (~danso@user/danso)
13:24:01 codedmart joins (codedmart@2600:3c01::f03c:92ff:fefe:8511)
13:24:15 × sp1ff quits (~user@c-67-160-173-55.hsd1.wa.comcast.net) (Read error: Connection reset by peer)
13:24:39 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
13:25:03 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
13:30:52 × tromp quits (~textual@2001:1c00:3487:1b00:29cc:e961:ab7b:113b) (Quit: My iMac has gone to sleep. ZZZzzz…)
13:31:54 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
13:32:19 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
13:33:29 acidjnk joins (~acidjnk@p200300d6e71c4f7900b5ee9fd79c9c37.dip0.t-ipconnect.de)
13:36:31 <bwe> How do I run a test a single time with criterion? `defaultMainWith (defaultConfig {resamples = 1}) ...` lets it still run its iterations > 1. (I am trying to just output the peak memory allocated as one benchmark.)
13:37:04 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
13:38:56 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
13:39:17 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
13:44:11 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
13:44:33 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
13:45:17 <tomsmeding> bwe: use criterion-measurement
13:45:30 <tomsmeding> the whole point of `criterion` is to do the analysis that only works with >1 sample
13:49:17 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
13:49:39 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
13:52:50 <bwe> tomsmeding: so, I would create a new executable instead of trying to include it in the current benchmark suite, right?
13:54:11 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
13:54:35 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
13:56:59 <tomsmeding> bwe: if the "benchmark suite" is a criterion bgroup, then a memory usage test indeed doesn't fit in there. It could be a separate executable or an additional thing that you run before or after the criterion suite
13:59:42 Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
14:00:04 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
14:00:27 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
14:02:18 × Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Read error: Connection reset by peer)
14:06:55 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
14:07:21 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
14:11:28 <bwe> tomsmeding: Thanks. It's clear now. I've done it as a separate thing running before criterion suite. Thanks for the idea!
14:12:58 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
14:13:20 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
14:14:55 tromp joins (~textual@2001:1c00:3487:1b00:29cc:e961:ab7b:113b)
14:17:01 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
14:17:23 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
14:18:27 × califax quits (~califax@user/califx) (Remote host closed the connection)
14:20:37 haritz joins (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8)
14:20:37 × haritz quits (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host)
14:20:37 haritz joins (~hrtz@user/haritz)
14:21:39 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
14:22:02 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
14:26:11 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
14:26:35 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
14:29:12 califax joins (~califax@user/califx)
14:33:21 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
14:33:45 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
14:34:44 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Read error: Connection reset by peer)
14:38:34 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
14:38:57 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
14:43:08 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
14:43:34 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
14:45:16 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
14:45:41 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
14:45:50 Guest6754 joins (~Ben@182.207-131-109.adsl-dyn.isp.belgacom.be)
14:51:55 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
14:52:19 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
14:57:42 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
14:58:05 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
15:01:02 haskellbridge joins (~hackager@syn-096-028-224-255.res.spectrum.com)
15:01:03 ChanServ sets mode +v haskellbridge
15:01:07 × Guest6754 quits (~Ben@182.207-131-109.adsl-dyn.isp.belgacom.be) (Quit: Client closed)
15:02:51 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
15:03:14 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
15:09:06 × acidjnk quits (~acidjnk@p200300d6e71c4f7900b5ee9fd79c9c37.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
15:09:35 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
15:09:59 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
15:11:28 infinity0 joins (~infinity0@pwned.gg)
15:13:59 × jespada quits (~jespada@r167-61-38-116.dialup.adsl.anteldata.net.uy) (Ping timeout: 244 seconds)
15:15:01 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
15:15:22 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
15:17:31 jespada joins (~jespada@r179-24-29-82.dialup.adsl.anteldata.net.uy)
15:20:16 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
15:20:38 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
15:24:00 Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
15:25:35 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
15:25:57 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
15:28:45 × craunts7 quits (~craunts@136.158.8.87) (Quit: The Lounge - https://thelounge.chat)
15:31:59 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
15:32:25 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
15:34:56 × manwe quits (~manwe2004@modemcable169.115-22-96.mc.videotron.ca) (Quit: Leaving)
15:35:24 ft joins (~ft@p3e9bc106.dip0.t-ipconnect.de)
15:37:30 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
15:37:56 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
15:40:02 × yoneda quits (~mike@193.206.102.122) (Quit: leaving)
15:42:14 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
15:42:36 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
15:45:30 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
15:45:53 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
15:47:19 erty joins (~user@user/aeroplane)
15:50:19 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
15:50:41 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
15:55:29 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
15:55:53 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
16:00:02 × califax quits (~califax@user/califx) (Remote host closed the connection)
16:01:44 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
16:01:47 califax joins (~califax@user/califx)
16:02:08 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
16:07:37 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
16:08:01 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
16:13:35 × chele quits (~chele@user/chele) (Remote host closed the connection)
16:15:40 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
16:16:04 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
16:16:27 × Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 276 seconds)
16:21:44 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
16:22:09 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
16:26:40 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 252 seconds)
16:26:46 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
16:27:10 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
16:28:19 euouae joins (~euouae@user/euouae)
16:28:32 <euouae> Hello I have this example <https://github.com/createyourpersonalaccount/menu-selection/blob/main/app/Menu1.hs> of a simple app that lets you browse a menu
16:28:33 JuanDaugherty joins (~juan@user/JuanDaugherty)
16:28:57 <euouae> I'm wondering what criticism you can offer for it; in particular I have a feeling that ReaderT can be inserted there somewhere right?
16:29:24 <euouae> (Or maybe it's just good as it is -- I don't know)
16:32:46 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
16:33:11 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
16:34:40 × tromp quits (~textual@2001:1c00:3487:1b00:29cc:e961:ab7b:113b) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:37:59 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
16:38:22 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
16:42:28 danza joins (~danza@user/danza)
16:43:37 × danza quits (~danza@user/danza) (Remote host closed the connection)
16:45:53 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
16:46:18 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
16:49:58 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
16:50:21 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
16:51:54 Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
16:52:13 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
16:52:34 Sgeo joins (~Sgeo@user/sgeo)
16:52:41 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
16:53:03 × erty quits (~user@user/aeroplane) (Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.4))
16:54:36 × ft quits (~ft@p3e9bc106.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
16:55:02 volsand joins (~volsand@2804:1b1:1080:3f49:dff2:9a47:8661:7944)
16:56:21 ft joins (~ft@p3e9bc106.dip0.t-ipconnect.de)
16:57:46 ljdarj joins (~Thunderbi@user/ljdarj)
16:57:57 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
16:58:23 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
17:04:02 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
17:04:29 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
17:04:42 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
17:05:37 × YuutaW quits (~YuutaW@2404:f4c0:f9c3:502::100:17b7) (Ping timeout: 272 seconds)
17:09:02 tromp joins (~textual@2001:1c00:3487:1b00:29cc:e961:ab7b:113b)
17:09:46 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
17:10:11 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
17:16:58 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
17:17:23 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
17:23:11 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
17:23:34 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
17:28:09 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
17:28:34 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
17:32:44 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
17:34:15 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
17:34:18 × Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 252 seconds)
17:34:39 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
17:38:22 <probie> euouae: Normally if you've got an `Either`, and one value is an "error", it goes in the left side, not the right. This is done so it plays nicely with the Functor/Monad instances for `Either a` when you want to chain together multiple operations with the same error type
17:39:23 × kuribas quits (~user@ptr-17d51enukjwnxk3nj92.18120a2.ip6.access.telenet.be) (Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.3))
17:43:29 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
17:43:54 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
17:44:19 Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
17:48:50 jmcantrell joins (~weechat@user/jmcantrell)
17:49:23 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
17:49:46 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
17:49:49 <probie> Also, if you've only got a single "statement", you don't need to use "do" (e.g. instead of ``do pure (Right $ "Invalid choice `" <> choice <> "'.")`` you can write ``pure (Right $ "Invalid choice `" <> choice <> "'.")``
17:50:18 <euouae> oh yeah that one was a remnant of two statements
17:51:14 × Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 245 seconds)
17:52:44 <euouae> I think I was experimenting with <> and that's why I decided to put the error on the right
17:53:05 <euouae> Because Left 1 <> Right 2 <> Left 3 gives Right 2. I guess <> is the wrong notion since what you want is chaining them in the monad with >>
17:55:03 <euouae> (I fixed those two mistakes you mentioned now)
17:56:11 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
17:56:34 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
17:59:47 <probie> > let halfSafeDiv x y = do { when (y == 0) (Left "Divide by 0"); let {z = x `div` y}; when (z `mod` 2 /= 0) (Left "Result not even"); pure (z `div` 2) } in [halfSafeDiv x y | (x,y) <- zip [56, 5, 15] [4,0,5]]
17:59:49 <lambdabot> [Right 7,Left "Divide by 0",Left "Result not even"]
18:01:22 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
18:01:37 <euouae> yup that's pretty neat. is the do{} for one-line stuff?
18:01:46 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
18:01:47 <euouae> togehther with the ;
18:04:31 <probie> Yep. It's not particularly common in actual code (I think parts of GHC's code base still use it though), but Haskell lets you use curly braces and semicolons instead of newlines and indentation if you want to
18:05:06 <probie> However, it's convenient for sending "multiple lines" to lambdabot
18:05:16 <euouae> alright
18:05:25 <euouae> well I'm more curious about the overall design of what I have
18:06:04 <euouae> because this is a mock example of something larger I'm trying to create, basically an "interpreter" / "macro expander" that can read from files & interactively via stdin
18:07:28 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
18:07:31 <euouae> but I'll read up on ReaderT again and see if I can adapt it to my example
18:07:53 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
18:09:51 robobub joins (uid248673@id-248673.uxbridge.irccloud.com)
18:10:18 <probie> I don't think `ReaderT` gives you anything here; it's a fancy way of making sure an extra argument is passed to all functions. Right now, you just have one, so it seems overkill. Personally, I'd do it with far fewer calls to `putStr`.
18:10:52 <euouae> the above is a mock example of something more complicated that I'm trying to write
18:13:44 acidjnk joins (~acidjnk@p200300d6e71c4f793ca0c1b1d3dae2fd.dip0.t-ipconnect.de)
18:14:41 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
18:15:03 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
18:18:32 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
18:18:55 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
18:22:31 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org))
18:24:03 × shaeto quits (~Shaeto@94.25.234.143) (Quit: WeeChat 4.1.1)
18:25:30 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
18:25:55 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
18:26:45 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
18:30:05 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
18:30:27 arthurvl is now known as earthy
18:30:29 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
18:31:02 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
18:34:57 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
18:35:19 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
18:36:10 × jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 252 seconds)
18:37:02 <probie> euouae: What's the thing you want to pass through your reader? The entire selection menu? You might be better off with `StateT` for that
18:38:55 <euouae> I was thinking of the current choices by the user
18:39:07 jmcantrell joins (~weechat@user/jmcantrell)
18:39:15 <euouae> e.g. the user has made ["Arthropod", "Crab"] as a choice so far
18:39:27 <euouae> (Or just ["Arthropod"] if he's in the middle of it.)
18:40:40 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
18:41:05 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
18:41:40 <int-e> Sounds like state to me. (Reader is more useful for passing around immutable data like configurations. Though there is `local` to make it murky.)
18:41:56 <int-e> :t local
18:41:57 <lambdabot> MonadReader r m => (r -> r) -> m a -> m a
18:42:24 <euouae> It's local I was looking at
18:42:31 <int-e> > local (*2) (+1) 3 -- scnr
18:42:32 <lambdabot> 7
18:42:48 <euouae> If you think StateT is better, fine I'll use that
18:42:49 <int-e> :t put
18:42:50 <lambdabot> MonadState s m => s -> m ()
18:42:55 <int-e> :t get
18:42:56 <lambdabot> MonadState s m => m s
18:43:22 <euouae> Yup. Is there any technique I should be aware of for "code generation"?
18:43:45 <int-e> this modifies states for future monadic actions, while `local` modifies a monadic action to take different contextual data
18:43:47 <euouae> Imagine that my parser reads `foo bar baz` and expands `foo` to `123`, `bar` to a parsing error (but continues parsing) and `baz` to `42`
18:45:17 <euouae> int-e, I see what you mean; it means `put` can be used in a do-block, while local also requires `m a` as an argument. right?
18:46:28 <int-e> euouae: yeah and the r -> r function only gets applied for that action
18:46:42 <int-e> so it's a local modification of the data; hence the name
18:47:15 <euouae> makes sense
18:47:23 <euouae> Well right, StateT is better
18:47:38 <mauke> if you remove the monadic veneer, Reader is about passing a particular argument to all "actions" (functions)
18:47:59 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
18:47:59 <euouae> yup I noted that in my notes because probie said it above
18:48:01 <mauke> local then just means passing a different argument to a particular function call
18:48:18 <mauke> but it has no lasting effects
18:48:22 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
18:48:32 <euouae> I've kind of removed the veneer in my own thoughts in the past, but it had been a while since I touched Haskell so it's slowly coming back to me
18:49:01 <euouae> Now I'm more curious about my specific application -- I am writing a macro expander. Any particular techniques that I should be aware of?
18:49:06 rvalue- joins (~rvalue@user/rvalue)
18:49:26 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
18:49:43 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 252 seconds)
18:53:49 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
18:54:12 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
18:55:24 sprotte24 joins (~sprotte24@p200300d16f2ebe0008435e5a759dcfac.dip0.t-ipconnect.de)
18:56:02 rvalue- is now known as rvalue
18:58:49 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
18:59:13 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
19:00:04 × caconym7 quits (~caconym@user/caconym) (Quit: bye)
19:00:43 caconym7 joins (~caconym@user/caconym)
19:04:53 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
19:04:56 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
19:05:22 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
19:06:06 × jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 276 seconds)
19:07:59 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
19:08:24 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
19:09:45 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
19:11:00 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
19:11:30 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
19:11:42 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
19:12:29 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
19:14:48 <euouae> using effectful-core, how can I complete the definition of myLength :: (Reader String :> es) => Eff es Integer to return the length of the String in the reader?
19:15:02 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
19:15:04 <euouae> I tried `do { s <- ask; pure (length s) }` but I'm getting errors.
19:16:20 <int-e> :t asks length
19:16:21 <lambdabot> (MonadReader (t a) m, Foldable t) => m Int
19:16:44 <int-e> (not answering the question)
19:17:05 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
19:17:17 <euouae> sure asks can be used
19:17:31 int-e has never used effectful-core. what does the error look like?
19:18:14 <euouae> Like this: <https://termbin.com/u0uz>
19:18:57 <euouae> Something cannot be deduced, not sure which. I'm just using effectful to avoid the "slowdown" that occurs with mtl. Maybe I should just not bother and stick to transformers
19:19:12 <euouae> but I do want to have fun so I'm playing around
19:19:28 <int-e> euouae: you may have to force the `s` to be of type String
19:19:39 <int-e> say, length (s :: String)
19:20:37 <int-e> (You could have Reader [Char] :> Reader [Int] :> es and then how would it know which of the lists you want?)
19:20:42 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
19:21:33 <int-e> err, those :> should probably be :
19:21:50 <int-e> I did mention that I haven't used this :)
19:24:13 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
19:24:25 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
19:24:46 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
19:25:44 <euouae> You're right, that worked. Is there another way to force the type? Perhaps at teh point where I do <-?
19:25:49 <euouae> the monadic bind
19:26:06 <euouae> (I tried to force the type in other attempts but I failed, you provided a correct way to do it)
19:27:15 ttybitnik joins (~ttybitnik@user/wolper)
19:27:40 Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
19:27:59 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
19:30:06 <int-e> Hmm. s :: String <- ask should work. asks (length @_ @Char) looks awkward. asks (length :: String -> Int) will work too
19:31:00 <euouae> nice, thank you!
19:32:15 × Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 252 seconds)
19:38:43 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
19:42:28 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 252 seconds)
19:47:16 × ol0ck quits (~quassel@user/ol0ck) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
19:48:02 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
19:49:40 target_i joins (~target_i@user/target-i/x-6023099)
19:52:38 <euouae> int-e: do you use some other effects library or just transformers/mtl?
19:54:43 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
19:55:05 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
19:59:01 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
20:04:36 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
20:12:09 ljdarj1 joins (~Thunderbi@user/ljdarj)
20:14:09 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 245 seconds)
20:14:09 ljdarj1 is now known as ljdarj
20:14:48 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
20:17:04 weary-traveler joins (~user@user/user363627)
20:19:33 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
20:25:02 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
20:25:24 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
20:29:18 × GdeVolpiano quits (~GdeVolpia@user/GdeVolpiano) (Quit: WeeChat 4.5.2)
20:30:35 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
20:33:06 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
20:35:20 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
20:43:18 Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
20:46:23 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
20:51:27 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
20:53:19 × Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 245 seconds)
20:56:12 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
21:02:11 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
21:02:37 GdeVolpiano joins (~GdeVolpia@user/GdeVolpiano)
21:05:49 × GdeVolpiano quits (~GdeVolpia@user/GdeVolpiano) (Client Quit)
21:05:58 GdeVolpiano joins (~GdeVolpia@user/GdeVolpiano)
21:06:57 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
21:09:23 × takuan quits (~takuan@d8D86B601.access.telenet.be) (Remote host closed the connection)
21:17:16 Square2 joins (~Square@user/square)
21:17:57 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
21:19:36 × Moyst quits (~moyst@user/moyst) (Ping timeout: 268 seconds)
21:20:15 × michalz quits (~michalz@185.246.207.222) (Remote host closed the connection)
21:22:04 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
21:22:28 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
21:23:09 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
21:24:21 Square joins (~Square4@user/square)
21:25:06 <euouae> as I was saying earlier I'm writing a macro expander. it has the capability to write to stdout or to save to memory for later display. say there's 10 slots 0-9 and 0 is stdout and 1-9 is memory writing
21:25:14 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
21:25:16 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Quit: peterbecich)
21:25:27 Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
21:25:52 <euouae> How should I implement this? Is this a WriterT? Or should I do it with a "write" function that takes a slot parameter and the 0 case goes to stdout and 1-9 just appends to a Seq?
21:25:56 × m5zs7k quits (aquares@web10.mydevil.net) (Ping timeout: 252 seconds)
21:26:04 Moyst joins (~moyst@user/moyst)
21:26:52 tomsmeding would not use Seq here if you don't need to index into the thing but only fold over it once at the end
21:27:28 driib318 joins (~driib@vmi931078.contaboserver.net)
21:27:45 <tomsmeding> a simple `write` with a State that keeps the memory buffers may be enough
21:28:33 <euouae> maybe I should have a writeMemory and writeFile since the former is pure?
21:28:56 <tomsmeding> but when you call those functions, you never know statically which it's going to be, right?
21:29:04 <euouae> no it depends on the input
21:29:13 <geekosaur> tbh I'd consider using files created on first use. (I assume you've been looking at m4's `divert`?)
21:29:17 <tomsmeding> right, so at the callsite, you'll have to be effectful anyway
21:29:23 <tomsmeding> because it may be writeFile
21:29:23 <euouae> geekosaur: how did you know? :O
21:29:38 <geekosaur> I spent 8 years living m4
21:29:44 <euouae> what? really?
21:30:20 <euouae> geekosaur: I wrote this GNU m4 clone in Python, it's still WIP but it's good (slow though) <https://codeberg.org/annoyingusername/m4p>
21:30:29 <geekosaur> I used it to write a macro system over a language that changed often enough that I needed some heavy lifting to adapt to different versions
21:30:50 <monochrom> I would try WriterT (Endo String/Text) or WriterT (Seq Char/String/Text). I would also have no shame special-casing stdout.
21:31:03 <euouae> so I'm fooling around with Haskell, trying to clarify the structure of an m4 implementation. My final step would be to rewrite in GNU Mes scheme for bootstrappability
21:31:42 <monochrom> Oh wait so the type is IO if 0, WriterT if 1-9? That calls for Lean... >:)
21:31:58 <euouae> No I don't need dependent types
21:32:13 <geekosaur> are you also going to support `divert(-1)` (or other invalid stream) to discard output? some things use that for initial comments
21:32:21 <euouae> Yes I support everything
21:32:32 × Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 252 seconds)
21:32:35 <euouae> Output can go to: 1) stdout 2) file 3) memory buffer 4) discarded
21:33:45 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
21:35:11 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
21:36:12 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
21:36:15 euouae will try WriterT for the memory buffers
21:37:17 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
21:37:39 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
21:38:29 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
21:40:01 <monochrom> Oh I'm a moron. If Text, may as well use Text's Builder and save using Endo myself.
21:40:21 <tomsmeding> @hackage text-builder-linear
21:40:21 <lambdabot> https://hackage.haskell.org/package/text-builder-linear
21:40:44 Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
21:40:48 <monochrom> Everything is now linearly typed eh?
21:40:57 <tomsmeding> well in this case the linearity is very well contained
21:41:14 <tomsmeding> the point is that instead of the standard builder pattern, this can actually build the thing in-place
21:41:38 <monochrom> OK nice.
21:41:39 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
21:42:01 <tomsmeding> ... to an extent
21:42:11 <tomsmeding> if you're willing to buy into the linear types, you get beautiful in-place updates
21:42:29 <tomsmeding> if you want to use a traditional Monoid builder thing, you get the tree of thunks as usual
21:42:36 <tomsmeding> but evaluating the tree of thunks is then nice
21:42:50 <monochrom> Well at least putting a "use once only" on runBuilder protects you from the same kind of memory surprise as "sum xs / length xs"
21:42:55 <tomsmeding> it's `newtype Builder = Buidler (Buffer %1-> Buffer)`
21:43:11 <tomsmeding> (minus the typo)
21:43:36 <euouae> what's the memory surprise there monochrom ?
21:44:08 <monochrom> Suppose xs = [1..n]. length xs alone takes O(1) space. sum xs alone also takes O(1) space.
21:45:18 <EvanR> I encoded the parlor puzzle in The Blue Prince in haskell https://paste.tomsmeding.com/PaaqcdI7
21:45:44 <euouae> monochrom: why is that not the case when they're together?
21:46:00 <euouae> because the optimizer can't figure it out?
21:46:30 <tomsmeding> because the code specifies that the list 'xs' should be built only once, so GHC respects that wish
21:46:33 <tomsmeding> even if it's the bad thing to do
21:46:55 <euouae> how would you specify it twice? by not using the xs binding?
21:47:04 <tomsmeding> indeed
21:47:10 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
21:47:19 <tomsmeding> or one would explicitly traverse the thing once with a combined fold
21:47:32 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
21:47:34 × Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 252 seconds)
21:47:47 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
21:47:56 <euouae> interesting!
21:48:11 <tomsmeding> or you use a tool to automatically combine multiple folds in one, e.g. https://hackage.haskell.org/package/foldl-1.4.18/docs/Control-Foldl.html
21:49:01 <tomsmeding> > Data.List.foldl' (\(!tot, !len) x -> (tot + x, len + 1)) (0, 0) [1..10]
21:49:03 <lambdabot> (55,10)
21:49:05 <euouae> I guess the mental evaluation here is that you have two expressions sum xs and length xs; you can assume they're evaluated in sequence, so once length xs is reached, xs is already all in memory
21:49:17 <tomsmeding> > uncurry div $ Data.List.foldl' (\(!tot, !len) x -> (tot + x, len + 1)) (0, 0) [1..10]
21:49:18 <lambdabot> 5
21:49:33 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
21:51:55 <EvanR> too bad you can't take xs, duplicate the thunk before doing sum copy1 / length copy2
21:52:08 <EvanR> in case you were short on memory and flush on cpu power
21:52:25 <tomsmeding> that would be "instructions unclear, should I also duplicate the other thunks that this one refers to"
21:53:01 × Square quits (~Square4@user/square) (Ping timeout: 265 seconds)
21:53:01 <EvanR> welcome to C++
21:53:16 <tomsmeding> well in C++ this kind of stuff is well-specified
21:53:17 <euouae> Does Haskell have a concept of Reference? I'd imagine yes
21:53:24 <tomsmeding> IORef?
21:53:28 <euouae> so instead you can also work with references, right?
21:53:34 <EvanR> you still have to decide whether to duplicate 1 level, 3 levels, all levels, or some weird combination
21:53:41 <euouae> oh wait, no. it still would be O(n).... nevermind
21:53:53 × sprotte24 quits (~sprotte24@p200300d16f2ebe0008435e5a759dcfac.dip0.t-ipconnect.de) (Quit: Leaving)
21:54:01 <tomsmeding> euouae: oh in that sense, then every lifted value in haskell is a reference
21:54:12 <tomsmeding> you probably haven't seen unlifted values
21:54:13 <euouae> tomsmeding: right. I guess EvanR wants thunk-level manipulations
21:54:20 <tomsmeding> yep
21:54:37 <EvanR> if you know the xs is some simple thunk, and duplicating wouldn't be bad, it would be interesting
21:54:38 <Rembane> Thunks as first class citizens would be really sweet.
21:54:40 <EvanR> but not very abstract
21:54:57 <tomsmeding> if xs is [1..10], is xs a simple thunk?
21:55:01 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
21:55:10 <EvanR> I have no idea
21:55:14 <tomsmeding> me neither
21:55:24 <tomsmeding> point being that this is a crappy API :p
21:55:40 <EvanR> personal judgement of what a simple thunk is isn't the API
21:55:51 <euouae> but you can't mess with thunks using GHC's API
21:55:52 <euouae> ?
21:56:02 <EvanR> "mess with" ?
21:56:09 <tomsmeding> no but random implementation choices, both in libraries and in GHC itself, can change what things are simple thunks and what things aren't
21:56:30 <EvanR> yeah it sounds fragile
21:56:45 <tomsmeding> EvanR: there is https://ghc.gitlab.haskell.org/ghc-debug/ if you really want to get into the weeds
21:57:15 <euouae> Also what's the point of text-builder-linear? I was planning to use a strict ByteString to accumulate stuff in memory buffers
21:57:38 <tomsmeding> euouae: the append operation on strict bytestrings will reallocate the whole thing every time
21:57:47 <euouae> oh ugh really? wow
21:57:52 <tomsmeding> it's immutable
21:57:54 <tomsmeding> it has no choice
21:58:04 <tomsmeding> same goes for (++) on String
21:58:05 <euouae> sure like python. I didn't realize
21:58:33 <euouae> Another option is to use a list and cons ByteString's. I can "flatten" them using lens
21:58:40 <tomsmeding> a Builder only stores the parts and materialise the whole thing in one go at the end
21:58:43 <euouae> is that a bad idea? because lens plays into other things I'm doing so I'll be using it regardless.
21:58:56 <tomsmeding> that would essentially be using a lazy bytestring
21:59:02 <tomsmeding> (Data.ByteString.Lazy)
21:59:09 <tomsmeding> that's a tree of strict bytestrings
21:59:31 <tomsmeding> and then to optimise that you use a Data.ByteString.Builder, because a lazy bytestring is optimised for larger chunks
21:59:41 <EvanR> euouae, you can generate a laz---^
21:59:47 <tomsmeding> too slow
22:00:03 <euouae> mostly I need to do isPrefixOf to chunk out tokens
22:00:17 <tomsmeding> do you need to do so while you're still writing at the end of the stream?
22:00:30 <tomsmeding> or can you finalize the stream before you start reading from it?
22:00:31 <euouae> The stream is a mix of file inputs and macro expansions
22:00:35 <euouae> no I can't finalize it
22:00:40 <tomsmeding> then a Builder won't work
22:00:48 <euouae> alright, thanks for clarifying that.
22:00:49 <EvanR> without some ridiculous hax xD
22:01:13 <EvanR> list of IVars containing the rest of the IVars of data
22:01:39 <euouae> If I had to do such hacks (not sure exactly what you mean) I'd not bother with Haskell, because I'm trying to simplify the code
22:02:00 <EvanR> this hax would make the consumer of the lazy bytestring simpler
22:02:04 <tomsmeding> simplest thing here that's not even terrible, might be a lazy bytestring
22:02:05 <EvanR> at expect of the producer
22:02:09 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
22:02:11 <EvanR> expense
22:02:24 <euouae> What I have is a mix of lazy and strict bytestrings in a list
22:02:32 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
22:02:35 <EvanR> lazy bytestring is already a mix of lazy and strict
22:02:38 <tomsmeding> appending at the end of a list is O(length of the list)
22:02:47 <euouae> Yes but there's more which are strict that I obtain from macroexpansions EvanR
22:02:58 <euouae> I only prepend
22:02:59 <tomsmeding> lazy bytestring improves on what you have by being a tree instead of a list, so it becomes O(log(length of the list)) instead
22:02:59 <EvanR> lazy = list of strict
22:03:19 <tomsmeding> euouae: wait I don't get it, I thought you read from the start and write from the end?
22:03:26 <tomsmeding> *to the end
22:03:44 <tomsmeding> EvanR: no, lazy = tree of strict
22:04:00 <EvanR> whether it's a list or a tree, appending to the right side isn't going to be O(log(n))
22:04:05 <tomsmeding> lol I'm wrong, it's a list
22:04:19 <euouae> I start with a file that I open so let's say one BL (lazy bytesting). I have it like [BL]. Then as I read from the BL, whatever the tokens tell me, like "prepend macroexpansion" or "insert another file here" is what I do
22:04:43 <tomsmeding> oh so the stream is more like a stack than a queue?
22:04:46 <euouae> yes
22:04:56 <EvanR> if you read it in using lazy I/O then that simplifies that too
22:04:59 <EvanR> assuming no errors occur
22:05:00 <tomsmeding> then plain list of (optionally lazy) bytestrings works perfectly fine
22:05:05 <euouae> That's what I'm doing EvanR! :) it's really neat
22:05:09 <tomsmeding> a list is a perfectly serviceable stack
22:05:17 <euouae> Yup, with lens to flatten it
22:05:20 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
22:05:27 <tomsmeding> what is there to flatten?
22:05:38 <euouae> there's multiple bytestrings
22:05:47 <tomsmeding> isn't that just using (++) instead of (:)?
22:05:48 <euouae> and I need to treat them as a single string
22:05:57 <tomsmeding> oh I see
22:06:02 <tomsmeding> a single lazy bytestring, I hope
22:06:08 <euouae> Yes
22:06:15 × olivial quits (~benjaminl@user/benjaminl) (Ping timeout: 252 seconds)
22:06:16 <tomsmeding> that should work
22:06:46 <euouae> What would happen if I used ++? Does it behave nicely with bytestrings? Now you confused me
22:06:51 olivial joins (~benjaminl@user/benjaminl)
22:06:54 <tomsmeding> I was thinking the writes go at the end, so you have some kind of queue, and queues are always inconvenient in haskell
22:07:06 <tomsmeding> euouae: no the ++ was for prepending, not for reading
22:07:28 <tomsmeding> reading by concatting to a lazy bytestring and then just messing with that should be fine
22:07:39 <euouae> what I do right now in my toy example: `fileContents <- traverse BL.readFile args`
22:07:42 <tomsmeding> though honestly, you could ditch the list and just have a single lazy bytestring
22:07:48 <euouae> so `./foo x y z` will open those three files
22:07:48 <tomsmeding> prepending to a lazy bytestring is fast
22:08:00 m5zs7k joins (aquares@web10.mydevil.net)
22:08:11 <tomsmeding> because a lazy bytestring is itself already a list
22:08:26 <euouae> Right, so maybe I don't need lens is what you're making me realize
22:08:32 <tomsmeding> yes
22:08:33 <euouae> How do I prepend?
22:08:41 <tomsmeding> `append`
22:08:47 <euouae> Hm... got it
22:09:02 <tomsmeding> see Lazy.Bytestring as [Strict.ByteString]
22:09:12 <tomsmeding> so append is O(number of chunks in the left argument)
22:09:41 <euouae> I don't understand what you mean by "see ..."
22:09:58 <tomsmeding> I mean: you should think of a lazy bytestring as a list of strict bytestrings
22:10:02 <tomsmeding> because actually, that's what it is
22:10:39 <tomsmeding> `append` is almost literally `append xs ys = foldr (:) ys xs`
22:11:10 <tomsmeding> the only difference is that it's not a normal list but a strict whose elements are strict, so it's `foldrChunks Chunk ys xs`
22:11:19 <tomsmeding> https://hackage-content.haskell.org/package/bytestring-0.12.2.0/docs/src/Data.ByteString.Lazy.Internal.html#append
22:12:07 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
22:12:17 <EvanR> a strict whose elements are strict?
22:12:49 <tomsmeding> https://hackage-content.haskell.org/package/bytestring-0.12.2.0/docs/src/Data.ByteString.Lazy.Internal.html#ByteString
22:13:05 <tomsmeding> the values of the list (the strict bytestrings) are strict; the tail pointer is lazy
22:13:09 <tomsmeding> it's just an optimisation
22:14:09 <tomsmeding> oh
22:14:14 <tomsmeding> a *list whose elements are strict
22:14:28 <tomsmeding> it's past midnight here, I should sleep
22:14:29 × AlexNoo quits (~AlexNoo@178.34.162.255) (Ping timeout: 260 seconds)
22:14:41 × AlexZenon quits (~alzenon@178.34.162.255) (Ping timeout: 272 seconds)
22:14:41 <EvanR> need an english compiler
22:14:47 AlexNoo joins (~AlexNoo@178.34.162.255)
22:15:06 tomsmeding . o O ( LLM )
22:15:23 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
22:15:30 <euouae> one last question
22:15:37 jmcantrell joins (~weechat@user/jmcantrell)
22:15:48 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
22:16:17 <euouae> I do `fileContents <- traverse BL.readFile args` like I said. If I change it to appending lazy bytestrings, does that mean I will have all those file descriptors open at the same time?
22:16:29 <euouae> because I think this line only opens files as necessary
22:17:08 <tomsmeding> BL.readFile will immediately open the file, and read from the thing lazily
22:17:17 <euouae> but I'm not sure what `mconcat (map BL.readFile args)` would do
22:17:18 <tomsmeding> so the code you currently have already opens everything immediately
22:17:38 <euouae> Oh really? Can't that be delayed until the thunk is evaluated?
22:17:40 AlexNoo_ joins (~AlexNoo@178.34.162.255)
22:17:41 <tomsmeding> whether you concat those things into a big lazy bytestring does not change this
22:17:54 <tomsmeding> well, whether it can or not, it isn't
22:18:01 <tomsmeding> https://hackage-content.haskell.org/package/bytestring-0.12.2.0/docs/src/Data.ByteString.Lazy.html#readFile
22:18:11 <euouae> fair enough. is there a way I can protect the thunk?
22:18:14 <tomsmeding> where hGetContents does lazy IO
22:18:20 <EvanR> the readFile IO action "completes" immediately, moving on to the next one
22:18:41 <tomsmeding> `let fileContents = map (unsafeInterleaveIO . BL.readFile) args` :p
22:18:56 <euouae> I don't get what you're pointing at in that source code of readFile
22:19:01 <tomsmeding> and hope that the stars align and no undefined behaviour occurs
22:19:18 <tomsmeding> euouae: what you can see from the source is that `readFile f` will immediately execute `openBinaryFile`
22:19:18 <euouae> I thought all code is lazy by default, why would openBinaryFile be immediately evaluated if I haven't yet read from that file?
22:19:24 <tomsmeding> because it's an IO action
22:19:28 <EvanR> if you want to do something between opening all the files you'd have to say so
22:19:32 <tomsmeding> IO actions happen in the order they are written
22:19:36 × AlexNoo quits (~AlexNoo@178.34.162.255) (Ping timeout: 265 seconds)
22:19:43 <euouae> ah yeah. that makes sense.
22:19:44 <euouae> thank you
22:19:51 <tomsmeding> % do putStrLn "hi" ; putStrLn "bye"
22:19:51 <yahb2> hi ; bye
22:20:01 <tomsmeding> I'm not using the () from those putStrLns, but they still get executed
22:20:11 <euouae> right I get it
22:20:21 <euouae> It's hard to reason about these things
22:20:23 <tomsmeding> the lazy IO done by hGetContents is black magic using unsafeInterleaveIO
22:20:44 <tomsmeding> (if you click through twice to hGetContentsN you can see the unsafeInterleaveIO)
22:21:10 <tomsmeding> lazy IO is hard to reason about
22:21:11 <euouae> thank you, I appreciate it.
22:21:22 <tomsmeding> it's why people generally discourage it :p
22:21:30 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
22:21:34 <tomsmeding> lazy IO also makes it very hard to handle errors while reading the file
22:21:52 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
22:22:00 <EvanR> there was a folklore belief that "unsafeInterleaveIO isn't actually unsafe", still not sure what that was about
22:22:15 <tomsmeding> it's worse than unsafePerformIO, right?
22:22:27 <tomsmeding> how can it suddenly be not-unsafe then
22:22:29 <EvanR> it's supposed to be not worse
22:22:55 <tomsmeding> maybe it's not worse from a "risking segfaults" point of view
22:23:00 <EvanR> unsafePerformIO is bad and unsafeCoerce is the worst
22:23:05 <tomsmeding> there are other very real reasons why it's worse
22:23:16 <tomsmeding> the standard argument against lazy IO is one such
22:23:25 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
22:23:30 <EvanR> unsafeInterleaveIO is a special case of unsafePerformIO
22:23:32 <tomsmeding> at least with unsafePerformIO, the IO happens all at once
22:23:39 <EvanR> you could do the same thing with unsafePerformIO
22:23:42 <tomsmeding> with unsafeInterleaveIO, the IO will happen... at some point
22:23:43 <EvanR> no?
22:23:51 <EvanR> unsafePerformIO happens whenever
22:23:58 <tomsmeding> it happens when the thunk is demanded
22:24:05 <tomsmeding> all of it happens when the thunk is demanded
22:24:08 <EvanR> same as unsafeInterleaveIO
22:24:10 AlexZenon joins (~alzenon@178.34.162.255)
22:24:27 <EvanR> the IO action happens
22:24:32 <EvanR> not sure what part of it means
22:24:48 <EvanR> the difference is unsafeInterleaveIO has to be initiated in IO
22:24:49 <tomsmeding> oh
22:25:13 <tomsmeding> okay good points, I don't know
22:25:28 <tomsmeding> I had the types in my mind incorrectly
22:25:28 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
22:25:52 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
22:25:54 tomsmeding now wonders what the difference is between `unsafeInterleaveIO m` and `pure (unsafePerformIO m)`
22:26:14 <tomsmeding> it's not implemented like that, so there's probably a difference
22:26:18 <EvanR> that's getting into the weeds now
22:26:48 <tomsmeding> it's relevant to the "which is more unsafe" question though
22:26:56 <tomsmeding> but it's too late for me to think about this
22:27:08 <tomsmeding> I shall go sleep
22:27:19 <probie> You can use `unsafeCoerce` safely
22:27:36 <tomsmeding> it is indeed possible
22:27:37 <EvanR> if you have IKnowWhatImDoing, then it nullifies the unsafe xD
22:27:42 <EvanR> which begs the question
22:28:13 <probie> safeUnsafeCoerce :: Coercible a b => a -> b; safeUnsafeCoerce = unsafeCoerce
22:28:28 <EvanR> :t coerce
22:28:28 <lambdabot> error:
22:28:29 <lambdabot> • Variable not in scope: coerce
22:28:29 <lambdabot> • Perhaps you meant ‘coerced’ (imported from Control.Lens)
22:28:34 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
22:28:37 <probie> if you can safely use `coerce` on it, you can safely use `unsafeCoerce` on it :p
22:30:07 <probie> IKnowWhatImDoing could suddenly become IDontKnowWhatImDoing between compiler versions
22:31:52 ljdarj1 joins (~Thunderbi@user/ljdarj)
22:32:18 <EvanR> yeah it is definitely not a concrete datatype with an expression
22:32:40 <EvanR> at best it's an invisible proof
22:33:09 <EvanR> the assumptions exit slowly over time
22:33:50 <probie> which is why I wish there were levels of "unsafe"-ness. e.g. `Data.Vector.unsafeIndex` is a very different beast than `unsafePerformIO` or `unsafeCoerce`
22:34:55 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds)
22:34:55 ljdarj1 is now known as ljdarj
22:37:28 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
22:37:49 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
22:39:00 <EvanR> ok unsafeInterleaveIO can be construed as an action which spawns a thread, delays an indeterminate time, then performs the IO and writes the result to an IVar, which is what the original action returned. And "coincidentally" the time delay corresponds to how long it took to look at the value
22:39:11 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
22:39:20 <EvanR> which is safer than unsafePerformIO?
22:40:20 <EvanR> sometimes I get it mixed up with readFile, which has some questionable behavior with errors, but that's not unsafeInterleaveIO's fault
22:42:41 <euouae> what is the questionable behavior
22:44:20 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
22:44:26 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
22:44:55 <EvanR> an IO error will be discarded and the list just ends
22:45:34 <euouae> It doesn't throw?
22:45:39 <EvanR> not in that case
22:45:55 <euouae> okay, thank you. I guess I have to manually do it? what functions do I use?
22:46:02 <EvanR> like I said imagine the action happening in some thread somewhere
22:46:17 <EvanR> throwing an error in your thread consuming the list would be weird
22:46:27 <EvanR> IOError in pure code
22:46:47 <euouae> I didn't think of that
22:46:58 <euouae> Perhaps I should use rio? I guess I always have it in the back of my head
22:47:14 <EvanR> I'm not sure, what are you asking
22:47:21 <EvanR> how to handle I/O errors?
22:47:32 j1n37 joins (~j1n37@user/j1n37)
22:47:45 <euouae> I want to control errors because I need to give proper error messages
22:47:53 <euouae> I can't use an API that sneakily hides them
22:48:04 <EvanR> stream processing libraries let you react to errors while incrementally reading the file
22:48:10 <euouae> like conduit?
22:48:19 <EvanR> like conduit
22:48:26 <euouae> will they also let me use a single large bytestring?
22:48:32 <euouae> a large lazy bytestirng
22:49:01 <EvanR> the way you're using the bytstring, I don't think so, it would replace the role of the lazy bytestring for this purpose
22:49:15 volsand parts (~volsand@2804:1b1:1080:3f49:dff2:9a47:8661:7944) (Até logo)
22:49:37 <EvanR> it would be a big jump in complexity so make sure it's worth it
22:50:25 Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
22:50:33 × tromp quits (~textual@2001:1c00:3487:1b00:29cc:e961:ab7b:113b) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:50:43 <euouae> readFile ends up in IO String. What do you mean that it can't throw IOError there?
22:50:49 <euouae> (or IO ByteString etc
22:52:22 <int-e> you can't report errors before they happen and readFile reads the file contents on demand
22:52:51 <euouae> oh yeah right
22:53:04 <euouae> I keep forgetting
22:53:26 <EvanR> readFile completes immediately
22:53:38 <EvanR> an I/O error might happen later
22:54:58 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
22:55:37 tolgo joins (~Thunderbi@199.115.144.130)
22:56:29 × Square2 quits (~Square@user/square) (Ping timeout: 260 seconds)
22:57:04 × Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 245 seconds)
22:57:47 <euouae> unless I was told all these things I don't think I'd be thinking them on my own ;P well anyway I might look into conduit after I write it with readFile to begin with
23:00:12 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
23:01:11 AlexNoo_ is now known as AlexNoo
23:04:02 <euouae> thanks again
23:04:03 × euouae quits (~euouae@user/euouae) ()
23:07:34 × tv quits (~tv@user/tv) (Ping timeout: 260 seconds)
23:10:45 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
23:11:35 simon1 joins (~simon@209-15-185-101.resi.cgocable.ca)
23:11:49 preflex_ joins (~preflex@user/mauke/bot/preflex)
23:15:29 × preflex quits (~preflex@user/mauke/bot/preflex) (Ping timeout: 248 seconds)
23:15:33 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
23:15:43 preflex_ is now known as preflex
23:17:57 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
23:19:13 Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
23:22:07 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
23:26:33 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
23:28:46 j1n37 joins (~j1n37@user/j1n37)
23:28:47 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
23:29:09 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
23:30:49 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
23:31:20 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
23:35:44 × tolgo quits (~Thunderbi@199.115.144.130) (Ping timeout: 252 seconds)
23:35:45 × Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 260 seconds)
23:36:10 tolgo joins (~Thunderbi@199.115.144.130)
23:36:30 × tolgo quits (~Thunderbi@199.115.144.130) (Client Quit)
23:42:21 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
23:47:34 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
23:49:47 × sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Remote host closed the connection)
23:50:11 sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
23:58:08 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
23:58:25 × j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer)
23:59:45 × simon1 quits (~simon@209-15-185-101.resi.cgocable.ca) (Ping timeout: 248 seconds)

All times are in UTC on 2025-05-26.