Thanks to all for your ideas.

Independently of Gray, I arrived at something pretty similar, as follows.

It then turned out that this wasn't in the end what I needed for my 
package, but I am working on something very similar.


transform(a::BigFloat) = a
transform(a::Number) = :( BigFloat(string($a)) )
transform(a::Symbol) = isa(eval(a), MathConst) ? :(big($a)) : a

function transform(expr::Expr)
    ex = copy(expr)
    for (i, arg) in enumerate(expr.args)
        ex.args[i] = transform(arg)
    end
    return ex
end

Reply via email to