2025/11/11

Newest at the top

2025-11-11 12:16:55 +0100Ranhir(~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 +0100poscat(~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 +0100poscat(~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 +0100trickard_(~trickard@cpe-62-98-47-163.wireline.com.au)
2025-11-11 12:04:35 +0100trickard_(~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 +0100jreicher(~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 +0100deptype(~deptype@2406:b400:3a:73c2:20ec:9ba6:a31e:71d2) (Ping timeout: 240 seconds)
2025-11-11 11:52:31 +0100Nachtgespenst(~user@user/siracusa) siracusa
2025-11-11 11:51:50 +0100 <kuribas> Python, Typescript.
2025-11-11 11:51:44 +0100deptype_(~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 +0100merijn(~merijn@77.242.116.146) merijn
2025-11-11 11:33:48 +0100jreicher(~user@user/jreicher) (Quit: In transit)
2025-11-11 11:32:10 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 256 seconds)
2025-11-11 11:28:49 +0100Jackneill(~Jackneill@188-143-82-32.pool.digikabel.hu) Jackneill
2025-11-11 11:25:10 +0100starving_drummer(~berke@user/Starving-Drummer:76786) Starving_Drummer