Newest at the top
| 2025-11-11 12:16:55 +0100 | Ranhir | (~Ranhir@157.97.53.139) (Ping timeout: 240 seconds) |
| 2025-11-11 12:16:29 +0100 | <kuribas> | mreh: so "class Eq a => Ord a", means everytime you use "Ord a", it implies "Eq a". |
| 2025-11-11 12:15:15 +0100 | <kuribas> | in a class or instance definition I mean. |
| 2025-11-11 12:14:30 +0100 | <kuribas> | mreh: constraints, are only checked after resolving the instances. |
| 2025-11-11 12:14:04 +0100 | <kuribas> | mreh: yes |
| 2025-11-11 12:13:43 +0100 | <mreh> | e.g. `Enum (AssociatedType t) => ...` |
| 2025-11-11 12:12:47 +0100 | <mreh> | Do associated types in a Constraint also imply their typeclass? I guess they would have to. |
| 2025-11-11 12:12:16 +0100 | poscat | (~poscat@user/poscat) poscat |
| 2025-11-11 12:12:11 +0100 | <kuribas> | Which is somewhat mitigated with subtypes. |
| 2025-11-11 12:11:49 +0100 | <kuribas> | Lookup at python types. And you don't even have hkts. |
| 2025-11-11 12:11:39 +0100 | <kuribas> | jreicher: yes, but they always explode in complexity. |
| 2025-11-11 12:11:14 +0100 | <jreicher> | I think that will always be a moving target. |
| 2025-11-11 12:10:51 +0100 | <jreicher> | kuribas: I don't think there's any "logical conclusion" to a type system. A type system is whatever assertions you want the compiler to check for you, in which case you need to be able to express the assertions, and you need the system to be able to check them. |
| 2025-11-11 12:09:34 +0100 | <merijn> | Purescript does have rowtype polymorphism, but compiling to JS means I can't practically use it |
| 2025-11-11 12:09:20 +0100 | <arahael> | Still annoyed I can't tell C# that the enums I have should only be defined for the values they're specified for. |
| 2025-11-11 12:09:19 +0100 | poscat | (~poscat@user/poscat) (Remote host closed the connection) |
| 2025-11-11 12:09:02 +0100 | <arahael> | I'd just be happy having sum types. |
| 2025-11-11 12:08:37 +0100 | <merijn> | Especially since subtyping ruins all good things |
| 2025-11-11 12:08:37 +0100 | <kuribas> | purescript then? |
| 2025-11-11 12:07:40 +0100 | <merijn> | So I don't have to think about covariance/contravariance |
| 2025-11-11 12:07:20 +0100 | <merijn> | The entire point of rowtype polymorphism is to have structural subtyping that doesn't suck |
| 2025-11-11 12:07:03 +0100 | <merijn> | Which is, like, the opposite of what I want |
| 2025-11-11 12:06:56 +0100 | <merijn> | typescript just does structural subtyping |
| 2025-11-11 12:06:34 +0100 | <merijn> | typescript doesn't have row type polymorphism |
| 2025-11-11 12:05:42 +0100 | <kuribas> | merijn: typescript? |
| 2025-11-11 12:04:49 +0100 | trickard_ | (~trickard@cpe-62-98-47-163.wireline.com.au) |
| 2025-11-11 12:04:35 +0100 | trickard_ | (~trickard@cpe-62-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-11-11 12:04:04 +0100 | <merijn> | Ideally one not as niche and obscure as Ur/Web |
| 2025-11-11 12:03:52 +0100 | <merijn> | I want my damn rowtype polymorhpism in a production language! >.< |
| 2025-11-11 12:03:34 +0100 | <merijn> | You know what I do want? |
| 2025-11-11 12:03:25 +0100 | <merijn> | So I'm not yet convinced that's what I want |
| 2025-11-11 12:03:17 +0100 | <merijn> | Those bring a lot of disadvantages too |
| 2025-11-11 12:00:37 +0100 | jreicher | (~user@user/jreicher) jreicher |
| 2025-11-11 11:53:39 +0100 | <kuribas> | I just feel dependent types are the logical conclusion of any advanced type system. |
| 2025-11-11 11:53:25 +0100 | deptype | (~deptype@2406:b400:3a:73c2:20ec:9ba6:a31e:71d2) (Ping timeout: 240 seconds) |
| 2025-11-11 11:52:31 +0100 | Nachtgespenst | (~user@user/siracusa) siracusa |
| 2025-11-11 11:51:50 +0100 | <kuribas> | Python, Typescript. |
| 2025-11-11 11:51:44 +0100 | deptype_ | (~deptype@2406:b400:3a:73c2:96bb:43ff:fecb:477b) |
| 2025-11-11 11:51:43 +0100 | <kuribas> | Then again, type level programming in other languages is strictly worse. |
| 2025-11-11 11:49:32 +0100 | <kuribas> | And possibly runtime as well. |
| 2025-11-11 11:49:23 +0100 | <kuribas> | I usually go with generics, but they have a big compile time cost. |
| 2025-11-11 11:49:00 +0100 | <kuribas> | Not necessarily type level, but usually there to avoid the boilerplate that comes with haskell type level stuff. |
| 2025-11-11 11:48:27 +0100 | <kuribas> | merijn: generating types, freemonads, lenses. |
| 2025-11-11 11:47:14 +0100 | <merijn> | kuribas: I don't think TH really counts as type level? |
| 2025-11-11 11:46:44 +0100 | <kuribas> | Haskell typelevel is this weird combination of untyped prolog, intricacies of type classes, and ad hoc extensions (generics, TH). |
| 2025-11-11 11:34:00 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-11-11 11:33:48 +0100 | jreicher | (~user@user/jreicher) (Quit: In transit) |
| 2025-11-11 11:32:10 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 256 seconds) |
| 2025-11-11 11:28:49 +0100 | Jackneill | (~Jackneill@188-143-82-32.pool.digikabel.hu) Jackneill |
| 2025-11-11 11:25:10 +0100 | starving_drummer | (~berke@user/Starving-Drummer:76786) Starving_Drummer |