module Table(table, mapTable, listTable, tableUpdate, tableLookup, emptyTable, Table) where import Tree234 newtype Table a = T (Tree234 a) deriving (Eq, Ord,Show) emptyTable = T initTree234 tableLookup n j x (T t) = treeSearch n j (keyCmp x) t tableUpdate x (T t) = T (update' x t) update' x = treeAdd const keyCmp x mapTable f (T t) = T (treeMap f t) listTable (T t) = treeList t table xs = T (treeFromList const keyCmp xs) keyCmp (a, _) (b, _) lt eq gt = if a == b then eq else if a < b then lt else gt