Thanks for the fast response! However, when I change bar as proposed in the module this gives an error "No method foo(Array)": foo(x::Real) = x^2
bar(foo, [1:3]) As far I understand passing foo as function argument to bar(f, y) is not sufficient. The problem is that bar() uses foo(x::Real) and foo(x::Array). However, foo(x::Array) is defined in the module based on the foo(x::Real). The user should only provide the later one.
