OCamlでは、modは特別扱いで中置記法として定義されています。
# (mod);; - : int -> int -> int = # 5 mod 3;; - : int = 2 |
たとえばこの別名でremという関数を作りたくても、これを中置記法で定義することは出来ません。
# let (rem) x y = x mod y;; Error: Syntax error |
これは、中置演算子として定義できる文字列が、記号の特定の組み合わせ、もしくは予約された文字列、というふうに決められているからですね。
中置演算子として予約された文字列にはor,mod,land,lor,lxor,lsl,lsr,asrがあります。
(参考:公式マニュアルのinfix-opの項)