///
////interface Collection {
//// length: number;
//// add(x: T): void;
//// remove(x: T): boolean;
////}
////interface Combinators {
//// forEach(c: Collection, f: (x: T) => any): void;
//// forEach(c: Collection, f: (x: T) => U): void;
////}
////var c2: Collection;
////var c3: Collection>;
////var _: Combinators;
////var r = _.forEach(c2, (x) => { return x./*1*/toFixed() });
////var r2 = _.forEach(c3, (x) => { return x./*2*/toFixed() });
/////*3*/
const verifyCompletions = () =>
verify.completions(
{ marker: "1", includes: "toFixed" },
{ marker: "2", exact: ["length", "add", "remove"] },
);
verifyCompletions();
goTo.marker('3');
edit.insert(`class A {
foo() { }
}
var c4: Collection;
var r3 = _.forEach(c4, (x) => { return x.foo() });
`);
verifyCompletions();