Write an intersection operator, that joins on fields with the same names - use with rename to achieve normal join. Write a union operator that cats tables together into one table with the union of their columns and rows. How about a multi-way comm-like join - the first field has a 0 or 1 for each input table, indicating whether a particular row includes data from that table or not. This is perhaps the most general. - perhaps too hard to do a general n-way merge/join - better to do just 2 way? You can't sort a set of n tables in order for a n-way merge, because the join fields between different pairs might be different. Prove that using the RelTools library is too slow, or else use it (no premature optimisation!) Abstract the fields values -> columns idea in icr - and vice-versa? cjoin -> make it work with non-unique keys (i.e. do a cross product, ugh). remove tools that aren't useful (combine, uncombine?)