# Cannot use size(::Array{Int, 2}): ERROR: LoadError: UndefRefError: access to undefined reference

**URL:** https://discourse.julialang.org/t/cannot-use-size-array-int-2-error-loaderror-undefreferror-access-to-undefined-reference/4138
**Category:** General Usage
**Tags:** question
**Created:** [June 7, 2017, 2:34pm UTC](https://discourse.julialang.org/t/cannot-use-size-array-int-2-error-loaderror-undefreferror-access-to-undefined-reference/4138 "2017-06-07T14:34:21Z")
**Posts on this page:** 1
**Showing post:** 25

<div class="post-metadata">

### Author: ![Stephen\_Vavasis](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stephen_vavasis/32/3389_2.png) [@Stephen\_Vavasis](https://discourse.julialang.org/u/Stephen_Vavasis)
#### Post date: [June 9, 2017, 1:28pm UTC](https://discourse.julialang.org/t/cannot-use-size-array-int-2-error-loaderror-undefreferror-access-to-undefined-reference/4138/25 "2017-06-09T13:28:25Z")

</div>

There is a straightforward workaround to this objection. Make a list of the 100 or so most common functions in `Base` such as the operators (`+`,`-`,`:`,etc), common functions like `size`, `length`, `collect`, `in`, etc., and require some special syntax to redefine this fixed set of functions if the redefinition appears inside another function definition. The list can stay fixed even as `Base` grows.

Old-timers like me can recall that early versions of Fortran were widely mocked because programmer error could lead to the possibility of redefining constants (like `2.1`). Julia should not fall into the same trap!

---

_[View the full topic](https://discourse.julialang.org/t/cannot-use-size-array-int-2-error-loaderror-undefreferror-access-to-undefined-reference/4138)._
