Newest at the top
2024-12-30 17:48:57 +0100 | michalz | (~michalz@185.246.207.221) |
2024-12-30 17:48:51 +0100 | jespada_ | (~jespada@2800:a4:22ad:2400:70c7:6c7f:adbe:5e08) jespada |
2024-12-30 17:42:55 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-30 17:31:00 +0100 | euphores | (~SASL_euph@user/euphores) euphores |
2024-12-30 17:29:45 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-30 17:25:14 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-30 17:24:43 +0100 | tnt1 | (~Thunderbi@user/tnt1) (Remote host closed the connection) |
2024-12-30 17:20:18 +0100 | rekahsoft | (~rekahsoft@bras-base-orllon1103w-grc-06-76-69-85-220.dsl.bell.ca) rekahsoft |
2024-12-30 17:14:49 +0100 | tnt2 | tnt1 |
2024-12-30 17:13:55 +0100 | tnt1 | (~Thunderbi@user/tnt1) (Ping timeout: 252 seconds) |
2024-12-30 17:13:37 +0100 | euleritian | (~euleritia@dynamic-176-001-202-129.176.1.pool.telefonica.de) (Ping timeout: 248 seconds) |
2024-12-30 17:13:34 +0100 | rekahsoft | (~rekahsoft@76.69.85.220) (Remote host closed the connection) |
2024-12-30 17:13:20 +0100 | tnt2 | (~Thunderbi@user/tnt1) tnt1 |
2024-12-30 17:11:58 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-30 17:07:33 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-30 17:06:01 +0100 | tromp | (~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 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-30 17:01:49 +0100 | JuanDaugherty | (~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 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-30 16:56:49 +0100 | prsteele | (~prsteele@pool-173-48-172-223.bstnma.fios.verizon.net) |
2024-12-30 16:56:46 +0100 | rekahsoft | (~rekahsoft@76.69.85.220) rekahsoft |
2024-12-30 16:53:06 +0100 | euleritian | (~euleritia@dynamic-176-001-202-129.176.1.pool.telefonica.de) |
2024-12-30 16:51:06 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.4.2) |
2024-12-30 16:49:37 +0100 | euleritian | (~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 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
2024-12-30 16:45:54 +0100 | Square | (~Square@user/square) Square |
2024-12-30 16:45:25 +0100 | euleritian | (~euleritia@dynamic-176-001-202-129.176.1.pool.telefonica.de) |
2024-12-30 16:44:22 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-12-30 16:42:03 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) TheCoffeMaker |
2024-12-30 16:41:12 +0100 | merijn | (~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 +0100 | euleritian | (~euleritia@dynamic-176-001-202-129.176.1.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-12-30 16:34:19 +0100 | euleritian | (~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 +0100 | ft | (~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 |
2024-12-30 16:28:05 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-12-30 16:27:57 +0100 | jero98772 | (~jero98772@31.130.32.65) (Quit: leaving) |