Newest at the top
| 2026-06-30 10:49:25 +0000 | <tomsmeding> | hence 'a -> b' is said to be covariant in b (because b' <= b ==> a -> b' <= a -> b), and contravariant in a (because a' <= a ==> a -> b <= a' -> b) |
| 2026-06-30 10:49:23 +0000 | <fp> | Mm I see |
| 2026-06-30 10:48:25 +0000 | <tomsmeding> | but if you're expecting a function A' -> B, then a function A -> B also works, as passing an A' to that is fine by subtyping |
| 2026-06-30 10:47:45 +0000 | <tomsmeding> | because whenever B -> A works, getting a more precise A out (i.e. an A') would be acceptable |
| 2026-06-30 10:47:29 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
| 2026-06-30 10:47:20 +0000 | <tomsmeding> | but then if you think about it, B -> A' should be a subtype of B -> A, but A -> B should be a subtype of A' -> B |
| 2026-06-30 10:46:49 +0000 | <tomsmeding> | co(ntra)variance in type systems relates to subtyping, where the idea is that a subtype A' of A is to be accepted wherever A is |
| 2026-06-30 10:46:17 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
| 2026-06-30 10:46:00 +0000 | <tomsmeding> | a covariant functor has fmap : (a -> b) -> T a -> T b; a contravariant functor has fmap : (a -> b) -> T b -> T a |
| 2026-06-30 10:45:33 +0000 | <tomsmeding> | fp: I think there are two different notions of co(ntra)variant here: one is that of a co(ntra) variant functor, and the other is that of co(ntra)variance in type systems |
| 2026-06-30 10:44:12 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
| 2026-06-30 10:41:32 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
| 2026-06-30 10:41:08 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Read error: Connection reset by peer) |
| 2026-06-30 10:37:26 +0000 | <fp> | Like I'm familiar with invariance in the sense of like a physical energy system where it's behavior is invariant wrt the total energy of the system, i.e. no energy is lost or destroyed regardless of the evolution of the system. So you can understand the invariance as "the total energy can't vary" |
| 2026-06-30 10:36:56 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
| 2026-06-30 10:31:52 +0000 | <fp> | When one says that some T :: * -> * is Co/Contra/Invariant over a -> b, what is "varying"? I understand that it means you can turn a -> b into T a -> T b or T b -> T a or not, but to me that follows only from the Co/Contra/In, not the variant |
| 2026-06-30 10:31:42 +0000 | emmanuelux | (~em@user/emmanuelux) (Ping timeout: 256 seconds) |
| 2026-06-30 10:30:45 +0000 | emmanuelux_ | (~em@168.104.204.77.rev.sfr.net) |
| 2026-06-30 10:27:47 +0000 | <tomsmeding> | I guess an inverted tree |
| 2026-06-30 10:27:32 +0000 | <tomsmeding> | that sounds like a tree :p |
| 2026-06-30 10:25:40 +0000 | poscat | (~poscat@user/poscat) poscat |
| 2026-06-30 10:23:00 +0000 | merijn | (~merijn@77.242.116.146) (Ping timeout: 265 seconds) |
| 2026-06-30 10:22:36 +0000 | poscat | (~poscat@user/poscat) (Remote host closed the connection) |
| 2026-06-30 10:16:51 +0000 | Digitteknohippie | Digit |
| 2026-06-30 10:16:48 +0000 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 246 seconds) |
| 2026-06-30 10:12:25 +0000 | Digitteknohippie | (~user@user/digit) Digit |
| 2026-06-30 10:10:53 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
| 2026-06-30 10:10:21 +0000 | kuribas | (~user@2a02-1810-2825-6000-bae0-9ec9-ef49-8ccc.ip6.access.telenet.be) |
| 2026-06-30 10:08:32 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
| 2026-06-30 10:04:39 +0000 | fp2 | fp |
| 2026-06-30 10:04:39 +0000 | fp | (~Thunderbi@130.233.70.229) (Read error: Connection reset by peer) |
| 2026-06-30 10:04:26 +0000 | __monty__ | (~toonn@user/toonn) toonn |
| 2026-06-30 10:04:13 +0000 | fp2 | (~Thunderbi@130.233.70.229) fp |
| 2026-06-30 10:03:30 +0000 | Digit | (~user@user/digit) (Ping timeout: 248 seconds) |
| 2026-06-30 09:55:50 +0000 | Digit | (~user@user/digit) Digit |
| 2026-06-30 09:52:18 +0000 | digitteknohippie | (~user@user/digit) (Remote host closed the connection) |
| 2026-06-30 09:52:18 +0000 | Digit | digitteknohippie |
| 2026-06-30 09:48:21 +0000 | merijn | (~merijn@77.242.116.146) merijn |
| 2026-06-30 09:47:50 +0000 | jreicher | (~joelr@user/jreicher) jreicher |
| 2026-06-30 09:47:19 +0000 | jreicher | (~joelr@user/jreicher) (Killed (manganese.libera.chat (Nickname regained by services))) |
| 2026-06-30 09:46:45 +0000 | merijn | (~merijn@77.242.116.146) (Ping timeout: 265 seconds) |
| 2026-06-30 09:46:03 +0000 | Digit | (~user@user/digit) Digit |
| 2026-06-30 09:42:39 +0000 | karenw | (~karenw@user/karenw) karenw |
| 2026-06-30 09:32:17 +0000 | <probie> | monochrom: Are lists always bad for data? A single list is bad, but if you have many (singly-linked) lists and a lot of sharing going on I'm not willing to immediately write it off as "bad" |
| 2026-06-30 09:21:07 +0000 | fp | (~Thunderbi@130.233.70.229) fp |
| 2026-06-30 09:08:26 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
| 2026-06-30 09:05:07 +0000 | danza | (~danza@user/danza) danza |
| 2026-06-30 09:03:01 +0000 | merijn | (~merijn@77.242.116.146) merijn |
| 2026-06-30 09:02:01 +0000 | acidjnk | (~acidjnk@p200300d6e74def67cefedba3bc5cab81.dip0.t-ipconnect.de) acidjnk |
| 2026-06-30 09:01:51 +0000 | acidjnk_new | (~acidjnk@p200300d6e74def67cefedba3bc5cab81.dip0.t-ipconnect.de) |