Promises are being debated in the JavaScript community. The most popular specification is Promises/A+. It’s a fairly small specification, containing only a single function: then. The function is heavily overloaded which makes it quite complicated - way more than it has to be. I’ll try to show how category theory can give us a much simpler, more generalised and lawful API! A proper Promise/A+ imple