AlgebraicJulia / DiagrammaticEquations.jl

MIT License
9 stars 1 forks source link

Move away from symbols #66

Open olynch opened 1 month ago

olynch commented 1 month ago

Currently, DiagrammaticEquations heavily depends on using symbols for:

  1. Sorts
  2. Functions
  3. Variables

Each of these can be transitioned to a more expressive data structure.

  1. For sorts, we should use elements of an algebraic data type, as in #64. These can be serialized via intertypes.
  2. For functions, we should use real Julia functions, which are overloaded for (Sort...) -> Sort \/ Error for type inference purposes. These can be serialized as fully-qualified module + name.
  3. For variables, we should use Paths from Dtries. These can be serialized as vectors of symbols.

This transition is orthogonal to e-graphs/symbolicutils/decaexprs/decapodeacsets; all of these can transition away from symbols.