Consistency between promise resolution and function returns
You can think of a Promise as being very similar to a function.
A promise can either resolve or reject, where rejection is typically paired with some kind of error. In a similar way, a function can resolve, or reject by throwing an assertion.
function () {
throw 'error'; //"reject" the function
}
Similarly to a function, a promise can return a value when it resolves.
Promise.resolve(true);
When a function returns a value, Distilled recursively re-evaluates that value. This provides an enormous degree of flexibility and consistency, since the values returned are evaluated with same rules as the original test.
However, Distilled ignores any values returned from a Promise. This is inconsistent.
Distilled should recursively re-evaluate values that are returned from a Promise.