Passing parameters of any type may be accomplished using the keyword ANY as the passed value type:
DefinitionName ( ANY AliasName ) := expression;
a := 10; b := 20; c := '1'; d := '2'; e := '3'; f := '4'; s1 := [c,d]; s2 := [e,f]; ds1 := DATASET(s1,{STRING1 ltr}); ds2 := DATASET(s2,{STRING1 ltr}); MyFunc(ANY l, ANY r) := l + r; MyFunc(a,b); //returns 30 MyFunc(a,c); //returns '101' MyFunc(c,d); //returns '12' MyFunc(s1,s2); //returns a set: ['1','2','3','4'] MyFunc(ds1,ds2); //returns 4 records: '1', '2', '3', and '4'