merge now always returns a deeply immutable object

fixes #10