interface NotEmpty‹T› {
    data: T;
}
let x: NotEmpty‹number›;
let y: NotEmpty‹string›;

x = y;  // Error, because x and y are not compatible