Explanation of closures via lexical scope
One can easily apply too much or wrong type of curry.
An example adding a flexible timeout method to promises
You can quickly verify complex logic if you use structured JSON logging.
Extend promises returned by $q with timeout method
We can extend objects built from JSON strings by pointing to a different prototype object.
Make constructor functions work without "new" keyword in callbacks.
Combining functions into custom iterator callbacks and using _ will be easier if you put callback function first and data second.
Playing with ES6 generators in Node.