Ticket #18 (new task)

Opened 5 years ago

unification monad

Reported by: kowey Owned by: somebody
Priority: major Milestone:
Component: core Version:
Keywords: Cc:

Description

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).

Note: See TracTickets for help on using tickets.