Just enough ergonomics
Generics, tagged unions with exhaustive pattern matching, type aliases,
auto-deref, type inference, function overloading, named arguments,
destructuring, range-based for-loops, compile-time format strings, and a module system.
Enough modern conveniences to stay productive without the complexity.
union Result<T, E> { Ok(T), Err(E) } // tagged union
var p = Point{3, 4}; // type inference
var (x, y) = get_pos(); // destructuring
node.next.value; // auto-deref (no -> needed)
draw(width: 800, height: 600); // named arguments
for i in 0..n { sum += data[i]; } // range-based for
print("{} + {} = {}\n", a, b, a+b); // compile-time
T max<T: Numeric>(T a, T b) { // constrained generic
return a > b ? a : b;
}