unify-variables ( in-diff in-ok? in-var out-diff out-ok? out-var vars -- ? )


Vocabulary
stack-checker.row-polymorphism

Inputs
in-diffan object
in-ok?an object
in-varan object
out-diffan object
out-ok?an object
out-varan object
varsan object


Outputs
?an object


Definition


:: unify-variables
( in-diff in-ok? in-var out-diff out-ok? out-var vars -- ? )
{ [ in-ok? ] [ out-ok? ] [ in-diff out-diff = ] } 0&& dup [
in-var [ in-diff swap vars adjust-variable ] when*
out-var [ out-diff swap vars adjust-variable ] when*
] when ;