type A() =
    static member StaticProperty1 with get() = 0 and set (_: int) = ()
    static member StaticProperty_public2 with public get() = 0 and set (_: int) = ()
    static member StaticProperty_public3 with get() = 0 and public set (_: int) = ()
    static member StaticProperty_public4 with public get() = 0 and public set (_: int) = ()
    static member StaticProperty_internal2 with internal get() = 0 and set (_: int) = ()
    static member StaticProperty_internal3 with get() = 0 and internal set (_: int) = ()
    static member StaticProperty_internal4 with internal get() = 0 and internal set (_: int) = ()
    static member StaticProperty_private2 with private get() = 0 and set (_: int) = ()
    static member StaticProperty_private3 with internal get() = 0 and private set (_: int) = ()
    static member StaticProperty_private4 with private get() = 0 and private set (_: int) = ()

    member _.InstanceProperty1 with get() = 0 and set (_: int) = ()
    member _.InstanceProperty_public2 with public get() = 0 and set (_: int) = ()
    member _.InstanceProperty_public3 with get() = 0 and public set (_: int) = ()
    member _.InstanceProperty_public4 with public get() = 0 and public set (_: int) = ()
    member _.InstanceProperty_internal2 with internal get() = 0 and set (_: int) = ()
    member _.InstanceProperty_internal3 with get() = 0 and internal set (_: int) = ()
    member _.InstanceProperty_internal4 with internal get() = 0 and internal set (_: int) = ()
    member _.InstanceProperty_private2 with private get() = 0 and set (_: int) = ()
    member _.InstanceProperty_private3 with internal get() = 0 and private set (_: int) = ()
    member _.InstanceProperty_private4 with private get() = 0 and private set (_: int) = ()

    static member StaticIndexer1 with get (_: int) = 0 and set (_: int) (_: int) = ()
    static member StaticIndexer_public2 with public get (_: int) = 0 and set (_: int) (_: int) = ()
    static member StaticIndexer_public3 with get (_: int) = 0 and public set (_: int) (_: int) = ()
    static member StaticIndexer_public4 with public get (_: int) = 0 and public set (_: int) (_: int) = ()
    static member StaticIndexer_internal2 with internal get (_: int) = 0 and set (_: int) (_: int) = ()
    static member StaticIndexer_internal3 with get (_: int) = 0 and internal set (_: int) (_: int) = ()
    static member StaticIndexer_internal4 with internal get (_: int) = 0 and internal set (_: int) (_: int) = ()
    static member StaticIndexer_private2 with private get (_: int) = 0 and set (_: int) (_: int) = ()
    static member StaticIndexer_private3 with internal get (_: int) = 0 and private set (_: int) (_: int) = ()
    static member StaticIndexer_private4 with private get (_: int) = 0 and private set (_: int) (_: int) = ()

    member _.InstanceIndexer1 with get (_: int) = 0 and set (_: int) (_: int) = ()
    member _.InstanceIndexer_public2 with public get (_: int) = 0 and set (_: int) (_: int) = ()
    member _.InstanceIndexer_public3 with get (_: int) = 0 and public set (_: int) (_: int) = ()
    member _.InstanceIndexer_public4 with public get (_: int) = 0 and public set (_: int) (_: int) = ()
    member _.InstanceIndexer_internal2 with internal get (_: int) = 0 and set (_: int) (_: int) = ()
    member _.InstanceIndexer_internal3 with get (_: int) = 0 and internal set (_: int) (_: int) = ()
    member _.InstanceIndexer_internal4 with internal get (_: int) = 0 and internal set (_: int) (_: int) = ()
    member _.InstanceIndexer_private2 with private get (_: int) = 0 and set (_: int) (_: int) = ()
    member _.InstanceIndexer_private3 with internal get (_: int) = 0 and private set (_: int) (_: int) = ()
    member _.InstanceIndexer_private4 with private get (_: int) = 0 and private set (_: int) (_: int) = ()

    abstract member AbstractProperty: int with get, set
    default this.AbstractProperty with get () = 0 and set (_: int) = ()
    abstract member AbstractIndexer: int -> int with get, set
    default this.AbstractIndexer with get (_: int) = 0 and set (_: int) (_: int) = ()
