varianceReferences.ts(3,32): error TS2637: Variance annotations are only supported in type aliases for object, function, constructor, and mapped types.
varianceReferences.ts(9,1): error TS2322: Type '1 | 2' is not assignable to type '1'.
  Type '2' is not assignable to type '1'.
varianceReferences.ts(14,28): error TS2637: Variance annotations are only supported in type aliases for object, function, constructor, and mapped types.
varianceReferences.ts(19,1): error TS2322: Type '1 | 2' is not assignable to type '1'.
  Type '2' is not assignable to type '1'.
varianceReferences.ts(26,32): error TS2637: Variance annotations are only supported in type aliases for object, function, constructor, and mapped types.
varianceReferences.ts(31,1): error TS2322: Type '1 | 2' is not assignable to type '1'.
  Type '2' is not assignable to type '1'.
varianceReferences.ts(38,20): error TS2637: Variance annotations are only supported in type aliases for object, function, constructor, and mapped types.
varianceReferences.ts(43,1): error TS2322: Type 'VarianceShape<1 | 2>' is not assignable to type 'VarianceShape<1>'.
  Type '1 | 2' is not assignable to type '1'.
    Type '2' is not assignable to type '1'.
varianceReferences.ts(53,24): error TS2637: Variance annotations are only supported in type aliases for object, function, constructor, and mapped types.
varianceReferences.ts(58,1): error TS2322: Type 'VarianceDeepShape<1 | 2>' is not assignable to type 'VarianceDeepShape<1>'.
  Type '1 | 2' is not assignable to type '1'.
    Type '2' is not assignable to type '1'.


==== varianceReferences.ts (10 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>;
    
    declare let vcn1: VarianceConstrainedNumber<1>;
    declare let vcn12: VarianceConstrainedNumber<1 | 2>;
    
    vcn1 = vcn12;
    ~~~~
!!! error TS2322: Type '1 | 2' is not assignable to type '1'.
!!! error TS2322:   Type '2' is not assignable to type '1'.
    vcn12 = vcn1;
    
    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.
    
    declare let vu1: VarianceUnconstrained<1>;
    declare let vu12: VarianceUnconstrained<1 | 2>;
    
    vu1 = vu12;
    ~~~
!!! error TS2322: Type '1 | 2' is not assignable to type '1'.
!!! error TS2322:   Type '2' is not assignable to type '1'.
    vu12 = vu1;
    
    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.
    
    declare let vdu1: VarianceDeepUnconstrained<1>;
    declare let vdu12: VarianceDeepUnconstrained<1 | 2>;
    
    vdu1 = vdu12;
    ~~~~
!!! error TS2322: Type '1 | 2' is not assignable to type '1'.
!!! error TS2322:   Type '2' is not assignable to type '1'.
    vdu12 = vdu1;
    
    interface Shape<Value> {
      value: Value;
    }
    
    type VarianceShape<in out Value> = Shape<Value>;
                       ~~~~~~~~~~~~
!!! error TS2637: Variance annotations are only supported in type aliases for object, function, constructor, and mapped types.
    
    declare let vs1: VarianceShape<1>;
    declare let vs12: VarianceShape<1 | 2>;
    
    vs1 = vs12;
    ~~~
!!! error TS2322: Type 'VarianceShape<1 | 2>' is not assignable to type 'VarianceShape<1>'.
!!! error TS2322:   Type '1 | 2' is not assignable to type '1'.
!!! error TS2322:     Type '2' is not assignable to type '1'.
    vs12 = vs1;
    
    interface Level3of3Shape<Value> {
      value: Value;
    }
    
    type Level2of3Shape<Value> = Level3of3Shape<Value>;
    type Level1of3Shape<Value> = Level2of3Shape<Value>;
    
    type VarianceDeepShape<in out Value> = Level1of3Shape<Value>;
                           ~~~~~~~~~~~~
!!! error TS2637: Variance annotations are only supported in type aliases for object, function, constructor, and mapped types.
    
    declare let vds1: VarianceDeepShape<1>;
    declare let vds12: VarianceDeepShape<1 | 2>;
    
    vds1 = vds12;
    ~~~~
!!! error TS2322: Type 'VarianceDeepShape<1 | 2>' is not assignable to type 'VarianceDeepShape<1>'.
!!! error TS2322:   Type '1 | 2' is not assignable to type '1'.
!!! error TS2322:     Type '2' is not assignable to type '1'.
    vds12 = vds1;
    