>>> argless functions with default return values
argless_default_default: 0
argless_boolean_default: FALSE
argless_double_default: 4
argless_integer_default: 4
argless_string_default: bar
>>> argless functions with explicit return values
argless_default_set: 5
argless_boolean_set: TRUE
argless_double_set: 9.2
argless_integer_set: 127
argless_string_set: foobar
>>> Call chains
first: 5
second: foo
>>> Local variables
defined_globally on exit: 2
defined_locally on exit: 3
0
1
>>> Global variables
get_really_global returned: 2
get_really_global returned: 4
really_global is: 3
>>> Arguments with annotations
param_b is TRUE
param_d is 3.4
param_i is 5
param_s is hello
0
>>> Arguments with types
b is FALSE
d is -1
i is 2
s is foo
0
>>> Type promotion in arguments
d is 5
i is 3
0
>>> Type promotion in return values
3
>>> Recursion
entering level: 3
entering level: 2
entering level: 1
0
leaving level: 1
0
leaving level: 2
0
leaving level: 3
0