Tag the AST after each pass to enforce a specific order

Having more than one pass for one abstract syntax-tree type makes it important to enforce a certain order. Which way would be best for this? Phantom types? Type alias?