worklog
introduce rows, and some helper functions on them

- this breaks type checking with some undefineds
implement unifiers as lists instead of function composition
row substitution