private BoundInterfaceType BindInterfaceDeclaration(InterfaceTypeSyntax declaration, Symbol parent)
{
var interfaceSymbol = new InterfaceSymbol(declaration, parent);
AddSymbol(interfaceSymbol, declaration.Name.Span);
var methods = new List<BoundFunction>();
var interfaceBinder = new Binder(_sharedBinderState, this);
foreach (var memberSyntax in declaration.Methods)
methods.Add(interfaceBinder.Bind(memberSyntax, x => interfaceBinder.BindFunctionDeclaration(x, interfaceSymbol)));
foreach (var member in interfaceBinder.LocalSymbols.Values.SelectMany(x => x))
interfaceSymbol.AddMember(member);
return new BoundInterfaceType(interfaceSymbol, methods.ToImmutableArray());
}