v0.2.0 - added extensibility
 - resolves #1 (better customization semantics)
 - resolves #2 (ability to add custom types)
 - resolves #3 (ability to add custom merge functions)