Reminds me a bit of Julia[1], which allows optional static typing.
sub fib (Int $n) returns Void {
my Int ($a, $b) = 0, 1;
while $a < $n {
say $a;
($a, $b) = ($b, $a + $b);
}
}
NB. At moment Void doesn't appear to be implemented in current version of Rakudo. Removing returns Void will make it work!