documented print_fun