Как заставить этот ненавистный F# переопределить такие операторы как & для отдельных типов, но не глобально.
type t(m) =
member this.m : string = m
static member (&) (a : t, b : t) = a.m, b.m
> t("t1") & t("t2");;
t("t1") & t("t2");;
--------^
C:\Documents and Settings\Kovalev\Local Settings\Temp\stdin(3,9): warning FS1203: In F# code, use 'e1 && e2' instead of 'e1 & e2'
t("t1") & t("t2");;
^^^^^^^
C:\Documents and Settings\Kovalev\Local Settings\Temp\stdin(3,1): error FS0001: This expression was expected to have type
bool
but here has type
t