Add all widen,narrow,hashcons; Add equality check for optimization.
TODO: dMap(opt funcs for iteration, narrow proof), pow(helper func:iter)