It's hard to perform equality on functional values, as it is hard to confirm two functions being the same... (even if you know the mathematical definition of the function, thus even harder if you only know the machine representation of it...). The best way around is to use == equality (= is structural equality, while == is referential equality - whether two names point to the same address in the memory), which might return false often, but will never fail on functional values. So I guess it's best you edit the source code (if you can) and change it...

- Tom