///|
using @contract {
  type ImportDefWithOffset,
  type PreprocessOutput,
  type ShaderDefValue,
}

///|
using @import_substitution {type WgslImportSubstitutionState}

///|
using @lex {
  spaces,
  trim_trailing_semicolons,
  utf8_byte_length,
  wgsl_line_break_width,
  wgsl_line_text_end,
}

///|
using @directive {
  type WgslPreprocessorDirective,
  type WgslDirectiveScanItem,
  type WgslShaderDefOperator,
  parse_wgsl_directive_identifier,
  parse_wgsl_directive_scan_items,
  parse_wgsl_shader_def_comparison,
  parse_wgsl_shader_def_references,
  parse_wgsl_template_const_references,
  wgsl_required_space_word_tail,
  wgsl_effective_directive_kind,
  wgsl_effective_directive_tail,
  wgsl_text_starts_with_tokenized_space,
}