> Note that Haskell type synonyms reverse the order of the types compared to C++.
This is true in the context of the article when compared with the presented typedef definitions, however the modern way to do type synonyms in C++ is via using declarations, which are very similar to the Haskell ones.
using Path = string;
using PathSet = set<Path>;