Should we always expect the result to have a format function? 

My thinking would be: 
`result += part.format ? part.format(value) : valueName` 

This would prevent an error such as "TypeError: Property 'format' of object #<Object> is not a function" from being thrown.

However, we we are to expect format to exist at all times, we should fail earlier before `format()` is called.