以下のようなコードで変数に保存したインスタンスメソッドを実行したいのですが、コンパイルエラーになります。こういう場合どのように実行すればいいのでしょうか。

class Sample {
    let myMethod = sampleMethod

    func sampleMethod() {
    }

    func callMethod() {
        // myMethodを実行したいがコンパイルエラーになる
        myMethod()
    }
}

また、myMethodの型は「(Sample) -> () -> ()」になっていました。
() -> ()のように括弧2つをアローで繋ぐのがクロージャーということは知っているのですが、上記のように括弧3つアロー2つはどのような型を意味しているのでしょうか。


追記1

myMethod()のエラーメッセージを見ると、Sample型の引数が必要と出ていたので、myMethod(self)としてみたのですが、この場合は「Expression resolves to an unsused function」というエラーが発生します。


追記2

セレクターを使えば似たことはできました。ただ、NSObjectを継承する必要があります。

class Sample: NSObject {
    let myMethod = #selector(Sample.sampleMethod)

    func sampleMethod() {
        print("wanwan")
    }
    func callMethod() {
        self.perform(myMethod)
    }
}