Sat Aug 18 10:09:04 EDT 2018
How to express this? It is a set of integer equations, but using a
solver seems overkill.
This is a core issue. In general I want to have equations between
types, not functions.
Here's a simple solution:
- for each binding, propagate to output and inputs until there is no
- another way, because these are trees the following terminates: pick
a node with unknown type and re-root the tree, going downward.
But actually I'm too tired to think now so let's try a library.
This should have everything.
Actually I already have a unification algorithm: the netlist
execution. No it's only half way: i/o function, no arbitrary
EDIT: monad-unify doesn't build:
Setup: Encountered missing dependencies:
base >=4.5 && <4.8
What' I'm trying to do is simpler because of the way that register
types are always defined explicitly in the code using functional
dependencies. So I should be able to just push it through that way.