#lang racket/base

(require auxiliary-macro-context)

(define-auxiliary-macro-context
  #:context-name pattern-expander
  #:prop-name prop:pattern-expander
  #:prop-predicate-name pattern-expander?
  #:prop-accessor-name pattern-expander-proc
  #:macro-definer-name define-pattern-expander
  #:introducer-parameter-name current-pattern-expander-introducer
  #:local-introduce-name syntax-local-pattern-expander-introduce
  #:expander-id-predicate-name pattern-expander-id?
  #:expander-transform-name pattern-expander-transform)

(provide (for-syntax
          prop:pattern-expander
          pattern-expander?
          pattern-expander-proc
          syntax-local-pattern-expander-introduce
          pattern-expander-id?
          pattern-expander-transform)
         define-pattern-expander)
