freezeMergeFactory
can now be called with an object or a function.
// called with function
const randomNumber = freezeMergeFactory(() => Math.random());
randomNumber() === randomNumber() // depends on the randomness
// called with object
const randomNumber = freezeMergeFactory(Math.random());
randomNumber() === randomNumber() // is always true