// Type pack expansion x: type = { tup: std::tuple = (); } left_fold_print: (inout out: std::ostream, args...: Args) = { // Binary left fold expression (out << ... << args); } all: (args...: Args) -> bool = // Unary left fold expression (... && args); make_string: (forward args...: Args) :std::string = args...; make: (forward args...: Args) :T = args...; main: () = { _: x = (); std::cout << std::string("xyzzy", 3) << "\n"; std::cout << make_string("plugh", :u8=3) << "\n"; std::cout << make("abracadabra", :u8=3) << "\n"; left_fold_print( std::cout, 3.14, "word", -1500 ); std::cout << "\nfirst all() returned (all(true, true, true, false))$"; std::cout << "\nsecond all() returned " << all(true, true, true, true) as std::string; }