ALPHA: breaking changes expected. What that means
NanoC

Functions

A function is the keyword f, a name, optional parameters and an optional C result type. The last expression is the result.

Today

NanoC
f add(a: i32, b: i32) i32
  a + b
f greet()
  <
f clamp(x,lo,hi: i32) i32
  if x < lo
    < lo
  if x > hi
    < hi
  x
f main
  greet()
  add(1, 2) + clamp(15, 0, 10) != 13
C
int add(int a, int b) {
    return a + b;
}

void greet(void) {
    return;
}

int clamp(int x, int lo, int hi) {
    if (x < lo) {
        return lo;
    }
    if (x > hi) {
        return hi;
    }
    return x;
}

int main(void) {
    greet();
    return add(1, 2) + clamp(15, 0, 10) != 13;
}

Target: typed signatures with sized types

The new signature spells every parameter as name type, and a single expression body can follow =.

NanoC, new syntax (preview, not compiled yet)
f greet
  puts("hello")
f main = 0
f add(a: i32, b: i32) i32
  a + b
f double(x: i32) i32 = x * 2