Strict Merge
Deep merge two objects with strict type checking.
; let first = foo: bar: baz: 1 biz: 2 let second = foo: bar: bas: 3 let result = ; /*{ foo: { bar: { baz: 3, biz: 2 } }}*/
Or provide a merger function to resolve conflicts:
; let first = foo: bar: baz: 1 biz: 2 let second = foo: bar: bas: 3 let result = ; /*{ foo: { bar: { baz: 1, biz: 2 } }}*/
Notes:
- Leaf nodes from second argument will take precedence
- Any conflicts between types for leaf nodes will result in an error (e.g. if you try to merge a string with an int)