blob: 39c969bb0a9eeecfb42de4fc2f3a5ad3ce23be2f [file] [log] [blame]
typedef Contravariant<T> = void Function(T);
typedef Invariant<T> = void Function<S extends T>();
typedef Covariant<T> = T Function();
typedef Bivariant<T> = T Function(T);
extension type ET_Contravariant<T>(void Function(T) f) {}
extension type ET_Invariant<T>(void Function<S extends T>() f) {}
extension type ET_Covariant<T>(T Function() f) {}
extension type ET_Bivariant<T>(T Function(T) f) {}
extension type ET_ContravariantAlias<T>(Contravariant<T> f) {}
extension type ET_InvariantAlias<T>(Invariant<T> f) {}
extension type ET_CovariantAlias<T>(Covariant<T> f) {}
extension type ET_BivariantAlias<T>(Bivariant<T> f) {}
extension type ET_ContravariantAlias1<T>(Contravariant<T> Function() f) {}
extension type ET_ContravariantAlias2<T>(void Function(Covariant<T>) f) {}
extension type ET_CovariantAlias1<T>(Covariant<T> Function() f) {}
extension type ET_CovariantAlias2<T>(void Function(Contravariant<T>) f) {}