A type factory is what makes generic types work.
@override Function get typeFactory => <T>(f) => f<IgnoreEqualityBox<T>>();