# Nested using

**URL:** <https://discourse.julialang.org/t/nested-using/109788>\
**Category:** General Usage\
**Tags:** question\
**Created:** [February 6, 2024, 9:35am UTC](https://discourse.julialang.org/t/nested-using/109788 "2024-02-06T09:35:59Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![jiang\_ming\_zhang](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jiang_ming_zhang/32/204063_2.png) [@jiang\_ming\_zhang](https://discourse.julialang.org/u/jiang_ming_zhang)\
**Post date:** [February 6, 2024, 9:35am UTC](https://discourse.julialang.org/t/nested-using/109788/1 "2024-02-06T09:35:59Z")

</div>

I see codes like

```julia
using pkg1 
using pkg1.mod1
using pkg1.mod1: fun1, fun2 

```

Why is a single ‘using pkg1’ not enough?

---

<div class="post-metadata">

**Author:** ![barucden](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/barucden/32/26154_2.png) [@barucden](https://discourse.julialang.org/u/barucden)\
**Post date:** [February 6, 2024, 9:59am UTC](https://discourse.julialang.org/t/nested-using/109788/2 "2024-02-06T09:59:15Z")

</div>

Consider package `A` that looks like this:

```julia
module A
    export f_A

    f_A() = 1

    module B
        export f_B

        f_B() = 2
        g_B() = 3
   end
end

```

Then:

```julia
using A
f_A() # returns 1
f_B() # not defined
g_B() # not defined

A.B.g_B() # returns 2
A.B.g_B() # returns 3

using A.B
f_B() # returns 2
g_B() # not defined

B.g_B() # returns 3

using A.B: g_B
g_B() # returns 3

```
