3 ms·
I'm longing for formal definitions of type and trait, to see the exact difference.
by madez 11y ago
I'm longing for formal definitions of type and trait, to see the exact difference.
- Dewie3 11y agoI've been wondering about the same thing recently too. Meanwhile, there is an article that explains how Haskell typeclasses[1] are implemented, or how they conceptually work: https://www.fpcomplete.com/user/jfischoff/instances-and-dictionaries https://www.fpcomplete.com/user/jfischoff/instances-and-dict... [1] I guess close enough analog to Rust traits.
- Manishearth 11y agoTypes are types. Let's take a type system with generics but no single inheritance. Traits are properties that types can have, like Java interfaces though more powerful. Many traits can be used as types to form a vtable dispatch. For example, Box<Send> uses the trait `Send` here as a type. Objects of type `Send` are "unsized" and must be held behind a pointer (which becomes a fat pointer).
- Dewie3 11y ago> Traits are properties that types can have, like Java interfaces though more powerful. The GP asked about formal definitions. So I think they want something more precise than that.
- Manishearth 11y agoI know, I was just clarifying my original statement :)