# Base and Standard Library

**URL:** https://discourse.julialang.org/t/base-and-standard-library/15272
**Category:** Internals & Design
**Created:** [September 21, 2018, 12:17pm UTC](https://discourse.julialang.org/t/base-and-standard-library/15272 "2018-09-21T12:17:09Z")
**Posts on this page:** 1
**Showing post:** 3

<div class="post-metadata">

### Author: ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)
#### Post date: [September 21, 2018, 12:54pm UTC](https://discourse.julialang.org/t/base-and-standard-library/15272/3 "2018-09-21T12:54:31Z")

</div>

ok, I understand that, thank you.  
I have searched in the [release notes](https://github.com/JuliaLang/julia/blob/master/HISTORY.md) but couldn’t find anything on a higher level of an explanation, only details on specific functions.

My confusion about this started with reading this question:

> [@Basic concept about multiple dispatch](https://discourse.julialang.org/t/basic-concept-about-multiple-dispatch/15270):
>
> hello, I found myself got confused about multiple dispatch. Take the function rand as an example: there’re a lot of method definitions across different files: in base/libc.jl: rand() = ccall(:rand, Cint, ()) rand(::Type{UInt32}) = ((rand() % UInt32) \<\< 16) ⊻ (rand() % UInt32) rand(::Type{Float64}) = rand(UInt32) / 2^32 and in stdlib/Random/src/Random.jl: rand(rng::AbstractRNG=GLOBAL\_RNG, ::Type{X}=Float64) where {X} = rand(rng, Sampler(rng, X, Val(1))) now I try to inspect which method defi…

Starting a new REPL (1.0):

```julia
julia> @which rand()
rand() in Random at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.0\Random\src\Random.jl:222

```

so I thought `rand()` is from the “Standard Library” because of the path "…\julia\ **stdlib** \v1.0\Random\src\Random.jl`.  
Looking into the documentation is confirming that.

Assuming that “The “Standard Library” are just regular packages” I would expect that there needs to be some ‘using’ statement to use something from the Standard Library, which is not the case for ‘rand()’.

So there are perhaps some implicit imports in the REPL.

In the mean time it has been somehow answered with

> [@Basic concept about multiple dispatch](https://discourse.julialang.org/t/basic-concept-about-multiple-dispatch/15270/11):
>
> Note that rand is porbably one of the more complicated functions with respect to it’s distribution in source files. The reason is that although most random number stuff is in the Random stdlib rand itself is considered to be so essential that it has been decided to make it available in base julia.

But still it seems to be not a real answer, more like “it is that way because it was decided to be that way”.

---

_[View the full topic](https://discourse.julialang.org/t/base-and-standard-library/15272)._
