Thanks, Patrick. I'm disappointed, though, that no one has actually responded to my question. It wasn't how to solve KenKen. It was how best to deal with quasi-mutable data structures.
You gave an example about how your data structure look like, but I haven't seen an example case of "quasi-mutating" an expression of such data structures. If you give a concrete example, people can suggest better ways of doing it, it there are any.