the diff is unfortunately really noisy because functorising certain stuff has really confused the algorithm.
three main things:
- lowering atoms where needed in substitutions (which requires
collecting
allowedindices viastrip) - small bug fix in pattern match in
unifyTerm - functorising the other HOTerm stuff
on functorising: i chose not to destructively constrain Atom
so that the Atom arg doesn't need to be passed around everywhere. not
sure if that's best practice, happy to add it back as a destructive
constraint if preferred.
currently, substitution is still broken in the UI. i expect that there's
a place a reduce needs to be added, just not sure where.