2026/06/01

Newest at the top

2026-06-01 21:03:43 +0000pavonia(~user@user/siracusa) siracusa
2026-06-01 21:02:51 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2026-06-01 21:02:40 +0000acidsys(~crameleon@openSUSE/member/crameleon) (Ping timeout: 245 seconds)
2026-06-01 21:01:57 +0000orcus(~orcus@user/brprice) (Read error: Connection reset by peer)
2026-06-01 21:01:18 +0000emmanuelux(~em@user/emmanuelux) emmanuelux
2026-06-01 21:00:19 +0000orcus-(~orcus@user/brprice) brprice
2026-06-01 20:59:07 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-06-01 20:52:09 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-01 20:41:40 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-06-01 20:36:26 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-01 20:25:22 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 251 seconds)
2026-06-01 20:25:13 +0000weary-traveler(~user@user/user363627) (Remote host closed the connection)
2026-06-01 20:20:39 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-01 20:17:32 +0000netunreach(~user@user/netunreach) netunreach
2026-06-01 20:15:00 +0000 <unworriedsafari> Thanks :) This clears it up. I'm not too familiar with seeing this at the type level. So that link seems informative as well.
2026-06-01 20:13:17 +0000 <tomsmeding> there is documentation here on the promotion of data types to the type level, but it's written with the assumption that the reader already knows a lot of haskell https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/data_kinds.html#extension-DataKinds
2026-06-01 20:12:00 +0000 <unworriedsafari> I see
2026-06-01 20:11:17 +0000 <tomsmeding> "given a BookDB and any computation that uses the ReadOnlyBookDB effect at the front of its effect list, I can handle that effect completely as long as I have the IOE effect available"
2026-06-01 20:11:09 +0000netunreach(~user@user/netunreach) (Ping timeout: 252 seconds)
2026-06-01 20:10:24 +0000 <tomsmeding> the 'es' parameter is the list of available effects; 'IOE :> es' is a constraint requiring that IOE is an element of that list, and the usage of ':' means that the argument will run with one additional effect available (namely, ReadOnlyBookDB)
2026-06-01 20:09:53 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds)
2026-06-01 20:09:31 +0000 <tomsmeding> it's a list of effects :)
2026-06-01 20:09:20 +0000 <unworriedsafari> oh
2026-06-01 20:09:17 +0000 <unworriedsafari> I see, so it's a type-level operator. Same for the colon in (ReadonlyBooksDB : es) I suppose
2026-06-01 20:09:06 +0000 <jaror> Oh, but just the `:` is actually just a list constructor
2026-06-01 20:08:35 +0000 <jaror> But it is a custom type level operator that is defined by the effectful library, it is not built-in
2026-06-01 20:08:17 +0000 <jaror> In this case
2026-06-01 20:08:10 +0000 <jaror> The :> basically means "is a part of"
2026-06-01 20:07:40 +0000michalz(~michalz@185.246.207.221) (Remote host closed the connection)
2026-06-01 20:07:21 +0000 <unworriedsafari> Hi, I'm exploring the effectful library but I'm having some trouble with the notation. Particularly the use of single colon in a type signature. What does it mean? For example: https://github.com/bcardiff/lambda-library/blob/main/app-effectful/Main.hs#L46
2026-06-01 20:06:19 +0000 <tomsmeding> (but then, while C++'s std::cout might be a little faster, generating gigabytes of text using std::cout is also not a particularly good idea)
2026-06-01 20:05:43 +0000 <tomsmeding> If you'd want to pump that "5" up to a million or so and want it to generate the megabytes of text very quickly, you either need to reimplement in terms of more low-level operations or use another language
2026-06-01 20:04:52 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-01 20:04:37 +0000 <tomsmeding> finnyben: decently efficiently. Most of the time there is spent on actually printing stuff; IO is relatively expensive in any language.
2026-06-01 20:03:44 +0000 <tomsmeding> Sure. But then, why are you learning Haskell precisely?
2026-06-01 20:03:36 +0000 <tomsmeding> > I'd be very happy if it were taught to beginner Haskellers who want to learn Haskell as opposed to learning functional programming
2026-06-01 20:02:07 +0000azazazz(~zero@a89-153-63-117.cpe.netcabo.pt)
2026-06-01 20:02:07 +0000Googulator(~Googulato@193-226-241-87.pool.digikabel.hu)
2026-06-01 20:01:53 +0000Googulator(~Googulato@193-226-241-87.pool.digikabel.hu) (Quit: Client closed)
2026-06-01 20:01:10 +0000netunreach(~user@user/netunreach) netunreach
2026-06-01 19:57:43 +0000 <finnyben> will programs written in this style run efficiently in haskell? https://www.reddit.com/r/haskellquestions/comments/1tscedu/comment/oox6gm9/?utm_source=share&utm_m…
2026-06-01 19:57:07 +0000 <yin> that was what i meant
2026-06-01 19:56:49 +0000 <yin> i agree
2026-06-01 19:55:44 +0000finnyben(~zero@user/zero)
2026-06-01 19:54:06 +0000merijn(~merijn@62.45.136.136) (Ping timeout: 252 seconds)
2026-06-01 19:53:25 +0000aetepe(~aetepe@188.119.22.175) (Remote host closed the connection)
2026-06-01 19:53:17 +0000synchromesh(~john@2406:5a00:247e:1500:29c5:b42c:d970:297d) synchromesh
2026-06-01 19:52:51 +0000synchromesh(~john@2406:5a00:247e:1500:29c5:b42c:d970:297d) (Read error: Connection reset by peer)
2026-06-01 19:49:05 +0000merijn(~merijn@62.45.136.136) merijn
2026-06-01 19:49:01 +0000Googulator(~Googulato@193-226-241-87.pool.digikabel.hu)