///
////interface Collection {
//// length: number;
//// add(x: T): void;
//// remove(x: T): boolean;
////}
////interface Combinators {
//// map(c: Collection, f: (x: T) => U): Collection;
//// map(c: Collection, f: (x: T) => any): Collection;
////}
////class A {
//// foo() { return this; }
////}
////class B {
//// foo(x: T): T { return null; }
////}
////var c2: Collection;
////var c3: Collection>;
////var c4: Collection;
////var c5: Collection>;
////var _: Combinators;
////var rf1 = (x: number) => { return x.toFixed() };
////var rf2 = (x: Collection) => { return x.length };
////var rf3 = (x: A) => { return x.foo() };
////var /*9*/r1a = _.map(c2, (/*1*/x) => { return x.toFixed() });
////var /*10*/r1b = _.map(c2, rf1);
////var /*11*/r2a = _.map(c3, (/*2*/x: Collection) => { return x.length });
////var /*12*/r2b = _.map(c3, rf2);
////var /*13*/r3a = _.map(c4, (/*3*/x) => { return x.foo() });
////var /*14*/r3b = _.map(c4, rf3);
////var /*15*/r4a = _.map(c5, (/*4*/x) => { return x.foo(1) });
////var /*17*/r5a = _.map(c2, (/*5*/x) => { return x.toFixed() });
////var /*18*/r5b = _.map(c2, rf1);
////var /*19*/r6a = _.map, number>(/*6*/c3, (x: Collection) => { return x.length });
////var /*20*/r6b = _.map, number>(c3, rf2);
////var /*21*/r7a = _.map(c4, (/*7*/x: A) => { return x.foo() });
////var /*22*/r7b = _.map(c4, rf3);
////var /*23*/r8a = _.map*error1*/B/*error2*/, string>(c5, (/*8*/x) => { return x.foo() });
// this line triggers a semantic/syntactic error check, remove line when 788570 is fixed
edit.insert('');
goTo.marker('1');
verify.quickInfoIs('(parameter) x: number');
goTo.marker('2');
verify.quickInfoIs('(parameter) x: Collection');
goTo.marker('3');
verify.quickInfoIs('(parameter) x: A');
goTo.marker('4');
verify.quickInfoIs('(parameter) x: B');
goTo.marker('5');
verify.quickInfoIs('(parameter) x: number');
goTo.marker('6');
verify.quickInfoIs('(var) c3: Collection>');
goTo.marker('7');
verify.quickInfoIs('(parameter) x: A');
goTo.marker('8');
verify.quickInfoIs('(parameter) x: any'); // Specialized to any because no type argument was specified
goTo.marker('9');
verify.quickInfoIs('(var) r1a: Collection');
goTo.marker('10');
verify.quickInfoIs('(var) r1b: Collection');
goTo.marker('11');
verify.quickInfoIs('(var) r2a: Collection');
goTo.marker('12');
verify.quickInfoIs('(var) r2b: Collection');
goTo.marker('13');
verify.quickInfoIs('(var) r3a: Collection');
goTo.marker('14');
verify.quickInfoIs('(var) r3b: Collection');
goTo.marker('15');
verify.quickInfoIs('(var) r4a: Collection');
goTo.marker('17');
verify.quickInfoIs('(var) r5a: Collection');
goTo.marker('18');
verify.quickInfoIs('(var) r5b: Collection');
goTo.marker('19');
verify.quickInfoIs('(var) r6a: Collection');
goTo.marker('20');
verify.quickInfoIs('(var) r6b: Collection');
goTo.marker('21');
verify.quickInfoIs('(var) r7a: Collection');
goTo.marker('22');
verify.quickInfoIs('(var) r7b: Collection');
goTo.marker('23');
verify.quickInfoIs('(var) r8a: Collection');
verify.errorExistsBetweenMarkers('error1', 'error2');