# Local specialization of global function

**URL:** https://discourse.julialang.org/t/local-specialization-of-global-function/11730
**Category:** General Usage
**Created:** [June 17, 2018, 4:49am UTC](https://discourse.julialang.org/t/local-specialization-of-global-function/11730 "2018-06-17T04:49:00Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![mzaffalon](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mzaffalon/32/214168_2.png) [@mzaffalon](https://discourse.julialang.org/u/mzaffalon)
#### Post date: [June 17, 2018, 4:49am UTC](https://discourse.julialang.org/t/local-specialization-of-global-function/11730/1 "2018-06-17T04:49:00Z")

</div>

Is there a reason why one cannot specialize the global function `k` within the scope of another function? This is on Julia 0.6.3.

```julia
k(a, b) = a + b

function doesnotwork(B)
    k(a) = k(a, B)
    k(1)
end

function doeswork(B)
    f(a) = k(a, B)
    f(1)
end

function doeswork2(B)
    g(a, b) = a + b
    g(a) = g(a, B)
    g(1)
end

```

The error is

```julia
julia> doesnotwork(1)
ERROR: MethodError: no method matching (::#k#1{Int64})(::Int64, ::Int64)
Closest candidates are:
  k(::Any) ...

```

so it looks like the global `k` is masked by the local one.
