Use a define instead of a typedef

The typedef broke the tests. And it broke them because it is not a type-safe define; it’s a new type. So it’s no use seemingly.

The define is risky for a header, but I don’t want people’s code to break. Not to mention I’m not yet interested in changing every reference to `Promise` in the documentation.