以下代码显示打开 A 后 b 被 Ab 覆盖。但是,Ab 和 Bb 具有不同的签名,Ab 接受整数参数,而 Bb 接受浮点参数。他们不应该互相超越,对吗?
# module A=struct let b x = x*10 end;;
module A : sig val b : int -> int end
# module B=struct let b x =x*. 3.14159 end ;;
module B : sig val b : float -> float end
# open B;;
# open A;;
# b 10;;
- : int = 100
# b 10.;;
Error: This expression has type float but an expression was expected of type
int
#