why do ML programmers put up with this endless sea of ".t".
Conversation
twitter.com/glaebhoerl/sta
(if you know of a nice way to resolve this I am very interested)
Quote Tweet
1. conflating types with modules is Wrong
2. ML's `Foo.t` idiom is unsightly
3. Haskell's `import Data.Map.Map` idiom is unsightly
me: 
1
2
(which two syntaxes do you mean? . and ::?)
Rust does conflate types and modules, aka `impl` blocks and "UFCS"
1
1
It's kiiind of neat from an ergonomics perspective. Less names to come up with. Lean is interesting - each type adds a new namespace that you can add stuff to. Not sure how it works out though. Personally I prefer just going with modules==records though.
'works out' in the sense of 'what the theory looks like'.
Yeah, this is the source of the anguish. The thing which I find theoretically distasteful has benefits in practice.
1
Modules ~= records is the only correct way to go, IMO, at least conceptually (if we can work out some foundational issues around impredicative universe polymorphism, anyway). You do want other stuff from modules but you hope it can desugar to records.
1
> some foundational issues around impredicative universe polymorphism
Could you elaborate on those?
1
Show replies




