Keean Schupke
Keean Schupke
@shelby3 I find myself re-thinking in the morning and finding I don't agree with what I posted yesterday. An or operator for traits does not make any sense, as it...
@shelby3 I have created a second issue here https://github.com/keean/traitscript/issues/2 to discuss union types. I am fully aware of monomorphisation, which is when the type is statically determined. There is also...
Also note the mult-method dispatch version of the Sharks code makes some other changes, introducing new types for HealthyShark and DyingShark, I will update the Rust code to reflect this...
SoundScript is described here: http://www.2ality.com/2015/02/soundscript.html which sounds like JavaScript plus enforced classical objects and inheritance, and simple function typing. There's nothing about generics or code generation.
I agree with most of that, with some restrictions. - function name overloading, I would want all overloads to have the same type, so the overloads are on data constructors....
In the append case both arguments are lists. It's not just the reduction in verbosity, but the lack of indenting, keeping everything lined up to the left makes for more...
@shelby3 There is more than one way to type this, which is generally seen as bad: ``` f : (forall a . a -> a) -> (String | Int) f...
@shelby3 I read the quiz, but I don't think it is relevant as we are not considering widening here, but which variant above should be used. In some regards, the...
The paper you refer to only allows rank1 intersection types, and does not specifically deal with union types. To allow full intersection types will require expansion variables. I have written...
@shelby3 I have an novel inference algorithm that I like, that is capable of supporting intersection and union types with full expansion variables. The current version check into git here...