[<<][rtl][>>][..]
Sat Aug 18 10:09:04 EDT 2018

Unification

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
  more change

- 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.
http://hackage.haskell.org/package/monad-unify-0.2.2/docs/Control-Monad-Unify.html

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

EDIT: monad-unify doesn't build:
Configuring monad-unify-0.2.2...
Setup: Encountered missing dependencies:
base >=4.5 && <4.8


http://dev.stephendiehl.com/fun/006_hindley_milner.html


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.





[Reply][About]
[<<][rtl][>>][..]