///|
pub using @syntax {
  parse,
  parse_recovering,
  type Argument,
  type Config,
  type ConfigItem,
  type Diagnostic,
  type Directive,
  type HostBlock,
  type MatchBlock,
  type ParseError,
  type ParseResult,
  type SourceLocation,
  type SourceSpan,
}

///|
pub using @pattern {
  compile_pattern_list,
  host_matches,
  parse_match_predicate,
  parse_match_predicates,
  patterns_match,
  type MatchContext,
  type MatchPredicate,
  type PatternDecision,
  type PatternError,
  type PatternList,
}

///|
pub using @loader {
  load,
  trait FileSystem,
  type FileSystemError,
  type LoadDiagnostic,
  type LoadError,
  type LoadFailure,
  type LoadFailureKind,
  type LoadedConfig,
  type LoadOptions,
  type MemoryFileSystem,
  type MissingIncludePolicy,
  type SourceFile,
}

///|
pub using @resolve {
  resolve,
  resolve_explained,
  resolve_strict,
  type DirectiveSpec,
  type MergeKind,
  type ResolveContext,
  type ResolveError,
  type ResolvedConfig,
  type ResolvedValue,
  type ResolveOutcome,
  type TraceDecision,
  type TraceEvent,
  type ValueKind,
}