2026/05/31

2026-05-31 00:06:25 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-05-31 00:12:56 +0000tremon(~tremon@83-80-159-219.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in)
2026-05-31 00:17:24 +0000merijn(~merijn@62.45.136.136) merijn
2026-05-31 00:21:59 +0000Icy-Thought(~user@user/icy-thought) (Ping timeout: 245 seconds)
2026-05-31 00:22:09 +0000merijn(~merijn@62.45.136.136) (Ping timeout: 252 seconds)
2026-05-31 00:33:10 +0000merijn(~merijn@62.45.136.136) merijn
2026-05-31 00:37:33 +0000merijn(~merijn@62.45.136.136) (Ping timeout: 252 seconds)
2026-05-31 00:48:35 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 00:51:13 +0000Pozyomka_(~pyon@user/pyon) pyon
2026-05-31 00:51:18 +0000Pozyomka(~pyon@user/pyon) (Remote host closed the connection)
2026-05-31 00:53:46 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2026-05-31 00:56:40 +0000pavonia(~user@user/siracusa) siracusa
2026-05-31 00:57:21 +0000Vizious(~bes@user/Vizious) (Ping timeout: 246 seconds)
2026-05-31 00:59:34 +0000Vizious(~bes@user/Vizious) Vizious
2026-05-31 01:04:20 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 01:09:27 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-05-31 01:10:26 +0000puke(~puke@user/puke) (Quit: puke)
2026-05-31 01:15:53 +0000puke(~puke@user/puke) puke
2026-05-31 01:20:09 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 01:21:40 +0000acidjnk(~acidjnk@p200300d6e700e5548c17d531dbcfc9e6.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2026-05-31 01:21:40 +0000acidjnk_new(~acidjnk@p200300d6e700e5548c17d531dbcfc9e6.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2026-05-31 01:25:03 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 261 seconds)
2026-05-31 01:26:08 +0000Pozyomka_(~pyon@user/pyon) (Remote host closed the connection)
2026-05-31 01:26:27 +0000Pozyomka(~pyon@user/pyon) pyon
2026-05-31 01:35:54 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 01:42:36 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-05-31 01:42:53 +0000Pozyomka(~pyon@user/pyon) (Remote host closed the connection)
2026-05-31 01:42:53 +0000Pozyomka_(~pyon@user/pyon) pyon
2026-05-31 01:53:55 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 01:59:02 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-05-31 02:05:02 +0000op_4(~tslil@user/op-4/x-9116473) (Remote host closed the connection)
2026-05-31 02:05:40 +0000op_4(~tslil@user/op-4/x-9116473) op_4
2026-05-31 02:09:44 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 02:14:24 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2026-05-31 02:16:06 +0000td_(~td@i53870907.versanet.de) (Ping timeout: 243 seconds)
2026-05-31 02:17:59 +0000td_(~td@i53870937.versanet.de)
2026-05-31 02:19:25 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds)
2026-05-31 02:25:06 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 02:29:35 +0000 <jreicher> lisbeths: there are (at least) two different domains of lambda calculus evaluation performance. One is the calculus itself, i.e. some evaluation orders are shorter than others. In the K-calculus, some evaluations don't terminate at all. The term "lazy" evaluation is sometimes used (incorrectly, in my opinion) to refer to evaluation order. You should make sure you're doing normal order evaluation. That's kind of the bare minimum for a
2026-05-31 02:29:35 +0000 <jreicher> machine. Next is the implementation itself...
2026-05-31 02:30:01 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-05-31 02:30:13 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2026-05-31 02:30:21 +0000 <jreicher> For that there are (at least) three kinds of optimisation. One is tail call optimisation. Another is fast currying. And then another is lazy evaluation, which is the memoisation of results.
2026-05-31 02:31:05 +0000 <jreicher> And that's not even covering how you might represent the result of a beta reduction. The expensive way to do it is to generate a new lambda expression, but if performance is not a consideration there's actually nothing wrong with that. The use of environments, etc. is really just an optimisation.
2026-05-31 02:32:16 +0000 <jreicher> Memoisation of results depends a bit on whether you are reducing under abstractions. I've never seen an implementation of that, but it's sometimes called "full laziness". Would be cool if someone did it.
2026-05-31 02:33:24 +0000 <jreicher> But for a really efficient implementation you need to figure out fast currying. In some ways it's the most difficult of the three.
2026-05-31 02:34:37 +0000 <lisbeths> you can write lazy algorithms in lc by suspending the application of something and storing all the arguments in a list. it doesnt have to be built into the interpreter
2026-05-31 02:35:08 +0000 <lisbeths> im more talking about how to get fast arrays in lc
2026-05-31 02:36:26 +0000Fijxu(~Fijxu@user/fijxu) (Quit: XD!!)
2026-05-31 02:37:10 +0000Fijxu(~Fijxu@user/fijxu) fijxu
2026-05-31 02:37:51 +0000 <jreicher> lisbeths: you don't store the arguments in a list. The lambda calculus expression IS the lsit.
2026-05-31 02:41:04 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 02:45:55 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-05-31 02:56:41 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 02:59:04 +0000spew(~spew@user/spew) (Quit: nyaa~)
2026-05-31 02:59:22 +0000spew(~spew@user/spew) spew
2026-05-31 03:01:52 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-05-31 03:03:42 +0000 <jreicher> lisbeths: thought about what you want to do a little more and I've had an idea. Have you tried using arrays efficiently in Haskell, without re-implementing lambda calculus evaluation?
2026-05-31 03:12:25 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 03:17:48 +0000Pozyomka_(~pyon@user/pyon) (Remote host closed the connection)
2026-05-31 03:17:48 +0000Pozyomka(~pyon@user/pyon) pyon
2026-05-31 03:18:56 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-05-31 03:30:27 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 03:33:44 +0000Inline(~noOne@ipservice-092-208-182-236.092.208.pools.vodafone-ip.de) Inline
2026-05-31 03:35:20 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 254 seconds)
2026-05-31 03:38:20 +0000humasect(~humasect@192.249.132.90) humasect
2026-05-31 04:05:26 +0000haritz(~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
2026-05-31 04:08:23 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 04:13:36 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 266 seconds)
2026-05-31 04:23:29 +0000Pozyomka_(~pyon@user/pyon) pyon
2026-05-31 04:23:31 +0000Pozyomka(~pyon@user/pyon) (Remote host closed the connection)
2026-05-31 04:24:19 +0000merijn(~merijn@62.45.136.136) merijn
2026-05-31 04:25:19 +0000Pozyomka(~pyon@user/pyon) pyon
2026-05-31 04:26:14 +0000Pozyomka_(~pyon@user/pyon) (Read error: Connection reset by peer)
2026-05-31 04:29:07 +0000merijn(~merijn@62.45.136.136) (Ping timeout: 264 seconds)
2026-05-31 04:39:59 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 04:43:34 +0000Pozyomka(~pyon@user/pyon) (Quit: fuck claro)
2026-05-31 04:45:18 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-05-31 04:47:46 +0000humasect(~humasect@192.249.132.90) (Quit: Leaving...)
2026-05-31 04:53:25 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 04:58:30 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 253 seconds)
2026-05-31 04:59:30 +0000vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 248 seconds)
2026-05-31 05:05:35 +0000takuan(~takuan@d8D86B9E9.access.telenet.be)
2026-05-31 05:09:12 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 05:16:22 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2026-05-31 05:27:15 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 05:32:43 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-05-31 05:32:56 +0000bedbedbde(~bedbedbde@user/bedbedbde) bedbedbde
2026-05-31 05:37:23 +0000bedbedbde(~bedbedbde@user/bedbedbde) (Read error: Connection reset by peer)
2026-05-31 05:43:03 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 05:48:06 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 266 seconds)
2026-05-31 05:56:37 +0000lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2026-05-31 05:58:44 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 06:02:36 +0000phos(~az-181@2a04:4a43:94bf:f166:33c0:fe4e:a468:67a4) (Ping timeout: 252 seconds)
2026-05-31 06:03:53 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-05-31 06:12:04 +0000marinelli(~weechat@gateway/tor-sasl/marinelli) (Ping timeout: 252 seconds)
2026-05-31 06:14:11 +0000marinelli(~weechat@gateway/tor-sasl/marinelli) marinelli
2026-05-31 06:16:54 +0000lisbeths(uid135845@id-135845.lymington.irccloud.com) lisbeths
2026-05-31 06:24:45 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 06:29:40 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-05-31 06:30:06 +0000myxos(~myxos@67-1-178-42.tcso.qwest.net) (Ping timeout: 244 seconds)
2026-05-31 06:30:38 +0000phos(~az-181@2a04:4a43:94bf:f166:33c0:fe4e:a468:67a4)
2026-05-31 06:35:42 +0000zzshork(~zzshork@67.189.145.231)
2026-05-31 06:40:33 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 06:43:23 +0000Square2(~Square@user/square) (Ping timeout: 265 seconds)
2026-05-31 06:44:29 +0000zzshork(~zzshork@67.189.145.231) (Ping timeout: 245 seconds)
2026-05-31 06:44:50 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-05-31 06:48:20 +0000vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2026-05-31 06:50:07 +0000zzshork(~zzshork@67.189.145.231)
2026-05-31 06:53:42 +0000euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2026-05-31 06:55:55 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 06:56:09 +0000phos(~az-181@2a04:4a43:94bf:f166:33c0:fe4e:a468:67a4) (Ping timeout: 245 seconds)
2026-05-31 06:57:52 +0000tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
2026-05-31 07:01:02 +0000tt1231607019780(~tt1231@2603:6010:8700:4a81:a4f6:acff:fe95:3803) (Quit: The Lounge - https://thelounge.chat)
2026-05-31 07:02:42 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-05-31 07:02:59 +0000myxos(~myxos@67-1-178-42.tcso.qwest.net) myxokephale
2026-05-31 07:03:11 +0000tt1231607019780(~tt1231@2603:6010:8700:4a81:a4f6:acff:fe95:3803) tt1231
2026-05-31 07:03:45 +0000euphores(~SASL_euph@user/euphores) euphores
2026-05-31 07:04:11 +0000zzshork(~zzshork@67.189.145.231) (Changing host)
2026-05-31 07:04:11 +0000zzshork(~zzshork@user/zzshork) zzshork
2026-05-31 07:05:00 +0000zzshork(~zzshork@user/zzshork) ()
2026-05-31 07:10:23 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 07:15:19 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-05-31 07:18:34 +0000xff0x(~xff0x@2405:6580:b080:900:43a1:dfae:d3d:489e) (Ping timeout: 276 seconds)
2026-05-31 07:19:00 +0000xff0x(~xff0x@2405:6580:b080:900:e607:1510:9460:dc5c)
2026-05-31 07:26:07 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 07:29:19 +0000m(~travltux@user/travltux) (Quit: WeeChat 4.7.2)
2026-05-31 07:31:04 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-05-31 07:31:19 +0000m(~travltux@user/travltux) travltux
2026-05-31 07:31:42 +0000emilym(~Thunderbi@user/emilym) emilym
2026-05-31 07:32:07 +0000peterbecich(~Thunderbi@71.84.33.135) peterbecich
2026-05-31 07:40:40 +0000emilym(~Thunderbi@user/emilym) (Ping timeout: 276 seconds)
2026-05-31 07:41:55 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 07:44:44 +0000castan(~castan@188.26.39.158)
2026-05-31 07:44:45 +0000xff0x(~xff0x@2405:6580:b080:900:e607:1510:9460:dc5c) (Ping timeout: 245 seconds)
2026-05-31 07:45:08 +0000 <castan> what's the point of the Foldable instance of pairs
2026-05-31 07:45:13 +0000xff0x(~xff0x@2405:6580:b080:900:1e8e:69be:97e9:df50)
2026-05-31 07:45:38 +0000 <castan> and why isn't there an instance for ((,,) a b)
2026-05-31 07:46:58 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 266 seconds)
2026-05-31 07:47:21 +0000 <Rembane> castan: It's quite good if you know about it. One concrete example is that you want to sort on the first element and then do things on the second element and throw away the first element.
2026-05-31 07:53:39 +0000 <castan> I guess it makes sense if passing pairs to a function expecting any foldable
2026-05-31 07:54:32 +0000 <castan> otherwise the instance itself is trivial
2026-05-31 07:56:45 +0000 <Rembane> Yeah, the more boring answer is: what would it otherwise look like?
2026-05-31 07:57:40 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 07:59:10 +0000 <castan> fair, but then I would have expected Foldable instances for higher arity tuples as well
2026-05-31 07:59:48 +0000 <Rembane> Which element would you write Foldable instances for in higher arity tuples?
2026-05-31 08:00:00 +0000 <mauke> there is only one option
2026-05-31 08:00:05 +0000 <castan> that would be the last
2026-05-31 08:02:43 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-05-31 08:03:02 +0000 <Rembane> mauke: Highlander tuple?
2026-05-31 08:03:08 +0000 <castan> I mean Functor has instances for tuples up to 7 elements
2026-05-31 08:03:55 +0000 <mauke> :t foldMap
2026-05-31 08:03:57 +0000 <lambdabot> (Foldable t, Monoid m) => (a -> m) -> t a -> m
2026-05-31 08:04:08 +0000 <mauke> foldMap f (_, _, x) = f x
2026-05-31 08:10:01 +0000 <Leary> castan: You have to stop somewhere, and it's pretty arbitrary wherever you do. We generally pretend "big" tuples don't exist, but the standard for "big" varies from person to person, so cut-off arity isn't consistent from class to class.
2026-05-31 08:11:22 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 08:11:54 +0000acidjnk_new(~acidjnk@p200300d6e700e554a1582e2fc899958d.dip0.t-ipconnect.de)
2026-05-31 08:11:56 +0000acidjnk(~acidjnk@p200300d6e700e554a1582e2fc899958d.dip0.t-ipconnect.de) acidjnk
2026-05-31 08:15:34 +0000 <castan> Leary: that's understandable, but it's a bit comical too
2026-05-31 08:15:49 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-05-31 08:16:15 +0000 <castan> Eq cuts off at 15, Functor at 7, Applicative at 4, Foldable at 2
2026-05-31 08:16:38 +0000 <castan> at least on ghc 9.6.7
2026-05-31 08:17:35 +0000 <mauke> > (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1) == (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
2026-05-31 08:17:36 +0000 <lambdabot> No instance for ‘Eq
2026-05-31 08:17:37 +0000 <lambdabot> (Integer, Integer, Integer, Integer, Integer, Integer, In...
2026-05-31 08:17:37 +0000 <lambdabot> Integer, Integer, Integer, Integer, Integer, Integer, In...
2026-05-31 08:17:49 +0000 <mauke> > (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1) == (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
2026-05-31 08:17:51 +0000 <lambdabot> True
2026-05-31 08:17:57 +0000 <mauke> > (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1) > (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
2026-05-31 08:17:59 +0000 <lambdabot> False
2026-05-31 08:22:55 +0000peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 276 seconds)
2026-05-31 08:26:45 +0000merijn(~merijn@62.45.136.136) merijn
2026-05-31 08:28:13 +0000 <mesaoptimizer> > 1 ++ 1
2026-05-31 08:28:15 +0000 <lambdabot> No instance for ‘Num [()]’ arising from a use of ‘e_111’
2026-05-31 08:28:15 +0000 <lambdabot> In the expression: e_111
2026-05-31 08:28:15 +0000 <lambdabot> In the first argument of ‘show_M58322371133546511351’, namely
2026-05-31 08:28:48 +0000 <mesaoptimizer> > length (1, 2)
2026-05-31 08:28:49 +0000 <lambdabot> 1
2026-05-31 08:29:00 +0000 <mesaoptimizer> yes, this is my favorite behavior of Haskell
2026-05-31 08:29:10 +0000 <mesaoptimizer> > length (1, 2, 3)
2026-05-31 08:29:12 +0000 <lambdabot> No instance for ‘Foldable ((,,) Integer Integer)’
2026-05-31 08:29:12 +0000 <lambdabot> arising from a use of ‘length’
2026-05-31 08:29:12 +0000 <lambdabot> In the expression: length (1, 2, 3)
2026-05-31 08:29:24 +0000 <mesaoptimizer> perfect
2026-05-31 08:29:59 +0000 <mauke> @let a === b = cast a == Just b
2026-05-31 08:30:01 +0000 <lambdabot> Defined.
2026-05-31 08:33:51 +0000merijn(~merijn@62.45.136.136) (Ping timeout: 252 seconds)
2026-05-31 08:44:36 +0000__monty__(~toonn@user/toonn) toonn
2026-05-31 08:44:41 +0000divlamir(~divlamir@user/divlamir) (Read error: Connection reset by peer)
2026-05-31 08:44:49 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 08:45:00 +0000divlamir(~divlamir@user/divlamir) divlamir
2026-05-31 08:48:26 +0000acidjnk_new3(~acidjnk@p200300d6e700e50749931930275f1dba.dip0.t-ipconnect.de)
2026-05-31 08:49:30 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2026-05-31 08:51:57 +0000acidjnk(~acidjnk@p200300d6e700e554a1582e2fc899958d.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2026-05-31 08:51:57 +0000acidjnk_new(~acidjnk@p200300d6e700e554a1582e2fc899958d.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2026-05-31 08:52:59 +0000acidjnk(~acidjnk@p200300d6e700e50749931930275f1dba.dip0.t-ipconnect.de) acidjnk
2026-05-31 08:58:41 +0000Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2026-05-31 08:59:44 +0000tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2026-05-31 09:00:39 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 09:05:42 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 253 seconds)
2026-05-31 09:12:23 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 09:17:32 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-05-31 09:21:21 +0000castan(~castan@188.26.39.158) (Quit: castan)
2026-05-31 09:28:14 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 09:29:02 +0000CiaoSen(~Jura@2a02:3037:6e6:d82f:4e50:ddff:fe9b:8922) CiaoSen
2026-05-31 09:33:30 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-05-31 09:38:28 +0000tremon(~tremon@83-80-159-219.cable.dynamic.v4.ziggo.nl) tremon
2026-05-31 09:39:00 +0000AlexNoo_(~AlexNoo@178.34.160.200)
2026-05-31 09:40:52 +0000AlexZenon(~alzenon@85.174.182.98) (Ping timeout: 256 seconds)
2026-05-31 09:40:52 +0000Alex_delenda_est(~al_test@85.174.182.98) (Ping timeout: 256 seconds)
2026-05-31 09:42:37 +0000AlexNoo(~AlexNoo@85.174.182.98) (Ping timeout: 272 seconds)
2026-05-31 09:43:57 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 09:44:37 +0000AlexZenon(~alzenon@178.34.160.200)
2026-05-31 09:47:40 +0000AlexZenon_2(~alzenon@178.34.160.200)
2026-05-31 09:48:30 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-05-31 09:49:00 +0000AlexZenon(~alzenon@178.34.160.200) (Ping timeout: 246 seconds)
2026-05-31 09:49:38 +0000AlexZenon(~alzenon@178.34.160.200)
2026-05-31 09:51:48 +0000AlexZenon_2(~alzenon@178.34.160.200) (Ping timeout: 246 seconds)
2026-05-31 09:55:55 +0000__monty__(~toonn@user/toonn) (Quit: leaving)
2026-05-31 09:59:25 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 10:04:31 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-05-31 10:13:23 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 10:20:09 +0000 <tomsmeding> oh "length (1, 2, 3)" is the perfect retort to people complaining about "length (1, 2) == 2"
2026-05-31 10:20:15 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-05-31 10:21:50 +0000 <int-e> > length (1,2) -- ???
2026-05-31 10:21:51 +0000 <lambdabot> 1
2026-05-31 10:23:33 +0000 <tomsmeding> uh, yes, that's what I meant
2026-05-31 10:24:02 +0000 <tomsmeding> I guess I "meant" that that '==' denoted what the complainant wants, rather than what Haskell does
2026-05-31 10:31:27 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 10:33:45 +0000CiaoSen(~Jura@2a02:3037:6e6:d82f:4e50:ddff:fe9b:8922) (Ping timeout: 252 seconds)
2026-05-31 10:36:06 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-05-31 10:38:49 +0000vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 255 seconds)
2026-05-31 10:44:39 +0000synchromesh(~john@2406:5a00:247e:1500:9a0:33e6:ebb2:ef41) (Read error: Connection reset by peer)
2026-05-31 10:45:41 +0000synchromesh(~john@2406:5a00:247e:1500:9a0:33e6:ebb2:ef41) synchromesh
2026-05-31 10:46:37 +0000lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2026-05-31 10:46:53 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 10:49:10 +0000dtman34(~dtman34@c-73-242-68-179.hsd1.mn.comcast.net) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
2026-05-31 10:50:02 +0000rabbull72(~rabbull@xdsl-31-164-93-219.adslplus.ch)
2026-05-31 10:51:21 +0000rabbull7(~rabbull@xdsl-31-164-93-219.adslplus.ch) (Read error: Connection reset by peer)
2026-05-31 10:51:21 +0000rabbull72rabbull7
2026-05-31 10:52:00 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 274 seconds)
2026-05-31 10:52:04 +0000dtman34(~dtman34@c-73-242-68-179.hsd1.mn.comcast.net) dtman34
2026-05-31 10:52:43 +0000 <yin> i wish haskell didn't have all this sugar around lists and tuples
2026-05-31 10:53:10 +0000 <tomsmeding> go program Agda if you don't want the list sugar
2026-05-31 10:56:06 +0000 <int-e> > let f x | x <- x + 1; x <- x * 2 = x in f 2 -- wonder what yin thinks about this
2026-05-31 10:56:08 +0000 <lambdabot> <hint>:1:21: error: parse error on input `;'
2026-05-31 10:56:33 +0000 <int-e> > let f x | x <- x + 1, x <- x * 2 = x in f 2
2026-05-31 10:56:34 +0000 <lambdabot> 6
2026-05-31 10:56:39 +0000vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2026-05-31 10:56:41 +0000 <int-e> oops.
2026-05-31 10:58:42 +0000 <yin> int-e: pattern guards is actually something i abuse
2026-05-31 10:59:59 +0000 <yin> to the point where i prefer to write `f b | True <- b = x; | False <- b = y`
2026-05-31 11:01:57 +0000 <yin> but anyways even agda has way too much sugar. i'm happy with scheme
2026-05-31 11:02:56 +0000 <mangoiv> pattern guards are actually not sugary at all.
2026-05-31 11:03:21 +0000 <mangoiv> they're conceptually the "fundamental" part of pattern matching.
2026-05-31 11:03:58 +0000 <yin> mangoiv: that's how i see them. altough if we're being correct, that would be case expressions
2026-05-31 11:04:09 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 11:04:19 +0000 <mangoiv> not really
2026-05-31 11:04:22 +0000 <mangoiv> I am correct
2026-05-31 11:04:41 +0000 <mangoiv> the Pmc works based on pattern guards
2026-05-31 11:05:07 +0000 <mangoiv> https://dl.acm.org/doi/10.1145/3408989
2026-05-31 11:05:13 +0000 <mangoiv> this is the original paper.
2026-05-31 11:05:16 +0000 <mangoiv> it's a good read
2026-05-31 11:05:47 +0000 <mangoiv> there's conceptually orthogonal approaches
2026-05-31 11:05:59 +0000 <mangoiv> like https://arxiv.org/abs/2504.18920
2026-05-31 11:07:27 +0000 <int-e> so you're not correct, you're just not wrong :-P
2026-05-31 11:08:09 +0000 <mangoiv> the conceptually orthogonal approaches are not what GHC is doing.
2026-05-31 11:08:12 +0000 <mangoiv> GHC is doing pattern guards.
2026-05-31 11:08:27 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-05-31 11:08:35 +0000 <int-e> but STG is doing cases
2026-05-31 11:08:46 +0000 <mangoiv> we're not writing STG are we?
2026-05-31 11:09:01 +0000 <int-e> GHC is using STG too
2026-05-31 11:09:12 +0000 <int-e> so you have a merry mix of both worlds
2026-05-31 11:09:19 +0000 <int-e> everyone should be happy
2026-05-31 11:10:05 +0000 <int-e> There's also the Haskell report story, which is to desugar to cases
2026-05-31 11:10:15 +0000 <mangoiv> we were talking about what is "sugar"
2026-05-31 11:10:24 +0000 <yin> this was what i meant. core does cases and PatternGuards were added as a language extension
2026-05-31 11:10:41 +0000 <yin> but i learned something
2026-05-31 11:10:49 +0000 <yin> ty mangoiv
2026-05-31 11:11:31 +0000 <mangoiv> int-e: if you consider the surface language a sugar over assembly then the discussion is kinda moot
2026-05-31 11:12:24 +0000 <mangoiv> > this was what i meant. core does cases and PatternGuards were added as a language extension
2026-05-31 11:12:24 +0000 <mangoiv> yup, it's a bit confusing imo because the chronological order is different, in the beginning there was only case, but now the "fundamental" construct, at least in the surface language, are pattern guards.
2026-05-31 11:12:29 +0000 <int-e> mangoiv: I take issue with the idea that considering the guards to be sugar is *wrong*. It isn't; there's a choice.
2026-05-31 11:12:48 +0000 <lambdabot> Variable not in scope: this :: t9 -> t10 -> Expr -> t11 -> b0 -> cVariable n...
2026-05-31 11:12:48 +0000 <lambdabot> core
2026-05-31 11:12:48 +0000 <lambdabot> :: t0
2026-05-31 11:12:58 +0000 <int-e> And GHC's reality appears to be a mix of the two choices.
2026-05-31 11:13:38 +0000JoelMcCracken(5ea8252fbb@2a03:6000:1812:100::10e3) (Ping timeout: 250 seconds)
2026-05-31 11:13:38 +0000rselim(ce261f06ff@user/milesrout) (Ping timeout: 250 seconds)
2026-05-31 11:13:38 +0000bsima1(9d7e39c8ad@2a03:6000:1812:100::dd) (Ping timeout: 250 seconds)
2026-05-31 11:13:38 +0000evanrelf(3addc196af@2a03:6000:1812:100::f0) (Ping timeout: 250 seconds)
2026-05-31 11:14:23 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 11:14:30 +0000b0o(0e4a0bf4c9@2a03:6000:1812:100::1bf) (Ping timeout: 250 seconds)
2026-05-31 11:14:30 +0000cephei8(b8652603d7@user/cephei8) (Ping timeout: 250 seconds)
2026-05-31 11:14:56 +0000shreyasminocha(51fdc93eda@user/shreyasminocha) (Ping timeout: 250 seconds)
2026-05-31 11:14:56 +0000filwisher(2e6936c793@2a03:6000:1812:100::170) (Ping timeout: 250 seconds)
2026-05-31 11:14:56 +0000caz(866183745f@2a03:6000:1812:100::15d4) (Ping timeout: 250 seconds)
2026-05-31 11:14:56 +0000sus(1b7af6299f@user/zeromomentum) (Ping timeout: 250 seconds)
2026-05-31 11:14:56 +0000uint64_t(ec7b9bb9f3@2a03:6000:1812:100::139b) (Ping timeout: 250 seconds)
2026-05-31 11:14:56 +0000arcadewise(52968ed80d@2a03:6000:1812:100::3df) (Ping timeout: 250 seconds)
2026-05-31 11:14:56 +0000whereiseveryone(206ba86c98@2a03:6000:1812:100::2e4) (Ping timeout: 250 seconds)
2026-05-31 11:15:22 +0000samhh(7569f027cf@2a03:6000:1812:100::e4) (Ping timeout: 250 seconds)
2026-05-31 11:15:22 +0000ggb(a62ffbaf4f@2a03:6000:1812:100::3ac) (Ping timeout: 250 seconds)
2026-05-31 11:15:22 +0000fvr(ef3e56ca8b@2a03:6000:1812:100::3c4) (Ping timeout: 250 seconds)
2026-05-31 11:15:22 +0000bheesham(3aa22d8375@2a03:6000:1812:100::e40) (Ping timeout: 250 seconds)
2026-05-31 11:15:22 +0000jakzale(6291399afa@user/jakzale) (Ping timeout: 250 seconds)
2026-05-31 11:15:28 +0000ggb(a62ffbaf4f@2a03:6000:1812:100::3ac) ggb
2026-05-31 11:16:50 +0000bheesham(3aa22d8375@2a03:6000:1812:100::e40) bheesham
2026-05-31 11:18:00 +0000jakzale(6291399afa@user/jakzale) jakzale
2026-05-31 11:18:02 +0000fvr(ef3e56ca8b@2a03:6000:1812:100::3c4) fvr
2026-05-31 11:18:02 +0000samhh(7569f027cf@2a03:6000:1812:100::e4) samhh
2026-05-31 11:19:24 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 259 seconds)
2026-05-31 11:23:36 +0000 <yin> i'm happy that it validates my often frowned upon style of avoiding anything but pattern guards
2026-05-31 11:25:32 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 250 seconds)
2026-05-31 11:25:43 +0000Icy-Thought(~user@user/icy-thought) icy-thought
2026-05-31 11:25:45 +0000Lord_of_Life_(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2026-05-31 11:25:55 +0000Icy-Thought(~user@user/icy-thought) (Remote host closed the connection)
2026-05-31 11:28:24 +0000bsima1(9d7e39c8ad@2a03:6000:1812:100::dd)
2026-05-31 11:28:25 +0000evanrelf(3addc196af@2a03:6000:1812:100::f0) evanrelf
2026-05-31 11:28:26 +0000rselim(ce261f06ff@user/milesrout) milesrout
2026-05-31 11:28:26 +0000JoelMcCracken(5ea8252fbb@2a03:6000:1812:100::10e3) JoelMcCracken
2026-05-31 11:28:37 +0000Lord_of_Life_Lord_of_Life
2026-05-31 11:29:15 +0000cephei8(b8652603d7@user/cephei8) cephei8
2026-05-31 11:29:16 +0000b0o(0e4a0bf4c9@2a03:6000:1812:100::1bf) b0o
2026-05-31 11:29:41 +0000caz(866183745f@2a03:6000:1812:100::15d4) caz
2026-05-31 11:29:42 +0000filwisher(2e6936c793@2a03:6000:1812:100::170)
2026-05-31 11:29:43 +0000whereiseveryone(206ba86c98@2a03:6000:1812:100::2e4) jgart
2026-05-31 11:29:43 +0000sus(1b7af6299f@user/zeromomentum) zeromomentum
2026-05-31 11:29:43 +0000arcadewise(52968ed80d@2a03:6000:1812:100::3df) l3gacyb3ta
2026-05-31 11:29:44 +0000shreyasminocha(51fdc93eda@user/shreyasminocha) shreyasminocha
2026-05-31 11:29:45 +0000uint64_t(ec7b9bb9f3@2a03:6000:1812:100::139b) k_hachig
2026-05-31 11:30:12 +0000merijn(~merijn@62.45.136.136) merijn
2026-05-31 11:35:21 +0000merijn(~merijn@62.45.136.136) (Ping timeout: 252 seconds)
2026-05-31 11:45:59 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 11:50:57 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-05-31 11:51:49 +0000haritz(~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8)
2026-05-31 11:51:49 +0000haritz(~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host)
2026-05-31 11:51:49 +0000haritz(~hrtz@user/haritz) haritz
2026-05-31 11:52:20 +0000 <mangoiv> My personal opinion is that first match semantics while very common is quite error prone.
2026-05-31 11:52:28 +0000 <mangoiv> and it's good style to not have e.g. `otherwise` branches.
2026-05-31 11:53:08 +0000 <mangoiv> so I would actually prefer if we had something that was closer to the algebra of patterns approach
2026-05-31 11:53:12 +0000 <mangoiv> but it's very different to what GHC does.
2026-05-31 11:54:43 +0000vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 252 seconds)
2026-05-31 11:57:08 +0000 <tomsmeding> mangoiv: the source language being sugar over assembly is not a useful definition, but it being sugar over the _specified_ language (i.e. the Haskell report) instead of the implementation is quite defensible
2026-05-31 12:00:16 +0000 <yin> call it spice
2026-05-31 12:01:45 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 12:02:06 +0000 <tomsmeding> if, if it makes you dislike the specification, you can call it salt
2026-05-31 12:02:10 +0000 <tomsmeding> *or,
2026-05-31 12:02:23 +0000Pozyomka(~pyon@user/pyon) pyon
2026-05-31 12:08:18 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2026-05-31 12:11:15 +0000 <int-e> tomsmeding: of course if you call it salt you'll always find somebody who wants to add more to the wound
2026-05-31 12:13:33 +0000rainbyte(~rainbyte@181.47.219.31) (Read error: Connection reset by peer)
2026-05-31 12:14:53 +0000rainbyte(~rainbyte@181.47.219.31) rainbyte
2026-05-31 12:15:24 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 12:17:44 +0000 <yin> haskell salt: if..then..else
2026-05-31 12:18:24 +0000hsw_(~hsw@106.104.102.114) (Quit: Leaving)
2026-05-31 12:18:42 +0000 <int-e> yin: now you're just trolling
2026-05-31 12:18:46 +0000hsw(~hsw@106.104.102.114) hsw
2026-05-31 12:18:57 +0000 <yin> int-e: i am so not
2026-05-31 12:19:28 +0000 <yin> i'll use `bool` before if..then..else
2026-05-31 12:20:15 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-05-31 12:21:19 +0000 <jreicher> Same thing
2026-05-31 12:21:35 +0000 <mangoiv> tomsmeding: yeah that's fair. I guess my definition was closer to "what part of the frontend as it is implemented in GHC is the sugar" and there the answer is "everything but pattern guards", but seeing the language report as the base is fair, too!
2026-05-31 12:21:53 +0000 <tomsmeding> right :)
2026-05-31 12:22:51 +0000 <mangoiv> yin: if | True <- sheriff -> robber
2026-05-31 12:22:51 +0000 <mangoiv> | False <- sheriff -> hehe
2026-05-31 12:23:03 +0000 <yin> also guards are salt over `True <- x`
2026-05-31 12:23:07 +0000tjbc(~tjbc@user/fliife) (Ping timeout: 264 seconds)
2026-05-31 12:23:43 +0000tabaqui(~tabaqui@167.71.80.236) (Ping timeout: 264 seconds)
2026-05-31 12:23:52 +0000 <mangoiv> there's also a paper about somebody saying that really it should all be if then else.
2026-05-31 12:23:58 +0000 <mangoiv> that's fairly recent
2026-05-31 12:25:09 +0000 <mangoiv> can't find it right now though
2026-05-31 12:25:31 +0000 <mangoiv> don't remember the clever name the author came up with to make their paper be absolutely unsearchable in the modern day internet
2026-05-31 12:30:17 +0000 <yin> nand (a,b) = if x then if y then False else True else True
2026-05-31 12:30:36 +0000 <yin> done
2026-05-31 12:31:08 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 12:31:27 +0000 <yin> er, nand x y = ...
2026-05-31 12:36:00 +0000 <[exa]> :t bool False True `bool` bool False False
2026-05-31 12:36:01 +0000 <lambdabot> Bool -> Bool -> Bool
2026-05-31 12:36:04 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-05-31 12:36:42 +0000tjbc(~tjbc@user/fliife) fliife
2026-05-31 12:37:01 +0000 <[exa]> anyway.
2026-05-31 12:39:00 +0000 <[exa]> If there are any hakyll users, is there some recommended methodology to do various backlinks/context links/grouping? I'd love to have something like forester notes here: https://www.forester-notes.org/index/index.xml but perhaps slightly less extreme
2026-05-31 12:46:33 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 12:50:57 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 247 seconds)
2026-05-31 12:55:12 +0000__monty__(~toonn@user/toonn) toonn
2026-05-31 12:55:58 +0000qeez(~qeez@178.44.105.127)
2026-05-31 13:01:55 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 13:07:13 +0000AlexNoo_AlexNoo
2026-05-31 13:07:38 +0000Alex_delenda_est(~al_test@178.34.160.200)
2026-05-31 13:10:31 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-05-31 13:16:22 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 13:16:43 +0000qeez(~qeez@178.44.105.127) (Quit: qeez)
2026-05-31 13:21:37 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-05-31 13:32:14 +0000merijn(~merijn@62.45.136.136) merijn
2026-05-31 13:36:03 +0000 <ski> tomsmeding : mm, i've seen "syntactic salt" as a term for introduced notation to make a construct more (visually) apparent and costly
2026-05-31 13:36:59 +0000merijn(~merijn@62.45.136.136) (Ping timeout: 245 seconds)
2026-05-31 13:37:30 +0000 <ski> (e.g. in Mercury you can have side-effecting (actually in two levels (over `pure'), `semipure' which commute with other such, and `impure' which does not commute, and you need to indicate all calls (and declarations) with `semipure'/`impure')
2026-05-31 13:45:47 +0000tusko_(~uwu@user/tusko) tusko
2026-05-31 13:45:50 +0000tusko(~uwu@user/tusko) (Ping timeout: 252 seconds)
2026-05-31 13:47:53 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 13:49:40 +0000emilym(~Thunderbi@user/emilym) emilym
2026-05-31 13:52:22 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-05-31 13:53:45 +0000emilym(~Thunderbi@user/emilym) (Ping timeout: 248 seconds)
2026-05-31 13:59:05 +0000skiwould like it, if one could do independent patterns
2026-05-31 14:02:12 +0000euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2026-05-31 14:03:13 +0000phos(~az-181@2a04:4a43:94bf:f166:33c0:fe4e:a468:67a4)
2026-05-31 14:05:32 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 14:07:35 +0000m(~travltux@user/travltux) (Quit: WeeChat 4.7.2)
2026-05-31 14:09:16 +0000m(~travltux@user/travltux) travltux
2026-05-31 14:09:27 +0000 <tomsmeding> ski: oh right, that also makes sense as terminology
2026-05-31 14:09:52 +0000tomsmeding. o O ( "unsafe"PerformIO )
2026-05-31 14:10:18 +0000 <mangoiv> i think that's a neat feature of haskell's purity, as well.
2026-05-31 14:10:19 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 266 seconds)
2026-05-31 14:10:32 +0000 <mangoiv> and rust's Arc/Rc/etc.
2026-05-31 14:10:50 +0000 <tomsmeding> yes, though in haskell it's not really a _syntactic_ thing; but the effect is similar
2026-05-31 14:10:51 +0000 <mangoiv> the language punishes you for things it cares about
2026-05-31 14:11:00 +0000 <mangoiv> why not?
2026-05-31 14:12:25 +0000 <tomsmeding> hm I guess
2026-05-31 14:13:02 +0000 <tomsmeding> I was thinking of it being a change in types, with the change in terms necessarily flowing from that, but given that we're talking about language design there is not really such a thing as "necessarily" here
2026-05-31 14:13:38 +0000euphores(~SASL_euph@user/euphores) euphores
2026-05-31 14:17:23 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 14:19:55 +0000godotL(~godot@user/godotL) godotL
2026-05-31 14:22:17 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 257 seconds)
2026-05-31 14:23:31 +0000pavonia(~user@user/siracusa) (Quit: Bye!)
2026-05-31 14:24:07 +0000godotL(~godot@user/godotL) (Quit: Leaving)
2026-05-31 14:27:00 +0000 <ski> tomsmeding : well, yea, except that's just a hint to the reader
2026-05-31 14:30:48 +0000 <ski> there's also pragmas `promis_pure',`promise_det',`promise_equivalent_solutions',`require_complete_switch',`promise_exclusive',`promise_exhaustive',&c.
2026-05-31 14:30:52 +0000Miroboru(~myrvoll@178-164-99.96.3p.ntebredband.no) Miroboru
2026-05-31 14:33:09 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 14:34:36 +0000tabaqui(~tabaqui@167.71.80.236) tabaqui
2026-05-31 14:40:04 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-05-31 14:51:11 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 14:51:18 +0000target_i(~target_i@user/target-i/x-6023099) target_i
2026-05-31 14:55:49 +0000phos(~az-181@2a04:4a43:94bf:f166:33c0:fe4e:a468:67a4) (Remote host closed the connection)
2026-05-31 14:56:07 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2026-05-31 15:06:41 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 15:10:38 +0000Googulator31(~Googulato@193-226-241-87.pool.digikabel.hu)
2026-05-31 15:11:25 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-05-31 15:14:22 +0000Googulator48(~Googulato@193-226-241-87.pool.digikabel.hu) (Ping timeout: 245 seconds)
2026-05-31 15:16:17 +0000terrorjack(~terrorjac@2a01:4f8:271:2d98::2) (Quit: The Lounge - https://thelounge.chat)
2026-05-31 15:17:12 +0000terrorjack(~terrorjac@2a01:4f8:271:2d98::2) terrorjack
2026-05-31 15:18:23 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 15:23:11 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 249 seconds)
2026-05-31 15:29:14 +0000califax(~califax@user/califx) (Remote host closed the connection)
2026-05-31 15:32:18 +0000califax(~califax@user/califx) califx
2026-05-31 15:34:10 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 15:37:06 +0000 <ski> interesting papers, mangoiv, ty
2026-05-31 15:38:01 +0000Vizious(~bes@user/Vizious) (Ping timeout: 252 seconds)
2026-05-31 15:38:48 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-05-31 15:38:55 +0000Vizious(~bes@user/Vizious) Vizious
2026-05-31 15:41:01 +0000califax(~califax@user/califx) (Remote host closed the connection)
2026-05-31 15:41:12 +0000califax(~califax@user/califx) califx
2026-05-31 15:48:14 +0000 <monochrom> Haha "the effect is similar" when talking about making effects explicit. >:)
2026-05-31 15:48:59 +0000califax(~califax@user/califx) (Remote host closed the connection)
2026-05-31 15:49:56 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 15:50:00 +0000califax(~califax@user/califx) califx
2026-05-31 15:55:01 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2026-05-31 15:56:37 +0000rscastilho2024(~rscastilh@user/rscastilho2024) rscastilho2024
2026-05-31 15:58:21 +0000troydm(~troydm@user/troydm) troydm
2026-05-31 16:00:55 +0000emilym(~Thunderbi@user/emilym) emilym
2026-05-31 16:05:44 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 16:07:11 +0000lbseale(~quassel@user/ep1ctetus) (Quit: No Ping reply in 180 seconds.)
2026-05-31 16:07:37 +0000emilym(~Thunderbi@user/emilym) (Ping timeout: 248 seconds)
2026-05-31 16:08:44 +0000lbseale(~quassel@user/ep1ctetus) ep1ctetus
2026-05-31 16:09:48 +0000tristanC_(~tristanC@2602:61:719c:2a00:79ae:b4c0:259b:64c7) (Ping timeout: 246 seconds)
2026-05-31 16:10:28 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-05-31 16:14:08 +0000rscastilho2024(~rscastilh@user/rscastilho2024) (Remote host closed the connection)
2026-05-31 16:19:23 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 16:23:47 +0000rscastilho2024_(~rscastilh@user/rscastilho2024-:23901) rscastilho2024_
2026-05-31 16:23:50 +0000rscastilho2024_(~rscastilh@user/rscastilho2024-:23901) ()
2026-05-31 16:25:20 +0000L29Ah(~L29Ah@wikipedia/L29Ah) ()
2026-05-31 16:25:54 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-05-31 16:28:32 +0000rscastilho2024_(~rscastilh@user/rscastilho2024-:23901) rscastilho2024_
2026-05-31 16:30:18 +0000Square2(~Square@user/square) Square
2026-05-31 16:32:24 +0000Googulator31(~Googulato@193-226-241-87.pool.digikabel.hu) (Quit: Client closed)
2026-05-31 16:32:37 +0000Googulator31(~Googulato@193-226-241-87.pool.digikabel.hu)
2026-05-31 16:37:26 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 16:39:25 +0000lambdap23717(~lambdap@static.167.190.119.168.clients.your-server.de) (Remote host closed the connection)
2026-05-31 16:39:41 +0000lambdap237175(~lambdap@static.167.190.119.168.clients.your-server.de)
2026-05-31 16:42:17 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-05-31 16:43:31 +0000lambdap237175(~lambdap@static.167.190.119.168.clients.your-server.de) (Client Quit)
2026-05-31 16:43:45 +0000lambdap237175(~lambdap@static.167.190.119.168.clients.your-server.de)
2026-05-31 16:44:16 +0000lambdap237175(~lambdap@static.167.190.119.168.clients.your-server.de) (Client Quit)
2026-05-31 16:45:34 +0000lambdap237175(~lambdap@static.167.190.119.168.clients.your-server.de)
2026-05-31 16:49:08 +0000tristanC(~tristanC@2602:61:719c:2a00:79ae:b4c0:259b:64c7)
2026-05-31 16:49:09 +0000tristanC(~tristanC@2602:61:719c:2a00:79ae:b4c0:259b:64c7) (Changing host)
2026-05-31 16:49:09 +0000tristanC(~tristanC@user/tristanc) tristanC
2026-05-31 16:53:11 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 16:55:12 +0000vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2026-05-31 16:57:51 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-05-31 17:07:28 +0000lambdap237175(~lambdap@static.167.190.119.168.clients.your-server.de) (Quit: lambdap237175)
2026-05-31 17:08:46 +0000lambdap237175(~lambdap@static.167.190.119.168.clients.your-server.de)
2026-05-31 17:09:07 +0000tristanC(~tristanC@user/tristanc) (Ping timeout: 272 seconds)
2026-05-31 17:10:00 +0000Ranhir(~Ranhir@157.97.53.139) (Quit: KVIrc 5.2.6 Quasar http://www.kvirc.net/)
2026-05-31 17:10:59 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 17:12:12 +0000lambdap237175(~lambdap@static.167.190.119.168.clients.your-server.de) (Client Quit)
2026-05-31 17:12:40 +0000lambdap237175(~lambdap@static.167.190.119.168.clients.your-server.de)
2026-05-31 17:12:45 +0000tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net)
2026-05-31 17:15:55 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-05-31 17:20:25 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 17:21:30 +0000lambdap237175(~lambdap@static.167.190.119.168.clients.your-server.de) (Quit: lambdap237175)
2026-05-31 17:22:53 +0000lambdap237175(~lambdap@static.167.190.119.168.clients.your-server.de)
2026-05-31 17:23:35 +0000tristanC(~tristanC@2602:61:719c:2a00:79ae:b4c0:259b:64c7)
2026-05-31 17:23:36 +0000tristanC(~tristanC@2602:61:719c:2a00:79ae:b4c0:259b:64c7) (Changing host)
2026-05-31 17:23:36 +0000tristanC(~tristanC@user/tristanc) tristanC
2026-05-31 17:25:35 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-05-31 17:33:31 +0000tristanC(~tristanC@user/tristanc) (Ping timeout: 252 seconds)
2026-05-31 17:34:53 +0000tristanC(~tristanC@2602:61:719c:2a00:79ae:b4c0:259b:64c7)
2026-05-31 17:34:53 +0000tristanC(~tristanC@2602:61:719c:2a00:79ae:b4c0:259b:64c7) (Changing host)
2026-05-31 17:34:53 +0000tristanC(~tristanC@user/tristanc) tristanC
2026-05-31 17:36:11 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 17:39:20 +0000tristanC(~tristanC@user/tristanc) (Ping timeout: 245 seconds)
2026-05-31 17:40:57 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-05-31 17:42:21 +0000lambdap237175(~lambdap@static.167.190.119.168.clients.your-server.de) (Quit: lambdap237175)
2026-05-31 17:44:26 +0000lisbeths(uid135845@id-135845.lymington.irccloud.com) lisbeths
2026-05-31 17:45:03 +0000tristanC(~tristanC@2602:61:719c:2a00:79ae:b4c0:259b:64c7)
2026-05-31 17:45:03 +0000tristanC(~tristanC@2602:61:719c:2a00:79ae:b4c0:259b:64c7) (Changing host)
2026-05-31 17:45:03 +0000tristanC(~tristanC@user/tristanc) tristanC
2026-05-31 17:51:59 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 17:56:34 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-05-31 18:02:56 +0000vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 248 seconds)
2026-05-31 18:07:40 +0000tristanC(~tristanC@user/tristanc) (Ping timeout: 245 seconds)
2026-05-31 18:07:46 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 18:08:34 +0000tristanC(~tristanC@2602:61:719c:2a00:79ae:b4c0:259b:64c7)
2026-05-31 18:08:34 +0000tristanC(~tristanC@2602:61:719c:2a00:79ae:b4c0:259b:64c7) (Changing host)
2026-05-31 18:08:34 +0000tristanC(~tristanC@user/tristanc) tristanC
2026-05-31 18:14:46 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-05-31 18:16:53 +0000xstill_9(xstill@fimu/xstill) (Remote host closed the connection)
2026-05-31 18:21:23 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 18:21:25 +0000tristanC(~tristanC@user/tristanc) (Ping timeout: 245 seconds)
2026-05-31 18:26:29 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-05-31 18:30:43 +0000michalz(~michalz@185.246.207.221)
2026-05-31 18:36:38 +0000tristanC(~tristanC@2602:61:719c:2a00:79ae:b4c0:259b:64c7)
2026-05-31 18:36:39 +0000tristanC(~tristanC@2602:61:719c:2a00:79ae:b4c0:259b:64c7) (Changing host)
2026-05-31 18:36:39 +0000tristanC(~tristanC@user/tristanc) tristanC
2026-05-31 18:37:11 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 18:38:10 +0000olivial(~benjaminl@user/benjaminl) (Ping timeout: 248 seconds)
2026-05-31 18:38:29 +0000olivial(~benjaminl@user/benjaminl) benjaminl
2026-05-31 18:40:29 +0000euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2026-05-31 18:40:45 +0000vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2026-05-31 18:40:48 +0000slomp(~slomp@47-158-196-170.lsan.ca.frontiernet.net) (Quit: Lost terminal)
2026-05-31 18:40:50 +0000eL_Bart0(eL_Bart02@dietunichtguten.org) (Quit: Restarting)
2026-05-31 18:41:42 +0000tristanC(~tristanC@user/tristanc) (Ping timeout: 246 seconds)
2026-05-31 18:41:49 +0000eL_Bart0(eL_Bart02@dietunichtguten.org)
2026-05-31 18:42:04 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 243 seconds)
2026-05-31 18:52:58 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 18:55:05 +0000yin(~zero@user/zero) (Remote host closed the connection)
2026-05-31 18:56:40 +0000euphores(~SASL_euph@user/euphores) euphores
2026-05-31 18:57:41 +0000yin(~zero@user/zero) zero
2026-05-31 18:57:54 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-05-31 19:03:19 +0000vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 264 seconds)
2026-05-31 19:05:16 +0000tristanC(~tristanC@97-113-156-42.tukw.qwest.net)
2026-05-31 19:08:45 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 19:09:41 +0000tristanC(~tristanC@97-113-156-42.tukw.qwest.net) (Ping timeout: 256 seconds)
2026-05-31 19:13:53 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2026-05-31 19:21:17 +0000tristanC(~tristanC@97-113-129-157.tukw.qwest.net)
2026-05-31 19:21:17 +0000tristanC(~tristanC@97-113-129-157.tukw.qwest.net) (Changing host)
2026-05-31 19:21:17 +0000tristanC(~tristanC@user/tristanc) tristanC
2026-05-31 19:22:23 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 19:22:32 +0000califax(~califax@user/califx) (Remote host closed the connection)
2026-05-31 19:24:29 +0000Square2(~Square@user/square) (Ping timeout: 245 seconds)
2026-05-31 19:24:30 +0000califax(~califax@user/califx) califx
2026-05-31 19:27:21 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 267 seconds)
2026-05-31 19:33:52 +0000Sgeo(~Sgeo@user/sgeo) Sgeo
2026-05-31 19:38:28 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 19:39:08 +0000wtl(sid740499@user/wtl) wtl
2026-05-31 19:42:01 +0000Googulator31(~Googulato@193-226-241-87.pool.digikabel.hu) (Quit: Client closed)
2026-05-31 19:42:17 +0000Googulator31(~Googulato@193-226-241-87.pool.digikabel.hu)
2026-05-31 19:44:54 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-05-31 19:45:19 +0000tristanC(~tristanC@user/tristanc) (Ping timeout: 264 seconds)
2026-05-31 19:45:45 +0000Garbanzo__(~Garbanzo@2602:304:6eac:dc10::49)
2026-05-31 19:45:54 +0000Garbanzo(~Garbanzo@2602:304:6eac:dc10::49) (Ping timeout: 248 seconds)
2026-05-31 19:51:27 +0000emilym(~Thunderbi@user/emilym) emilym
2026-05-31 19:52:49 +0000rainbyte(~rainbyte@181.47.219.31) (Quit: rainbyte)
2026-05-31 19:53:31 +0000lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2026-05-31 19:55:35 +0000emilym(~Thunderbi@user/emilym) (Ping timeout: 245 seconds)
2026-05-31 19:56:29 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 20:01:12 +0000rscastilho2024_(~rscastilh@user/rscastilho2024-:23901) (Remote host closed the connection)
2026-05-31 20:01:21 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-05-31 20:04:15 +0000terrorjack(~terrorjac@2a01:4f8:271:2d98::2) (Quit: The Lounge - https://thelounge.chat)
2026-05-31 20:05:05 +0000tristanC(~tristanC@97-113-129-157.tukw.qwest.net)
2026-05-31 20:05:05 +0000tristanC(~tristanC@97-113-129-157.tukw.qwest.net) (Changing host)
2026-05-31 20:05:05 +0000tristanC(~tristanC@user/tristanc) tristanC
2026-05-31 20:07:37 +0000vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2026-05-31 20:09:38 +0000tristanC(~tristanC@user/tristanc) (Ping timeout: 258 seconds)
2026-05-31 20:12:21 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-31 20:17:07 +0000rabbull7(~rabbull@xdsl-31-164-93-219.adslplus.ch) (Quit: And in case I don't see you, good afternoon, good evening and good night!)
2026-05-31 20:17:10 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-05-31 20:17:23 +0000rabbull72(~rabbull@xdsl-31-164-93-219.adslplus.ch)