class Promise_Test<T>{ public function new() { } public function then<A>(f : T->A) { } public static function test() { new Promise_Test<Void>() .then(function() { } ); }}