# \[ANN\] StaticModules.jl

**URL:** <https://discourse.julialang.org/t/ann-staticmodules-jl/48010>\
**Category:** Package Announcements\
**Created:** [October 9, 2020, 1:15am UTC](https://discourse.julialang.org/t/ann-staticmodules-jl/48010 "2020-10-09T01:15:30Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

**Author:** ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)\
**Post date:** [October 9, 2020, 8:33pm UTC](https://discourse.julialang.org/t/ann-staticmodules-jl/48010/5 "2020-10-09T20:33:56Z")

</div>

> [@ianfiske](#):
>
> What do you think of supporting `@with` on multiple static modules and/or objects-with-getproperty. Like this perhaps?

> [@Mason](#):
>
> If everything is inferrable, it should be possible to eliminate these `if/else` blocks at compile time, but the more names in the `@with` the higher the chances are that the compiler gives up.

Just a note with regards to DataFrames, unfortunately this isn’t possible to make performant with DataFrames. See [this post](https://discourse.julialang.org/t/understanding-the-performance-costs-of-generating-functions-on-the-fly/47990/10) outlining a similar feature yesterday.

Since the property names of a dataframe aren’t inferrable, any expression whose final form depends on the types in an `if/else` way won’t have all the optimizations available that normal functions have. If you don’t want special designations for columns, i.e. `df.x` referenced by the `Symbol` `:x` then you would need to treat every “variable” in the expression as a column. This can get complicated very quickly.

---

_[View the full topic](https://discourse.julialang.org/t/ann-staticmodules-jl/48010)._
