Haxeの構造的部分型(typedef)ってstaticでも使える

Haxeを使い始めて2年ぐらい経つけど、今更こういうコードが書けることに気が付いた。

typedef Foo = {
    function print(): Void;
}
class Hoge {
    public static function print() {
        trace("Hoge");
    }
}
var foo: Foo = Hoge;
foo.print();