protocol BaseProtcol{
    static func <(lhs: Self, rhs: Self) -> Bool
    static func MethodA()-> Bool
}

struct AClass : BaseProtcol{
    static func MethodA()->Bool{
        return true
    }
}

func <(lhs: AClass, rhs: AClass) -> Bool{
    return true
}



let a = AClass()
let b = AClass()

print( a 

BaseProtocolには、二つのstatic関数が宣言されており、
このプロトコルを適合する場合、2つの関数を実装します。

このとき、構造体のメンバとして実装すべきだと思いますが、
<演算子関数は、メンバ関数としてまたはグローバル関数としてとどちらでも定義できます。
下記のMethodA()はメンバ関数としてしか実装できません。

この違いは、演算子とそうでないものに見えますが、なぜ演算子はそのようなことが
許されるのでしょうか。教えてください。

疑問なのは、演算子をグローバル関数として実装したとき、
AClassがBaseProtcolに適合しているといえるのかというところです。