2024/12/30

Newest at the top

2024-12-30 17:50:56 +0100jespada(~jespada@2800:a4:22ad:2400:7d64:224:c127:63bb) (Ping timeout: 244 seconds)
2024-12-30 17:49:41 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-30 17:48:57 +0100michalz(~michalz@185.246.207.221)
2024-12-30 17:48:51 +0100jespada_(~jespada@2800:a4:22ad:2400:70c7:6c7f:adbe:5e08) jespada
2024-12-30 17:42:55 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-30 17:31:00 +0100euphores(~SASL_euph@user/euphores) euphores
2024-12-30 17:29:45 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-30 17:25:14 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-30 17:24:43 +0100tnt1(~Thunderbi@user/tnt1) (Remote host closed the connection)
2024-12-30 17:20:18 +0100rekahsoft(~rekahsoft@bras-base-orllon1103w-grc-06-76-69-85-220.dsl.bell.ca) rekahsoft
2024-12-30 17:14:49 +0100tnt2tnt1
2024-12-30 17:13:55 +0100tnt1(~Thunderbi@user/tnt1) (Ping timeout: 252 seconds)
2024-12-30 17:13:37 +0100euleritian(~euleritia@dynamic-176-001-202-129.176.1.pool.telefonica.de) (Ping timeout: 248 seconds)
2024-12-30 17:13:34 +0100rekahsoft(~rekahsoft@76.69.85.220) (Remote host closed the connection)
2024-12-30 17:13:20 +0100tnt2(~Thunderbi@user/tnt1) tnt1
2024-12-30 17:11:58 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-30 17:07:33 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-30 17:06:01 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-12-30 17:03:28 +0100 <prsteele> Yup, that makes sense, thanks! And also thanks for your notes on ST annotations
2024-12-30 17:03:03 +0100 <Leary> prsteele: The triviality of the reverse is why you should do it the other way around in the first place. Use the same convention as in base: call your class methods `oldNameBy` and have them take explicit `a -> a -> Ordering` arguments. At the top level, define `oldName = oldNameBy compare`.
2024-12-30 17:02:19 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-30 17:01:49 +0100JuanDaugherty(~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
2024-12-30 16:59:46 +0100 <prsteele> `newtype Comparing a = Comparing (a -> a -> Ordering, a)` instance. This seems _okay_, except that it would merely be convention that all values of that type have equivalent functions embedded. (You'd get no protection from passing `compare` versus `flip compare`, for example.)
2024-12-30 16:59:46 +0100 <prsteele> I've implemented a class that has an `Ord a` constraint. This is all well and good, but now I find myself wanting to use this class when I only have a `a -> a -> Ordering` at hand. Is there a common trick to lifting a value-level comparison to an `Ord` instance? The reverse is trivial --- it's `compare` --- but I can't see anything better than a
2024-12-30 16:57:58 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-30 16:56:49 +0100prsteele(~prsteele@pool-173-48-172-223.bstnma.fios.verizon.net)
2024-12-30 16:56:46 +0100rekahsoft(~rekahsoft@76.69.85.220) rekahsoft
2024-12-30 16:53:06 +0100euleritian(~euleritia@dynamic-176-001-202-129.176.1.pool.telefonica.de)
2024-12-30 16:51:06 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.4.2)
2024-12-30 16:49:37 +0100euleritian(~euleritia@dynamic-176-001-202-129.176.1.pool.telefonica.de) (Ping timeout: 248 seconds)
2024-12-30 16:46:51 +0100 <lambdabot> ("helloworld",())
2024-12-30 16:46:26 +0100 <Leary> > do { ("hello", ()); ("world", ()) }
2024-12-30 16:46:21 +0100 <lambdabot> ("helloworld",())
2024-12-30 16:46:18 +0100 <Leary> > swap . runWriter $ do { tell "hello"; tell "world" }
2024-12-30 16:46:15 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-12-30 16:45:54 +0100Square(~Square@user/square) Square
2024-12-30 16:45:25 +0100euleritian(~euleritia@dynamic-176-001-202-129.176.1.pool.telefonica.de)
2024-12-30 16:44:22 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-12-30 16:42:03 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker) TheCoffeMaker
2024-12-30 16:41:12 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-30 16:35:56 +0100 <hellwolf> how do you mean? quick fiddling turns out that Applicative ((,) a) not enough neither, since I need to bind the output. Anyways, raw lambda ftw for now.
2024-12-30 16:34:45 +0100euleritian(~euleritia@dynamic-176-001-202-129.176.1.pool.telefonica.de) (Read error: Connection reset by peer)
2024-12-30 16:34:19 +0100euleritian(~euleritia@dynamic-176-001-202-129.176.1.pool.telefonica.de)
2024-12-30 16:32:24 +0100 <Leary> It's just raw `Writer`.
2024-12-30 16:32:04 +0100 <hellwolf> let me try and put it side by side to you
2024-12-30 16:32:04 +0100ft(~ft@p3e9bc988.dip0.t-ipconnect.de) ft
2024-12-30 16:32:00 +0100 <hellwolf> not sure if it's more readable code
2024-12-30 16:31:52 +0100 <hellwolf> I read just recenlty (,) has an applicative that can do great things, now I think I can put it into practice
2024-12-30 16:31:31 +0100 <hellwolf> this does though: Monoid a => Applicative ((,) a)
2024-12-30 16:28:53 +0100 <hellwolf> nah