(let [m {a {b 1}} c (collections/copy .m)] (put .c [a b] 2) [.m .c]) (let [m {a {b 1}} c (collections/copy .m shallow)] (put .c [a b] 2) (put .c x 3) [.m .c]) (let [l [1 [2]] c (collections/copy .l)] (lists/append .c 3) (lists/append (get .c 1) 4) [.l .c]) (let [s {n 1} m {a .s b .s} c (collections/copy .m)] (put .c [a n] 2) [(get .c [b n]) (get .m [a n])]) [(collections/copy 5) (collections/copy x) (collections/copy null)] (collections/copy {a 1} deep) (collections/copy {a 1} 5) (let [m {a 1}] (put .m self .m) (let [c (collections/copy .m)] [(comparison/identical? (get .c self) .c) (comparison/identical? (get .c self) .m)]))