F # имеет значения по умолчанию для этих символов оператора, что разумно для F #. Вы всегда можете определить свои собственные значения, которые скрывают значения по умолчанию, например
let (>) x y = ...
Например, вы можете определить этот оператор как «T.operator> (U)» (при условии, что x имеет тип T, а y имеет тип U).
См. Prim-types.fs в FSharp.Core в исходном дистрибутиве для определения по умолчанию. (Они нетривиальны!)
Учитывая комбинацию (1) отсутствия поддержки механизма, подобного классу типов, в CLR (для определения общей семантики среди набора типов, не связанных между собой) и (2) того факта, что примитивные типы (например, int ') часто требуется специальный корпус для любой реализации языка программирования (например, System.Int32 не определяет метод operator +, но большинство языков программирования предпочитают вести себя так, как если бы такой метод существовал), трудно представить какой-либо вообще совместимый операторный материал на всех языках .Net сегодня. Есть много компромиссов в дизайне, в зависимости от того, что именно язык выбирает (слишком много взаимодействующих вопросов, чтобы здесь подвести итог). В любом случае вы должны иметь возможность вызывать любой метод из F #, и если поведение операторов по умолчанию нежелательно, вы можете переопределить (скрыть) операторы в соответствии с желаемым поведением. Если у вас есть какой-то конкретный сценарий, когда у вас возникают проблемы с выполнением работы, дайте мне знать.
EDIT
Я добавил больше деталей на
http://cs.hubfs.net/forums/thread/10869.aspx