# Why hasn't LinearAlgebra been removed from the default sysimage?

**URL:** <https://discourse.julialang.org/t/why-hasnt-linearalgebra-been-removed-from-the-default-sysimage/126395>\
**Category:** General Usage\
**Created:** [February 26, 2025, 9:05pm UTC](https://discourse.julialang.org/t/why-hasnt-linearalgebra-been-removed-from-the-default-sysimage/126395 "2025-02-26T21:05:42Z")\
**Posts on this page:** 1\
**Showing post:** 12

<div class="post-metadata">

**Author:** ![goerz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/goerz/32/3269_2.png) [@goerz](https://discourse.julialang.org/u/goerz)\
**Post date:** [February 27, 2025, 5:00pm UTC](https://discourse.julialang.org/t/why-hasnt-linearalgebra-been-removed-from-the-default-sysimage/126395/12 "2025-02-27T17:00:32Z")

</div>

> [@adienes](#):
>
> “type piracy” means that some package adds a method to a function on types it does not own

That is not true. Type piracy means that a package adds a method to a function **it doesn’t own** for types it doesn’t own. If the package owns the function or any of the types of the arguments, that’s not type piracy.

> [@GHTaarn](#):
>
> Using this logic, an extension to `DataFrames` would not be able to define a new method for `Plots.plot` on the `DataFrame` type without committing type piracy. This would severely limit the usefulness of extensions.

`DataFrames` owns `DataFrame`, so defining `Plots.plot` (which it doesn’t own) is not type piracy. As you point out, multiple dispatch wouldn’t make much sense if you couldn’t define new methods for Base (or other package) functions for new types.

With extension modules, there is no rule for which package should define extensions, i.e., whether a method for `Plots.plot` for `DataFrame` types should be an extension in the `Plots` or in the `DataFrame` package. This is something package maintainers have to agree on. There might be a heuristic that smaller packages should add extension modules for bigger / more general (“base”) packages, not the other way around. But that’s not a hard rule.

`LinearAlgebra` probably does have instances of type piracy w.r.t `Base`, so some parts of `LinearAlgebra` will have to be moved to `Base` to fix that.

---

_[View the full topic](https://discourse.julialang.org/t/why-hasnt-linearalgebra-been-removed-from-the-default-sysimage/126395)._
