varianceReferences.ts(3,32): error TS2637: Variance annotations are only supported in type aliases for object, function, constructor, and mapped types.
varianceReferences.ts(8,28): error TS2637: Variance annotations are only supported in type aliases for object, function, constructor, and mapped types.
varianceReferences.ts(14,32): error TS2637: Variance annotations are only supported in type aliases for object, function, constructor, and mapped types.


==== varianceReferences.ts (3 errors) ====
    type NumericConstraint<Value extends number> = Value;
    
    type VarianceConstrainedNumber<in out Value extends number> =
                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2637: Variance annotations are only supported in type aliases for object, function, constructor, and mapped types.
      NumericConstraint<Value>;
    
    type Unconstrained<Value> = Value;
    
    type VarianceUnconstrained<in out Value> = Unconstrained<Value>;
                               ~~~~~~~~~~~~
!!! error TS2637: Variance annotations are only supported in type aliases for object, function, constructor, and mapped types.
    
    type Level3of3Unconstrained<Value> = Value;
    type Level2of3Unconstrained<Value> = Level3of3Unconstrained<Value>;
    type Level1of3Unconstrained<Value> = Level2of3Unconstrained<Value>;
    
    type VarianceDeepUnconstrained<in out Value> = Level1of3Unconstrained<Value>;
                                   ~~~~~~~~~~~~
!!! error TS2637: Variance annotations are only supported in type aliases for object, function, constructor, and mapped types.
    
    interface Shape<Value> {
      value: Value;
    }
    
    type VarianceShape<in out Value> = Shape<Value>;
    
    interface Level3of3Shape<Value> {
      value: Value;
    }
    
    type Level2of3Shape<Value> = Level3of3Shape<Value>;
    type Level1of3Shape<Value> = Level2of3Shape<Value>;
    
    type VarianceDeepShape<in out Value> = Level1of3Shape<Value>;
    