public IEnumerable <string> GetExtensions()
        {
            var nativeExtensions   = NativeSignatures.Select(f => f.Extension);
            var overloadExtensions = Overloads.Select(f => f.Extension);

            return(nativeExtensions.Concat(overloadExtensions).Distinct());
        }
        public IEnumerable <string> GetCategories()
        {
            var nativeCategories   = NativeSignatures.SelectMany(f => f.Categories);
            var overloadCategories = Overloads.SelectMany(f => f.Categories);

            return(nativeCategories.Concat(overloadCategories).Distinct());
        }
        public FunctionSignature FindFunctionWithEntrypoint([NotNull] string entrypoint)
        {
            var nativeSignature = NativeSignatures.FirstOrDefault(f => f.NativeEntrypoint == entrypoint);

            if (nativeSignature is null)
            {
                return(Overloads.FirstOrDefault(f => f.NativeEntrypoint == entrypoint));
            }

            return(nativeSignature);
        }