1class Signature { 2 public parameters: ParameterSymbol[] = null; 3} 4 5function aEnclosesB(a: Symbol) { 6 return true; 7} 8 9class Symbol { 10 public bound: boolean; 11 public visible() { 12 var b: TypeSymbol; 13 return aEnclosesB(b); 14 } 15 16} 17class InferenceSymbol extends Symbol { 18} 19 20class ParameterSymbol extends InferenceSymbol { 21} 22 23class TypeSymbol extends InferenceSymbol { 24}