correct parsing of variadic parameters in function definitions <<< printf = fun (format string, ...args any) { # some implementation here } >>> (expr (binary = (expr (name printf)) (expr (function (param format) (type name string) (param args) (type variadic name any) (block)))))