The code doesn't actually work though, the very first example is broken:
function sum(a, b) { return a + b }
sum = promised(sum)
var a = defer() // make promise
var b = sum(a, 1)
var b = sum(b, 5)
console.log(b) // eventually prints => 17
a.resolve(11) // fulfill promise
Prints: [object Object]15