using NubLang.Syntax; namespace NubLang.Modules; public class Module { private readonly List _definitions = []; public void Register(DefinitionSyntax definition) { _definitions.Add(definition); } public List Structs(bool includePrivate) { return _definitions .OfType() .Where(x => x.Exported || includePrivate) .ToList(); } public List StructTemplates(bool includePrivate) { return _definitions .OfType() .Where(x => x.Exported || includePrivate) .ToList(); } public List Functions(bool includePrivate) { return _definitions .OfType() .Where(x => x.Exported || includePrivate) .ToList(); } }