I've read about Pyret on hackernews: http://www.pyret.org/

and found the 'where' statement very compeling. Functions can end with a where that contains small unit

From the documentation example:
fun sum(l):
  cases(List) l:
    | empty => 0
    | link(first, rest) => first + sum(rest)
  sum([]) is 0
  sum([1, 2, 3]) is 6
It's quite similar to the doctests ideas I guess - but not intended to be documentation like them.

I ended up disliking docttests because of this doc+test duality by the way: it often ends up as a
not so good documentation and not so good tests.

Anyways, having a dedicated keyword to append after a function some tests as part of the language
has benefits imho:

- the scope is reduced to the function - so it helps making 'real' isolated unit tests.
- we do have the unittest conventions, but here it make tests a first class citizen in the language.