2025/03/12

2025-03-12 00:01:38 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2025-03-12 00:06:01 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 00:08:03 +0100xff0x(~xff0x@2405:6580:b080:900:a19a:8794:3896:90e9) (Quit: xff0x)
2025-03-12 00:08:22 +0100Smiles(uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2025-03-12 00:11:32 +0100xff0x(~xff0x@2405:6580:b080:900:9140:fdbd:b262:8bcd)
2025-03-12 00:12:56 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2025-03-12 00:23:36 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-12 00:24:03 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 00:26:54 +0100tabaqui1(~root@87.200.129.102) (Ping timeout: 276 seconds)
2025-03-12 00:27:54 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 246 seconds)
2025-03-12 00:28:15 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-03-12 00:29:09 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla
2025-03-12 00:29:40 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-03-12 00:39:26 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 00:42:04 +0100j1n37(~j1n37@user/j1n37) (Read error: Connection reset by peer)
2025-03-12 00:43:59 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-03-12 00:45:06 +0100j1n37(~j1n37@user/j1n37) j1n37
2025-03-12 00:46:27 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 246 seconds)
2025-03-12 00:54:48 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 00:58:30 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2025-03-12 00:59:27 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-03-12 00:59:33 +0100euouae(~euouae@user/euouae) (Ping timeout: 245 seconds)
2025-03-12 01:01:19 +0100acidjnk_new(~acidjnk@p200300d6e7283f28ecd38ce1a7966a67.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2025-03-12 01:02:04 +0100hattckory(~hattckory@bras-base-toroon4524w-grc-48-184-145-138-167.dsl.bell.ca) (Ping timeout: 260 seconds)
2025-03-12 01:03:18 +0100enikar(~enikar@user/enikar) (Ping timeout: 245 seconds)
2025-03-12 01:09:01 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-12 01:10:12 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 01:13:30 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 252 seconds)
2025-03-12 01:14:03 +0100j1n37(~j1n37@user/j1n37) (Read error: Connection reset by peer)
2025-03-12 01:14:36 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-03-12 01:16:16 +0100enikar(~enikar@user/enikar) enikar
2025-03-12 01:17:41 +0100j1n37(~j1n37@user/j1n37) j1n37
2025-03-12 01:25:05 +0100Smiles(uid551636@id-551636.lymington.irccloud.com) Smiles
2025-03-12 01:25:34 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 01:29:54 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-03-12 01:37:14 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 260 seconds)
2025-03-12 01:39:02 +0100weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-03-12 01:40:58 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 01:46:50 +0100sprotte24(~sprotte24@p200300d16f384d0018ca1d25abfd4f54.dip0.t-ipconnect.de) (Quit: Leaving)
2025-03-12 01:47:40 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-03-12 01:54:45 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-12 01:58:52 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 252 seconds)
2025-03-12 01:59:00 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 02:03:45 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-03-12 02:05:53 +0100xff0x(~xff0x@2405:6580:b080:900:9140:fdbd:b262:8bcd) (Ping timeout: 248 seconds)
2025-03-12 02:14:21 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 02:16:26 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2025-03-12 02:19:14 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-03-12 02:22:56 +0100notdabs(~Owner@2600:1700:69cf:9000:c403:b663:f780:bd25) (Quit: Leaving)
2025-03-12 02:29:44 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 02:31:02 +0100hattckory(~hattckory@bras-base-toroon4524w-grc-48-184-145-138-167.dsl.bell.ca)
2025-03-12 02:32:09 +0100califax(~califax@user/califx) (Remote host closed the connection)
2025-03-12 02:33:57 +0100califax(~califax@user/califx) califx
2025-03-12 02:34:04 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-03-12 02:35:59 +0100hattckory(~hattckory@bras-base-toroon4524w-grc-48-184-145-138-167.dsl.bell.ca) (Ping timeout: 260 seconds)
2025-03-12 02:41:09 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-12 02:45:07 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 02:45:25 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 252 seconds)
2025-03-12 02:49:27 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-03-12 02:55:50 +0100 <monochrom> Every formatter prioritizes minimizing diffs. This has the side effect of being more ugly and even religious.
2025-03-12 02:58:34 +0100 <monochrom> But stepping back looking more holistically, that in turn is a side effect of the religion of "source code must be plain text files".
2025-03-12 03:00:12 +0100 <geekosaur> the day I don't have to use grep because the tools are too dumb, you can take away my plain text files
2025-03-12 03:00:29 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 03:01:22 +0100 <geekosaur> (the same applies to these overweening new messaging platforms, search is so limited and stupid that I don't even bother on Discord or non-bridged Matrix and I log the bridged rooms on IRC so I can use real search utils)
2025-03-12 03:03:01 +0100vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 252 seconds)
2025-03-12 03:03:17 +0100 <geekosaur> (this is not religion, it's falling back on stone knives and bearskins)
2025-03-12 03:03:17 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2025-03-12 03:04:52 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2025-03-12 03:05:09 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-03-12 03:09:24 +0100 <monochrom> You have an excellent reason, so I don't say that you follow a religion. Some other people use circular logic; that I call religion.
2025-03-12 03:09:29 +0100Guest47(~Guest47@2600:387:f:7e18::6)
2025-03-12 03:10:39 +0100Guest47(~Guest47@2600:387:f:7e18::6) (Client Quit)
2025-03-12 03:15:09 +0100 <geekosaur> I'll also note that with LSPs, we're in at best the early Bronze age (granting that switching from plain text files might allow for improvements — but some of the LSPs I've used are at best Stone age, so I must wonder)
2025-03-12 03:15:51 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 03:17:37 +0100yegorc(~yegorc@user/yegorc) yegorc
2025-03-12 03:22:28 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-03-12 03:26:33 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-12 03:27:36 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds)
2025-03-12 03:30:41 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 248 seconds)
2025-03-12 03:34:21 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 03:39:24 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2025-03-12 03:41:15 +0100hattckory(~hattckory@bras-base-toroon4524w-grc-48-184-145-138-167.dsl.bell.ca)
2025-03-12 03:49:43 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 03:54:22 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-03-12 03:58:50 +0100tavare(~tavare@150.129.88.189) tavare
2025-03-12 03:58:50 +0100tavare(~tavare@150.129.88.189) (Changing host)
2025-03-12 03:58:50 +0100tavare(~tavare@user/tavare) tavare
2025-03-12 04:03:51 +0100izzyfalco(~jake_pers@user/izzyfalco) izzyfalco
2025-03-12 04:05:06 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 04:05:18 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-03-12 04:09:24 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-03-12 04:11:57 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-12 04:16:39 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 265 seconds)
2025-03-12 04:20:29 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 04:24:44 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-03-12 04:30:30 +0100enikar(~enikar@user/enikar) (Quit: WeeChat 4.5.1)
2025-03-12 04:34:04 +0100Smiles(uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2025-03-12 04:35:51 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 04:40:49 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-03-12 04:43:31 +0100yegorc(~yegorc@user/yegorc) (Quit: Leaving)
2025-03-12 04:44:57 +0100izzyfalco(~jake_pers@user/izzyfalco) (Ping timeout: 276 seconds)
2025-03-12 04:51:13 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 04:55:26 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-03-12 04:57:21 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-12 04:58:27 +0100vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 252 seconds)
2025-03-12 05:00:29 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2025-03-12 05:01:25 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 244 seconds)
2025-03-12 05:06:34 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 05:06:58 +0100euouae(~euouae@user/euouae) euouae
2025-03-12 05:13:39 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-03-12 05:18:43 +0100 <euouae> This thread <https://www.reddit.com/r/haskell/comments/5zjwym/when_is_undecidableinstances_okay_to_use/> has good info on UndecidableInstances, the other two were easier to understand
2025-03-12 05:22:52 +0100 <EvanR> The constraint ‘Monad (t n)’ is no smaller than the instance head (Use UndecidableInstances to permit this)
2025-03-12 05:22:58 +0100JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2025-03-12 05:23:16 +0100 <EvanR> it's really nice when the compiler knows that it will finish and not enter into an infinite loop
2025-03-12 05:23:33 +0100 <EvanR> which these smaller conditions guarantee
2025-03-12 05:24:19 +0100 <euouae> what I gathered from the reddit post is that the 's' is not getting smaller and that is the issue
2025-03-12 05:24:39 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 05:24:40 +0100 <euouae> but at the same time it's fine because of the functional dependency | m -> s in the definition of MonadState in mtl
2025-03-12 05:26:13 +0100infinity0(~infinity0@pwned.gg) (Ping timeout: 245 seconds)
2025-03-12 05:26:51 +0100 <EvanR> the first thing I thought was "for some reason, this idea of default implementations that work for everything with a certain typeclass instance is frowned upon" and couldn't remember the reason
2025-03-12 05:27:03 +0100 <EvanR> then ekmett gets to that in the response
2025-03-12 05:27:16 +0100 <EvanR> it leads to overlapping instances
2025-03-12 05:28:35 +0100 <EvanR> typeclasses aren't built to do the sort of "overriding" that you see in prototypal OOP. Your type either has a single instance for the class, or it doesn't. Not competing instances with priority
2025-03-12 05:28:51 +0100 <EvanR> (unless you do overlapping instances and god help you)
2025-03-12 05:29:05 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-03-12 05:30:14 +0100mange(~user@user/mange) mange
2025-03-12 05:31:23 +0100 <c_wraith> UndecidableInstances is basically always fine to turn on. It's when you do and then GHC tells you the next thing to do is turn on overlapping, you know you're doing something wrong.
2025-03-12 05:32:56 +0100 <euouae> I wasn't sure in what situation I'd run into undecidability with instance declarations
2025-03-12 05:33:15 +0100 <euouae> perhaps if I did `instance Foo (F x) => Foo x where ...`?
2025-03-12 05:33:15 +0100synchromesh(~john@2406:5a00:24cf:bb00:c559:e625:333a:3d27) (Read error: Connection reset by peer)
2025-03-12 05:34:04 +0100 <euouae> but I'm assuming you're saying that the more important/encountered issue is overlapping instances
2025-03-12 05:34:24 +0100synchromesh(~john@2406:5a00:24cf:bb00:98ab:59f5:dcb3:c8fc) synchromesh
2025-03-12 05:34:32 +0100 <EvanR> does the implied kind expected by the hypothetical Foo class make sense there
2025-03-12 05:34:37 +0100 <c_wraith> yeah, that example would trigger it, but that's not a problem. The problem is that that instance overlaps everything
2025-03-12 05:34:45 +0100 <c_wraith> So then ghc is going to tell you to allow overlapping
2025-03-12 05:34:51 +0100 <c_wraith> and that's when things get fragile
2025-03-12 05:35:09 +0100 <EvanR> ok nvm that
2025-03-12 05:35:46 +0100 <euouae> oh I see
2025-03-12 05:39:23 +0100 <EvanR> I tried it
2025-03-12 05:39:37 +0100 <EvanR> GHC rejects my code because of overlapping instances
2025-03-12 05:39:42 +0100 <EvanR> but at least doesn't tell me to turn it on xD
2025-03-12 05:40:01 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 05:40:05 +0100 <c_wraith> I guess when overlapping was moved to a per-instance pragma, they decided not to advise turning it on
2025-03-12 05:40:09 +0100 <EvanR> (and LANGUAGE OverlappingInstances is deprecated)
2025-03-12 05:40:21 +0100 <c_wraith> when it was module level, it did just say "turn on this extension to allow this"
2025-03-12 05:42:45 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-12 05:43:15 +0100 <c_wraith> A common way to end up needing UndecidableInstances without MPTCs or Overlapping is stuff like Fix. `newtype Fix f = Fix (f (Fix f))`. Attempting the automatic Show instance for that ends up with the compiler trying to write something like `instance Show (f (Fix f)) => Show (Fix f) ...`
2025-03-12 05:43:32 +0100 <c_wraith> And in that case, the constraint is definitely larger than the instance head.
2025-03-12 05:44:34 +0100 <c_wraith> On one hand, that's why the Show1 class exists. On the other, you can do it with UndecidableInstances and StandaloneDeriving.
2025-03-12 05:45:44 +0100 <EvanR> I continued to try to troll ghc with some terrible overlapping instances
2025-03-12 05:45:59 +0100 <EvanR> ghci told me to enable IncoherentInstances
2025-03-12 05:46:16 +0100 <c_wraith> you should be getting nervous.
2025-03-12 05:46:19 +0100 <EvanR> lol
2025-03-12 05:46:53 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 244 seconds)
2025-03-12 05:46:55 +0100 <euouae> it's like those no-fault waivers
2025-03-12 05:47:19 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-03-12 05:49:58 +0100 <EvanR> now it's telling me the reduction stack size of 201 ran out, and instead of increasing it, to disable the check if I'm sure type checking will terminate
2025-03-12 05:50:28 +0100 <c_wraith> I'm sure nothing bad could happen
2025-03-12 05:50:36 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds)
2025-03-12 05:52:02 +0100 <EvanR> when someone said haskell is not a logic they weren't kidding
2025-03-12 05:52:19 +0100 <c_wraith> pfft. It's a logic, it's just not a consistent one.
2025-03-12 05:52:52 +0100 <EvanR> falso 9.6
2025-03-12 05:53:29 +0100 <c_wraith> inconsistent logics are nice because they let you prove anything, and so does Haskell
2025-03-12 05:54:37 +0100 <EvanR> that being said, the type class system always terminates if you don't enable any dark magic pragmas right
2025-03-12 05:55:04 +0100 <EvanR> so there's a way to use it semilogically
2025-03-12 05:55:13 +0100 <c_wraith> yes. the solver always shrinks the problem with the default rules
2025-03-12 05:56:26 +0100tusko(uid478376@user/tusko) tusko
2025-03-12 05:57:10 +0100jmcantrell(~weechat@user/jmcantrell) (Quit: WeeChat 4.5.2)
2025-03-12 05:57:44 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 06:02:05 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-03-12 06:06:07 +0100j1n37-(~j1n37@user/j1n37) j1n37
2025-03-12 06:06:58 +0100j1n37(~j1n37@user/j1n37) (Ping timeout: 272 seconds)
2025-03-12 06:13:07 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 06:17:11 +0100sabathan(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
2025-03-12 06:17:33 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-03-12 06:20:52 +0100sabathan(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
2025-03-12 06:23:32 +0100robobub(uid248673@id-248673.uxbridge.irccloud.com) robobub
2025-03-12 06:28:09 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-12 06:28:30 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 06:31:19 +0100j1n37-(~j1n37@user/j1n37) (Read error: Connection reset by peer)
2025-03-12 06:32:37 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 248 seconds)
2025-03-12 06:33:09 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-03-12 06:34:44 +0100 <euouae> alright thank you both!
2025-03-12 06:34:46 +0100euouae(~euouae@user/euouae) ()
2025-03-12 06:35:02 +0100j1n37(~j1n37@user/j1n37) j1n37
2025-03-12 06:41:39 +0100michalz(~michalz@185.246.207.221)
2025-03-12 06:43:04 +0100k0zy(~user@user/k0zy) k0zy
2025-03-12 06:43:53 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 06:50:41 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-03-12 06:55:01 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-03-12 07:01:57 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 07:02:29 +0100vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 248 seconds)
2025-03-12 07:04:13 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2025-03-12 07:07:00 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-03-12 07:14:33 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-12 07:16:15 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds)
2025-03-12 07:17:19 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 07:18:58 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 252 seconds)
2025-03-12 07:22:15 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-03-12 07:25:26 +0100k0zy(~user@user/k0zy) (Remote host closed the connection)
2025-03-12 07:27:43 +0100k0zy(~user@user/k0zy) k0zy
2025-03-12 07:27:43 +0100Vajb(~Vajb@85-76-36-81-nat.elisa-mobile.fi) (Read error: Connection reset by peer)
2025-03-12 07:27:47 +0100T0NN(~T0NN@2404:c0:2c10::16be:e80d)
2025-03-12 07:29:30 +0100Vajb(~Vajb@n83sqe30rcw6481fyv6-1.v6.elisa-mobile.fi)
2025-03-12 07:29:37 +0100JuanDaugherty(~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org))
2025-03-12 07:32:42 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 07:32:56 +0100k0zy(~user@user/k0zy) (Remote host closed the connection)
2025-03-12 07:34:06 +0100T0NN(~T0NN@2404:c0:2c10::16be:e80d) (Ping timeout: 240 seconds)
2025-03-12 07:37:03 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-03-12 07:43:35 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 07:47:56 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-03-12 07:58:34 +0100k0zy(~user@user/k0zy) k0zy
2025-03-12 07:58:57 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 08:00:02 +0100caconym(~caconym@user/caconym) (Quit: bye)
2025-03-12 08:00:52 +0100caconym(~caconym@user/caconym) caconym
2025-03-12 08:03:48 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-03-12 08:06:17 +0100CiaoSen(~Jura@2a02:8071:64e1:7180::ac59) CiaoSen
2025-03-12 08:06:38 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-12 08:11:02 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 252 seconds)
2025-03-12 08:12:13 +0100Lord_of_Life_(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2025-03-12 08:13:00 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds)
2025-03-12 08:13:33 +0100Lord_of_Life_Lord_of_Life
2025-03-12 08:13:58 +0100j1n37(~j1n37@user/j1n37) (Read error: Connection reset by peer)
2025-03-12 08:14:09 +0100p3n(~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) (Quit: ZNC 1.9.1 - https://znc.in)
2025-03-12 08:14:19 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 08:17:12 +0100p3n(~p3n@217.198.124.246) p3n
2025-03-12 08:17:12 +0100j1n37(~j1n37@user/j1n37) j1n37
2025-03-12 08:19:09 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-03-12 08:19:16 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-03-12 08:28:18 +0100izzyfalco(~jake_pers@user/izzyfalco) izzyfalco
2025-03-12 08:29:42 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 08:36:20 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-03-12 08:40:42 +0100vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 244 seconds)
2025-03-12 08:42:19 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2025-03-12 08:42:33 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2025-03-12 08:44:36 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 08:49:10 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-03-12 08:51:07 +0100Square2(~Square4@user/square) Square
2025-03-12 08:51:46 +0100pointlessslippe1(~pointless@62.106.85.17) (Read error: Connection reset by peer)
2025-03-12 08:52:22 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-12 08:56:30 +0100chele(~chele@user/chele) chele
2025-03-12 08:56:31 +0100pointlessslippe1(~pointless@62.106.85.17) pointlessslippe1
2025-03-12 08:56:54 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 260 seconds)
2025-03-12 08:58:56 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2025-03-12 08:59:58 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-12 09:03:10 +0100sord937(~sord937@gateway/tor-sasl/sord937) sord937
2025-03-12 09:04:37 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-03-12 09:06:42 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2025-03-12 09:10:26 +0100 <kaol> I just realized that I can use traverse instead of maybe (pure ()). Much nicer to look at.
2025-03-12 09:10:35 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2025-03-12 09:10:54 +0100sord937(~sord937@gateway/tor-sasl/sord937) sord937
2025-03-12 09:14:25 +0100 <ski> or `for'
2025-03-12 09:18:58 +0100 <kaol> Not unless I flip it.
2025-03-12 09:22:35 +0100ft(~ft@p508db291.dip0.t-ipconnect.de) (Quit: leaving)
2025-03-12 09:24:40 +0100acidjnk_new(~acidjnk@p200300d6e7283f52ecd38ce1a7966a67.dip0.t-ipconnect.de) acidjnk
2025-03-12 09:28:32 +0100gmg(~user@user/gehmehgeh) gehmehgeh
2025-03-12 09:31:05 +0100ljdarj(~Thunderbi@user/ljdarj) (Quit: ljdarj)
2025-03-12 09:31:24 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-03-12 09:37:05 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-12 09:40:16 +0100__monty__(~toonn@user/toonn) toonn
2025-03-12 09:41:24 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 260 seconds)
2025-03-12 09:48:53 +0100tusko(uid478376@user/tusko) (Quit: Connection closed for inactivity)
2025-03-12 09:57:49 +0100merijn(~merijn@77.242.116.146) merijn
2025-03-12 10:00:06 +0100stilgart(~Christoph@chezlefab.net) stilgart
2025-03-12 10:00:27 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) Unicorn_Princess
2025-03-12 10:03:47 +0100Smiles(uid551636@id-551636.lymington.irccloud.com) Smiles
2025-03-12 10:06:54 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 260 seconds)
2025-03-12 10:08:29 +0100merijn(~merijn@77.242.116.146) merijn
2025-03-12 10:13:51 +0100izzyfalco(~jake_pers@user/izzyfalco) (Ping timeout: 252 seconds)
2025-03-12 10:23:10 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-12 10:27:28 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 245 seconds)
2025-03-12 10:34:29 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 260 seconds)
2025-03-12 10:36:32 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-03-12 10:40:16 +0100rvalue(~rvalue@user/rvalue) (Ping timeout: 252 seconds)
2025-03-12 10:40:38 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 252 seconds)
2025-03-12 10:44:19 +0100 <mauke> rule of thumb: it's always traverse
2025-03-12 10:48:00 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac
2025-03-12 10:49:15 +0100tabaqui1(~root@87.200.129.102) tabaqui
2025-03-12 10:49:55 +0100 <dminuoso> Also, you can just locally rename/constraint its type
2025-03-12 10:49:59 +0100 <dminuoso> % withJust :: Maybe a -> (a -> IO b) -> IO (); withJust = for_b
2025-03-12 10:49:59 +0100 <yahb2> <interactive>:343:57: error: [GHC-88464] ; Variable not in scope: for_b :: Maybe a -> (a -> IO b) -> IO () ; Suggested fix: Perhaps use ‘for_’ (imported from Data.Foldable)
2025-03-12 10:50:02 +0100 <dminuoso> % withJust :: Maybe a -> (a -> IO b) -> IO (); withJust = for_
2025-03-12 10:50:02 +0100 <yahb2> <no output>
2025-03-12 10:50:24 +0100 <dminuoso> Especially for using Traversable/Foldable instances that are not immediately clear
2025-03-12 10:51:00 +0100preflex_(~preflex@user/mauke/bot/preflex) preflex
2025-03-12 10:51:01 +0100pata(~pata@185.57.29.142)
2025-03-12 10:51:16 +0100Guest30566(~Guest3056@fixed-187-189-0-231.totalplay.net)
2025-03-12 10:51:28 +0100 <dminuoso> Over all my Haskell time, my code complexity/tricky has followed a parabola.
2025-03-12 10:51:33 +0100 <kaol> traverse @Maybe
2025-03-12 10:52:58 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 244 seconds)
2025-03-12 10:53:05 +0100merijn(~merijn@77.242.116.146) merijn
2025-03-12 10:53:43 +0100Guest71(~Guest3056@fixed-187-189-0-231.totalplay.net)
2025-03-12 10:54:33 +0100preflex(~preflex@user/mauke/bot/preflex) (Ping timeout: 252 seconds)
2025-03-12 10:54:48 +0100preflex_preflex
2025-03-12 10:55:48 +0100Clint(~Clint@user/clint) (Ping timeout: 245 seconds)
2025-03-12 10:56:51 +0100vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 265 seconds)
2025-03-12 10:57:19 +0100Clint(~Clint@user/clint) Clint
2025-03-12 10:57:59 +0100 <__monty__> dminuoso: -x^2 or x^2? : >
2025-03-12 10:58:19 +0100 <dminuoso> Heh.
2025-03-12 10:59:02 +0100 <dminuoso> Right in the middle I was exploring all the type level tricks, dependent typing, effects, had it all. :-)
2025-03-12 11:01:45 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 244 seconds)
2025-03-12 11:07:10 +0100merijn(~merijn@77.242.116.146) merijn
2025-03-12 11:09:35 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-12 11:14:00 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 252 seconds)
2025-03-12 11:32:57 +0100takuan(~takuan@d8D86B601.access.telenet.be)
2025-03-12 11:34:54 +0100pata(~pata@185.57.29.142) (Ping timeout: 240 seconds)
2025-03-12 11:35:33 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.5.1)
2025-03-12 11:47:49 +0100Square2(~Square4@user/square) (Ping timeout: 260 seconds)
2025-03-12 11:48:34 +0100Square2(~Square4@user/square) Square
2025-03-12 11:49:09 +0100fp(~Thunderbi@wireless-86-50-140-47.open.aalto.fi) fp
2025-03-12 11:51:32 +0100xff0x(~xff0x@2405:6580:b080:900:7a6d:e986:6f30:4a1b)
2025-03-12 11:54:02 +0100Square2(~Square4@user/square) (Ping timeout: 272 seconds)
2025-03-12 11:55:39 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-12 12:00:27 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 276 seconds)
2025-03-12 12:03:17 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 248 seconds)
2025-03-12 12:07:02 +0100ubert(~Thunderbi@2a02:8109:ab8a:5a00:b341:438:8f09:aa92) ubert
2025-03-12 12:10:51 +0100tavare(~tavare@user/tavare) (Remote host closed the connection)
2025-03-12 12:11:17 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
2025-03-12 12:13:35 +0100rvalue(~rvalue@user/rvalue) rvalue
2025-03-12 12:14:56 +0100 <[exa]> so let's say I want to make some minor stats work with haskell and I want to have self-organizing maps implemented. Or k-means or any such thing. Involves matrices with tons (millions) of multidimensional (say 50D) points. What package to choose? The computation depends mainly on fast dot-products between slices of the matrices.
2025-03-12 12:15:42 +0100 <[exa]> (I'd go accelerate but it sounds a bit like overkill, I don't need it blazing fast; I'm pretty much ok with just "not stupidly inefficient".)
2025-03-12 12:17:44 +0100merijn(~merijn@77.242.116.146) merijn
2025-03-12 12:19:27 +0100tabaqui(~root@167.71.80.236) (Quit: WeeChat 4.5.1)
2025-03-12 12:25:05 +0100tabaqui(~root@167.71.80.236) tabaqui
2025-03-12 12:26:41 +0100tabaqui(~root@167.71.80.236) (Client Quit)
2025-03-12 12:28:54 +0100CiaoSen(~Jura@2a02:8071:64e1:7180::ac59) (Ping timeout: 268 seconds)
2025-03-12 12:41:43 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-12 12:46:07 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 244 seconds)
2025-03-12 12:49:48 +0100sprotte24(~sprotte24@p200300d16f4b7200116db6fce964005a.dip0.t-ipconnect.de)
2025-03-12 12:57:19 +0100CiaoSen(~Jura@2a02:8071:64e1:7180::ac59) CiaoSen
2025-03-12 12:58:52 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 252 seconds)
2025-03-12 13:00:34 +0100merijn(~merijn@77.242.116.146) merijn
2025-03-12 13:05:36 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 272 seconds)