{"size": 2049, "ext": "scrbl", "max_stars_repo_path": "elle-doc/scribblings/core-forms/require-provide.scrbl", "max_stars_repo_name": "tail-reversion/elle", "max_stars_repo_stars_event_min_datetime": "2021-01-07T04:34:50.000Z", "max_stars_repo_stars_event_max_datetime": "2021-03-08T01:07:58.000Z", "max_issues_repo_path": "elle-doc/scribblings/core-forms/require-provide.scrbl", "max_issues_repo_name": "tail-reversion/elle", "max_issues_repo_issues_event_min_datetime": null, "max_issues_repo_issues_event_max_datetime": null, "max_forks_repo_path": "elle-doc/scribblings/core-forms/require-provide.scrbl", "max_forks_repo_name": "tail-reversion/elle", "max_forks_repo_forks_event_min_datetime": null, "max_forks_repo_forks_event_max_datetime": null}
{"max_stars_count": 7, "max_issues_count": null, "max_forks_count": null, "avg_line_length": 31.5230769231, "max_line_length": 157, "alphanum_fraction": 0.6295754026}
#lang scribble/manual

@(require "../util.rkt")


@title{Imports and Exports}

@defform/subs[(require maybe-phase module-path imports)
              ([maybe-phase (code:line)
                (code:line #:phase phase-level)]
               [module-path root-mod-path
                (code:line root-mod-path #:submodule submod-path)]
               [root-mod-path id
                str-path]
               [submod-path [id ...+]]
               [imports (code:line #:with-prefix id)
                #:exposing-all
                (code:line #:exposing maybe-rename-id ...+)
                (code:line #:hiding id ...+)]
               [maybe-rename-id id
                (code:line id #:as id)])]{

}

@defform[(require-for-syntax module-path imports)]{
 Equivalent to @racket[(require #:phase 1 module-path imports)].
}

@defform[(require-for-template module-path imports)]{
 Equivalent to @racket[(require #:phase -1 module-path imports)].
}

@defform[(require-for-label module-path imports)]{
 Imports the specified identifiers into the @emph{label phase}.
}


@defform[(provide maybe-phase maybe-rename-id ...+)]{
 Exports the specified identifiers, with indicated renamings, at the specified phase level. If no phase level is specified, the phase defaults to @racket[0].
}

@defform[(provide-for-syntax maybe-rename-id ...+)]{
 Equivalent to @racket[(provide #:phase 1 maybe-rename-id ...)].
}

@defform[(provide-for-template maybe-rename-id ...+)]{
 Equivalent to @racket[(provide #:phase -1 maybe-rename-id ...)].
}

@defform[(provide-for-label maybe-rename-id ...+)]{
 Exports the specified identifers, with indicated renamings, at the @emph{label phase}.
}


@section{Reexports}

@defform/subs[(reprovide maybe-phase module-path rexports)
              ([reexports #:exposing-all
                (code:line #:exposing maybe-rename-id ...+)
                (code:line #:hiding id ...+)])]{
 Reexports the specified identifies, with indicated renamings.

 The reexported identifiers are @emph{not} available within the body of the module.
}
