#lang scribble/doc @(require scribble/manual scribble/eval "../planet.ss" "eval.ss") @(require (for-label scheme (this-package-in scheme))) @title[#:style 'quiet #:tag "require-provide"]{Require and Provide} @defmodule/this-package[require-provide] This module provides tools for managing the imports and exports of modules. @defform[(require/provide module-path ...)]{ Re-exports all bindings provided by each @scheme[module-path]. Equivalent to: @schemeblock[ (require module-path ...) (provide (all-from-out module-path ...)) ] } @defform[(quote-require require-spec ...)]{ Produces the names exported by the @scheme[require-spec]s as a list of symbols. @examples[ #:eval (evaluator) (quote-require scheme/bool scheme/function) ] } @defform[(local-require require-spec ...)]{ This form performs a require into a local definition context. It achieves this by lifting a @scheme[#%require] form to the top level and introducing the bindings locally with rename transformers. For many purposes this is the same as a regular @scheme[require]; however, only bindings for the current phase are made available, and all names are introduced as syntax bindings even if the exported identifiers included value bindings. } @defform[(do-local-require rename require-spec ...)]{ This form generalizes @scheme[do-local-require] to use an arbitrary macro @scheme[rename] (of the same syntactic form as @scheme[define-renamings]) to introduce local bindings. } This module also provides @scheme[define-planet-package] and @scheme[this-package-in] from @schememodname/this-package[planet].