forall(dtype T) void foo(T x) { } forall(dtype T) void bar(T * y) { } int main() { foo(5); foo("baz"); foo(foo); bar(foo); }