// :: {String a: *} -> {a: *} const defaults = R.curry((spec, data) => R.mergeWith( R.useWith(R.flip(R.defaultTo), [nullIfEmpty, R.identity]), data, spec, ), );