If we wanted to be picky, promises technically aren't monads because .then() does too much with auto unwrapping nested promises.
https://stackoverflow.com/a/50173415 has some good examples.
It's close, though. Really close. And don't get me wrong - I still love promises and async / await. They're much better than what we had before.