我愿做这样的事情:我可以为某些函子参数定义OCaml函数吗?
module Make (M: MInt) (N: MInt) : T = struct
(* always defined *)
let foo = 42
(* only defined when M == N or M.x == N.x, something like that *)
let bar a b = a * b
end
这可能吗?
显然我可以在运行时检查,但我很好奇如何在编译时做到这一点。谢谢!