Consider such code:
var uri = new Uri("http://foo.bar/foo%2FBar", true);
Could you tell me what this
true stands for? Inside the function it is clear, because you work with parameter, not value, but on the outside it is not obvious.
When I write the function in C# which takes
boolean I always face moral dilemma — write quickly and go with raw
boolean, or pollute code with short-lived
enum with two values
False (reminder: in C# you have to use
enum type name and value, not just
enum value) making any call self explanatory.
The problem is solved in Skila — not only you can use parameter names when calling function, but you can define function with constraint on giving the name. Having
Uri class in Skila:
class Uri Uri(address : String,named dontEscape : Bool) = ... end
your minimal choice for call is:
var uri = new Uri("http://foo.bar/foo%2FBar", dontEscape: true);