The phantom types can be replaced by implicit evidence as follows
The style might be considered a little more explicit and perhaps easier to understand. Note that there is additional overhead since instances of the evidence class will be created and passed as arguments.
The fundamental disadvantages remain unchanged.
This blog post describes a more powerful form of the phantom type implementation.
Most phantom type examples are builders, which might perhaps be their only niche.