public override IAnalysisSet Call(Node node, AnalysisUnit unit, IAnalysisSet[] args, NameExpression[] keywordArgNames) { var newArgs = _args.Take(_args.Length - _keywordArgNames.Length) .Concat(args.Take(args.Length - keywordArgNames.Length)) .Concat(_args.Skip(_args.Length - _keywordArgNames.Length)) .Concat(args.Skip(args.Length - keywordArgNames.Length)) .ToArray(); var newKwArgs = _keywordArgNames.Concat(keywordArgNames).ToArray(); return _function.Call(node, unit, newArgs, newKwArgs); }