Thank you again, Jacob!
I pondered that under the shower, and it did the trick. For record, if
somebody wants to generate a function from a macro in a function, here is a
little example. Case closed.
Philippe
module moo
importall Base # need to import Base.cos, Base.sin to add methods to it
export Typ # export all that is to be public
type Typ # public, because exported
x
end
cos(a::Typ) = cos(a.x) # add method to base function - this does NOT require
any export out of this module or import by the user
macro makefoo(OP)
return quote
$(esc(OP))(a::Typ)= $OP(a.x) # add method to base function. Note the
$(esc(OP)) to prevent macro hygiene from changing the name of generated function
end
end
println(macroexpand(:(@makefoo(sin))))
@makefoo(sin)
end
importall moo
println(methods(cos))
println(methods(sin))