public override IList <Inferred> Resolve(Engine engine, Scope scope) { Inferred import = engine.Import(name.Names[0]); IList <Inferred> previous = null; if (import != null) { previous = Engine.MakeList(import); for (int i = 1; i < name.Names.Count; i++) { IList <Inferred> next = null; foreach (Inferred inf in previous) { IList <Inferred> n2 = inf.InferName(name.Names[i], engine); next = Engine.Union(next, n2); } previous = next; } } return(previous); }