2026/06/01

Newest at the top

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)
2026-06-01 19:48:43 +0000Googulator(~Googulato@193-226-241-87.pool.digikabel.hu) (Quit: Client closed)
2026-06-01 19:46:01 +0000Adran(adran@botters/adran) Adran
2026-06-01 19:43:19 +0000sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2026-06-01 19:41:44 +0000gentauro(~gentauro@user/gentauro) gentauro
2026-06-01 19:38:06 +0000unworriedsafari(unworrieds@user/unworriedsafari) unworriedsafari
2026-06-01 19:37:57 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-06-01 19:36:13 +0000Adran(~adran@botters/adran) (Quit: Este é o fim.)
2026-06-01 19:34:43 +0000Pozyomka(~pyon@user/pyon) (Client Quit)
2026-06-01 19:33:19 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-01 19:31:24 +0000Pozyomka(~pyon@user/pyon) pyon
2026-06-01 19:29:21 +0000Pozyomka(~pyon@user/pyon) (Quit: brb)
2026-06-01 19:27:13 +0000wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2026-06-01 19:25:55 +0000vanishingideal(~vanishing@user/vanishingideal) vanishingideal