Repository: JuliaLang/julia
File: base/docs/basedocs.jl (Julia)

Code before:

For help on a specific function or macro, type `?` followed
by its name, e.g. `?cos`, or `?@time`, and press enter.
Type `;` to enter shell mode, `]` to enter package mode.

To exit the interactive session, type `CTRL-D` (press the
control key together with the `d` key), or type `exit()`.
"""
kw"help", kw"Julia", kw"julia", kw""

"""
    using

`using Foo` will load the module or package `Foo` and make its [`export`](@ref)ed names
available for direct use. Names can also be used via dot syntax (e.g. `Foo.foo` to access
the name `foo`), whether they are `export`ed or not.
See the [manual section about modules](@ref modules) for details.

!!! note
    Doing `using Foo` in packages or code that you want to keep working with
    updated dependencies is not recommended. The reason for this is if another
    dependency starts to export one of the same names as `Foo` the code will
    error due to an ambiguity in which package the name should be taken from.
    Instead, explicitly list what names you want to use from Foo, for example:
    `using Foo: Foo, parsefile, readfile` to get access bring `Foo` and two
    functions `parsefile` and `readfile` into scope.
"""
kw"using"

"""
    import

`import Foo` will load the module or package `Foo`.
Names from the imported `Foo` module can be accessed with dot syntax
(e.g. `Foo.foo` to access the name `foo`).
See the [manual section about modules](@ref modules) for details.
"""
kw"import"

"""
    export

`export` is used within modules to tell Julia which names should be
made available to the user. For example: `export foo` makes the name
`foo` available when [`using`](@ref) the module.
See the [manual section about modules](@ref modules) for details.
"""
kw"export"

"""
    public

Review comment (suggestion):
Let's unify some of the language from https://github.com/JuliaLang/julia/pull/53428 into the docstring (albeit more tersely):

```suggestion
!!! note
    Qualifying the names being used as in `using Foo: Foo, f` is
    recommended over plain `using Foo` for released packages and other
    code which is meant to be re-used in the future with updated dependencies
    or future versions of julia. When two modules or packages export the same name
    and both are loaded with `using` (without the explicit list), it is an error to use
    that name without qualification. Using an explicit list ensures that new exports
    in updated dependencies do not break the forward compatibility of the code.
```

Code after:

For help on a specific function or macro, type `?` followed
by its name, e.g. `?cos`, or `?@time`, and press enter.
Type `;` to enter shell mode, `]` to enter package mode.

To exit the interactive session, type `CTRL-D` (press the
control key together with the `d` key), or type `exit()`.
"""
kw"help", kw"Julia", kw"julia", kw""

"""
    using

`using Foo` will load the module or package `Foo` and make its [`export`](@ref)ed names
available for direct use. Names can also be used via dot syntax (e.g. `Foo.foo` to access
the name `foo`), whether they are `export`ed or not.
See the [manual section about modules](@ref modules) for details.

!!! note
    When two or more packages/modules export a name and that name does not refer to the
    same thing in each of the packages, and the packages are loaded via `using` without
    an explicit list of names, it is an error to reference that name without qualification.
    It is thus recommended that code intended to be forward-compatible with future versions
    of its dependencies and of Julia, e.g., code in released packages, list the names it
    uses from each loaded package, e.g., `using Foo: Foo, f` rather than `using Foo`.
"""
kw"using"

"""
    import

`import Foo` will load the module or package `Foo`.
Names from the imported `Foo` module can be accessed with dot syntax
(e.g. `Foo.foo` to access the name `foo`).
See the [manual section about modules](@ref modules) for details.
"""
kw"import"

"""
    export

`export` is used within modules to tell Julia which names should be
made available to the user. For example: `export foo` makes the name
`foo` available when [`using`](@ref) the module.
See the [manual section about modules](@ref modules) for details.
"""
kw"export"

"""
    public