There is a global variable that purports to contain a list of operator forms, TypeSystem`$OperatorForms. I say "purports", because the list is missing some of the forms found by @ybeltukov's method. But to its credit, it correctly identifies the operator form of ReplaceAll which is mentioned in neither a usage message nor the documentation, and also correctly omits StringCases which has no operator form despite the usage message claiming otherwise:
Needs["TypeSystem`"] $typeSystem = SymbolName /@ TypeSystem`$OperatorForms; $usages = Select[ Names@"*" , StringMatchQ[ToString@ToExpression[#<>"::usage"],"*an operator form of*"]& ]; $usages ~Complement~ $typeSystem (* {AssociationMap,CountDistinctBy,DeleteDuplicatesBy,MapAt,Merge,StringCases} *) $typeSystem ~Complement~ $usages (* {ReplaceAll} *)
There are three other operators which exhaustively partition TypeSystem`$OperatorForms into the categories "left", "right" and "3-2":
TypeSystem`$LeftOperatorForms (* {Map,KeyMap,Apply,Scan,MapIndexed} *) TypeSystem`$RightOperatorForms (* {Prepend,Append,GroupBy,CountsBy,Count,Position,FirstPosition,SortBy,KeySelect, Select,SelectFirst,Delete,Extract,Replace,ReplacePart,ReplaceAll,Cases, DeleteCases,FirstCase,AnyTrue,AllTrue,NoneTrue,KeyExistsQ,KeySortBy, KeyTake,KeyDrop,MaximalBy,MinimalBy,MatchQ,FreeQ,MemberQ} *) TypeSystem`$ThreeTwoOperatorForms (* {Insert} *)
These categories appear to identify the position(s) of the curried arguments.
The results shown here are from version 10.0.1.