Another problem:

5) We have been using promote_type to find out the type returned by a 
promote_rule we defined, which has mostly worked fine, oddly enough. But 
now that I realise that's not what promote_type is for, I switched to using 
promote_rule instead, since it just returns Union{} if there is no 
promote_rule for the supplied types. But this doesn't work in Nemo.

Even though we have an explicit promote rule (not generated at runtime)

Base.promote_rule{T <: Integer}(::Type{fmpz_poly}, ::Type{T}) = fmpz_poly

a call to Base.promote_rule(fmpz_poly, Int) inside Nemo returns Union{}.

However, such a call from the REPL results in Nemo.fmpz_poly.

There's clearly something broken here. I need to be able to explicitly tell 
if the promote_rules that I create actually exist or not. At present I only 
seem to be able to do that from the REPL, not inside my actual module.

Bill.

Reply via email to