Как написать универсальную функцию сравнения в Haxe (haxe3)

Я пытаюсь написать универсальную функцию сравнения (например, c strcmp) в Haxe3 для шаблона типа A, предполагая, что этот тип шаблона имеет оператор меньше чем или равен "<=".

Я видел в документации по Haxe3 (http://haxe.org/manual/haxe3/features) что вы можете сделать аналогичную работу, если хотите предположить, что тип шаблона имеет новую функцию:

@:generic static function foo(t:T) {
    trace(Type.typeof(t)); // TClass([class String]) / TClass([class Template])
    return new T("foo");
}

Итак, я попробовал ту же технику с "ле» функция:

class Main {
    @:generic static public function compare_(x:A,y:A): Int {
        if (x.le(y) && y.le(x)) return 0;
        else if (x.le(y)) return -1;
        else return 1;
    }


    static function main() {
        var a:MyInt  = new MyInt(1);
        var b:MyInt  = new MyInt(2);
        trace(compare_(a,b));
    }
}

class MyInt {
    var data:Int;
    public function new(i:Int) {this.data = i; }
    public function le(y:MyInt){return data 

Ответы на вопрос(1)

Ваш ответ на вопрос