Algebraic blindness | Hugonweb Annotated Link Bibliography
https://github.com/quchen/articles/blob/master/algebraic-blindness.md
Other things can be opaque besides booleans, even Maybe, Either, tuples, and lists. The point is, you have to balance the ease of use of standard types with the difficulty of creating (and converting to/from) custom data types.
The author points out that Haskell makes it easy to refactor from the use of standard types to more maintainable custom data types. Just substitute your custom type somewhere in the code base and the compiler errors will help you put it in everywhere.