Type checking nbs = [ 1, 2, 5, 3 ] i = maximum(nbs) #=> 5 nbs = [ 1, 2, 5, "foo" ] i = maximum(nbs) #=> ill-typed at compile-time name, size = s.m("(\w+):(\d+)") # example of valid s = "foo:100" "%d has %0.2f\n".printf(name.capitalize) #=> error missing argument to printf "%d has %0.2f\n".printf(name.capitalize, size / 10) #=> error name.capitalize is not a number "%s has %0.2f\n".printf(name.capitalize, size / 10)