struct.ss
#lang scheme/base

(require scheme/contract)

(require (planet "pipeline.ss" ("untyped" "unlib.plt" 3)))

(require (file "base.ss")
         (file "arg.ss")
         (file "pattern.ss")
         (file "site.ss")
         (file "struct-private.ss"))

; Provide statements -----------------------------

; From arg:
(provide integer-arg
         real-arg
         string-arg
         symbol-arg
         rest-arg)

; From pattern:
(provide (rename-out [create-pattern make-pattern])
         pattern-match
         pattern->string)

; From site:
(provide (rename-out [create-site make-site])
         site-controller/url
         controller-url
         controller-defined?)

; From struct-private:
(provide (struct-out arg)
         (except-out (struct-out pattern) make-pattern)
         (struct-out rule)
         (except-out (struct-out controller) make-controller)
         (except-out (struct-out site) make-site))