Как я могу скрыть методы в F #?

В настоящее время я реализую инфраструктуру Spec в F #, и я хочу скрыть методы Equals, GetHashCode и т. Д. На моемshould типа, чтобы API не загромождался этими.

Я знаю, что в C # это делается путем того, чтобы класс реализовывал такой интерфейс:

using System;
using System.ComponentModel;

public interface IFluentInterface
{
    [EditorBrowsable(EditorBrowsableState.Never)]
    bool Equals(object other);

    [EditorBrowsable(EditorBrowsableState.Never)]
    string ToString();

    [EditorBrowsable(EditorBrowsableState.Never)]
    int GetHashCode();

    [EditorBrowsable(EditorBrowsableState.Never)]
    Type GetType();
}

Я пытался сделать то же самое в F #:

type IFluentInterface = interface

    [<EditorBrowsable(EditorBrowsableState.Never)>]
    abstract Equals : (obj) -> bool

    [<EditorBrowsable(EditorBrowsableState.Never)>]
    abstract ToString: unit -> string

    [<EditorBrowsable(EditorBrowsableState.Never)>]
    abstract GetHashCode: unit -> int

    [<EditorBrowsable(EditorBrowsableState.Never)>]
    abstract GetType : unit -> Type 
end

Реализовано это в моем виде:

        interface IFluentInterface with
        member x.Equals(other) = x.Equals(other)
        member x.ToString()    = x.ToString() 
        member x.GetHashCode() = x.GetHashCode()
        member x.GetType()     = x.GetType() 

но без успеха.

Я также попытался переопределить методы в моем типе и добавить атрибут таким образом, но это тоже не помогло.

Таким образом, остается вопрос, как я могу очистить мой API?

Редактировать:

Благодаря помощи (см. Ниже) я смог решить мою проблему.

В итоге,.Equals&nbsp;а также.GetHashCode&nbsp;может быть скрыт через[<NoEquality>] [<NoComparison>]&nbsp;но это также изменит семантику.

Скрытие через атрибуты EditorBrowsable не работает.

Единственный способ иметь чистый API и при этом иметь возможность перегружать методы - сделать эти члены метода статичными.

Полученный класс можно найти, просмотрев внутри моего проектаFSharpSpec.

Тип вопроса может быть найденВот.

Спасибо всем, кто помог мне решить эту проблему.

Ура ...