class Main { static function main() { var map = foo(null); trace(map); } static function foo(m:NativeStringMap) return m.toMap(); } abstract NativeStringMap(Impl) { @:to public function toMap():Map { return new Map(); } } typedef Impl = cs.system.collections.generic.IDictionary_2;