>>5
They're probably not even statically checked, and it seems that you're forced to write types and contracts where the definition is.
I mean, the template of a complete function definition is 10 lines long:
def function(x as T, ...) as T
"docstring"
require
...
ensure
...
test
...
body
...
I would prefer doing something like:
type function as (T, ...) : T # (or whataver their function type syntax is)
contract function
require
...
ensure
...
def function(x, ...)
...
test function
...
Which may seem longer, but they can at least be relocated for readability, and lifts the need for the ``
body'' keyword and another level of indentation which, in a method definition, would be 4 levels already, or 12/16 spaces, which take 15%/20% of the horizontal space with 80 characters per line, and 10%/~13% with 120 characters per line, not counting that just a loop and a if would be 6 levels deep and 30% of screenspace wasted with 80 chr/line and 4-space indentation, and I'm being generous because we don't live in a perfect world where a loop and a if is enough. In the worst case, you might end with a class+def+body+loop+branch+on+cue+do and 8 fucking levels of indentation, 40% of screen wasted,
and your mother breeding niggers with niggers.
And
as is a stupid keyword to annotate a type.