Integrated shrinking has only one disadvantage over custom/predefined shrinking and that is that dependent composition (flatMap/bind) produces worse results. This can be circumvented. The best resource for integrated shrinking is probably the well-typed article you linked, haskell hedgehog's source code is also good. Hypothesis uses yet another different approach based on heuristics afaik, but I am not too familiar with that.