Figure out how to make all parameters symbolic [ in particular dimensions objects ]
As far as I can see, we have 5 types of parameters: int, float-or-int, bool, tuple-or-list, str; str is currently only used to represent dimensions objects. Currently only the first two i.e. numerics are turned into sympy Symbols.
We can probably turn booleans into symbols without caring too much about it; sympy's error checking will probably throw an error if we make a mistake.
tuple-or-list should turn into a Sympy Array. Do we need to know the size? I think SplitEdge is the only place this is used. Edit: Also offsets / origins, but we could split that into dx / dy.
What about dimensions objects? We want them to be Parameterized, but then how do we do math on individual parameters? Maybe we can get away with having a dimensions object be a sympy Array too, and then some way of mapping the parameters to array indices that we can use in Functions.