# \[ANN\] MonkeyLang.jl

**URL:** https://discourse.julialang.org/t/ann-monkeylang-jl/74664
**Category:** Package Announcements
**Tags:** repl, parser
**Created:** [January 15, 2022, 12:29pm UTC](https://discourse.julialang.org/t/ann-monkeylang-jl/74664 "2022-01-15T12:29:53Z")
**Posts on this page:** 1
**Showing post:** 22

<div class="post-metadata">

### Author: ![lucifer1004](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lucifer1004/32/22311_2.png) [@lucifer1004](https://discourse.julialang.org/u/lucifer1004)
#### Post date: [January 29, 2022, 4:52pm UTC](https://discourse.julialang.org/t/ann-monkeylang-jl/74664/22 "2022-01-29T16:52:12Z")

</div>

Yes!

I have also learned a lot from you and @c42f. Thank you so much.

What I wonder now is why `Ref{Int}` is so slow here.

Found the answer in another post.

> [@Reference to Objects Very Slow](https://discourse.julialang.org/t/reference-to-objects-very-slow/963/2):
>
> `Ref` is an abstract type so you’ll get terrible performance when using it as the type of a slot.

After specifying the `Ref{Int}` fields as `Base.RefValue{Int}`, I got almost the same performance gains (but still slower than `mutable struct` + `Int`).

```julia
=== Using compiler ===
  10.557 s (583631370 allocations: 19.09 GiB)

```

---

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