Interested in improving your relationships? Try Nonviolent Communication
There is perhaps a connection between nonviolent communication and functional programming with immutable data structures. In both cases, change is effected through the construction of new information structures, rather than through forcing objects that already exist to be different from their present state.