Ticket #18 (new task)
Opened 4 years ago
|Reported by:||kowey||Owned by:||somebody|
OK, it doesn't have to be a monad. But I want to have some sort of abstraction that guarantees that when I do unification on something, the results from previous unification will be automatically propagated to that thing. Seems like it should be fairly straightforward. You could just model this as a state monad for example, and have the unification function get/put the substitutions state.
What may be annoying is having to write a monad transformer and slip it into our current MT stack.
The goal is to have something that makes our code easier to write, and less error-prone, while also staying cheap (we shouldn't be doing any needless traversals).