add test for identity
add tests for when, when-not, when-let and if-let
fix when-let and if-let with destructuring
add a test for mapcat
change merge to merge it's arguments from left to right

e.g. the values from later arguments take precendent over that of
earlier ones.
add a test for merge-with