# What things i can/cannot do within an extension?

**URL:** <https://discourse.julialang.org/t/what-things-i-can-cannot-do-within-an-extension/99474>\
**Category:** General Usage\
**Tags:** question, package-extensions\
**Created:** [May 27, 2023, 7:06am UTC](https://discourse.julialang.org/t/what-things-i-can-cannot-do-within-an-extension/99474 "2023-05-27T07:06:28Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![longemen3000](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/longemen3000/32/7298_2.png) [@longemen3000](https://discourse.julialang.org/u/longemen3000)\
**Post date:** [May 27, 2023, 7:06am UTC](https://discourse.julialang.org/t/what-things-i-can-cannot-do-within-an-extension/99474/1 "2023-05-27T07:06:28Z")

</div>

the main thing that you can do in an extension is extend methods:  
main pkg (A)

```julia
module A
  function f(x::Int) = "A.f on Int"
end

```

`ABExt`:

```julia
module ABExt
  function f(x::B.Thing) = "A.f on B.thing")
end

```

my main question is, what other things are allowed?

- docs on extended methods: yes
- ` __init__ ()` ?
- access to the extension variables ?
- new exports ?
