# \[ANN\] SymbolicUtils.jl -- Groundwork for a symbolic ecosystem in Julia

**URL:** https://discourse.julialang.org/t/ann-symbolicutils-jl-groundwork-for-a-symbolic-ecosystem-in-julia/38455
**Category:** Package Announcements
**Tags:** announcement
**Created:** [April 29, 2020, 10:56pm UTC](https://discourse.julialang.org/t/ann-symbolicutils-jl-groundwork-for-a-symbolic-ecosystem-in-julia/38455 "2020-04-29T22:56:36Z")
**Posts on this page:** 1
**Showing post:** 13

<div class="post-metadata">

### Author: ![Mason](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mason/32/2423_2.png) [@Mason](https://discourse.julialang.org/u/Mason)
#### Post date: [April 30, 2020, 4:01am UTC](https://discourse.julialang.org/t/ann-symbolicutils-jl-groundwork-for-a-symbolic-ecosystem-in-julia/38455/13 "2020-04-30T04:01:54Z")

</div>

> [@favba](#):
>
> I find it strange that the symbol is not a subtype of `Number` .

This is something we agonized over quite a bit. I think `Sym <: Number` is just plain not good enough. We want to be able to support symbolic `Float64`s, `Matrix`s, `String`s or really _any_ datatype. One approach would be to just create a billion `SymbolicX` types which subtype `X`, but that has many downsides.

What we really want is `Sym{T} <: T`, but that’s not supported by Julia’s semantics, however it can actually be done inside an IRTools.jl pass like I show in [this proof of concept](https://github.com/JuliaSymbolics/SymbolicUtils.jl/issues/16#issuecomment-618577041). I plan to investigate this approach further.

One thing I feel somewhat strongly about is that this package can’t just be for math on numbers. It should have wider applicability than that. Mathematica has many flaws, but I think it demonstrates the value of symbolic programming in all sorts of domains outside simple math.

---

_[View the full topic](https://discourse.julialang.org/t/ann-symbolicutils-jl-groundwork-for-a-symbolic-ecosystem-in-julia/38455)._
