It seems to me there's a lot of focus on syntax, and I don't think they've gotten to a great place. For example:
(this Int).square | Int = this.*(this)
In Rust, they do impl Int {
fn square (self) -> Int {
self * self
}
}
I can read the Keli version, but I'm note sure that `(this Int)`, `|`, and `.*` are great inventions. You need a good reason to deviate from commonly recognized syntax, and Keli doesn't feel like it's made things simpler with this.In Dark, we use piping heavily to get the benefits of the dot-syntax. In particular, it can be type directed:
8 |> Int::square |> Int::log 2
The autocomplete will only show you integer functions in this case.For the problem of "which parameter" - our IDE shows parameter names when your cursor is in a position to type the next parameter, so you know what you're adding it is. We also show the parameter names when your cursor is in the completed argument so you know what parameter it is. (I couldn't see if Keli did this, it might not be possible in modern editors).