import haxe.Constraints; class Main2 { static function main() {} } class GenericTestVoid>)> { public function new(){} public function someTask():Void { var instance:T = getInstance("foo"); } @:generic private function getInstanceVoid>)>(arg:String):S { return new S(arg); } }