I have been using Anton's library for quite some time now.
Mostly together with my own library: typeclasses (FP concept)
It is a great tool. I can highly recommend it.
The main problem is that it does not work with mutable types by design.
Why? What?
For example, you want to write a phantom type called "ListOfPositiveInt".
So it can be used like so: `isinstance(arg, ListOfPositiveInt)`. But, the problem is: `list` is mutable.
After this check passes, you can call `arg.append(-100)` and ruin your precise type.
That's why it is limited to immutable types only.