Incorrect type inference with List.map?

Most likely this is yet again the issue mentioned in Possible bug in Base.List.map. The Base module redefines (=) to have the type int -> int -> bool.

You can read an excellent description of ways to get polymorphic comparison while using Base here: The Base Module and Polymorphic Functions