The flatten and flatMap methods of Scala's monad instances do not support mixing of collection types, such as flattening a List of Sets. However, the native flatten and flatMap methods of Scala collections like List, Vector, and Set do support mixing types. They are implemented using traversals, builders, and implicit CanBuildFrom builder factories that can build collections with heterogeneous element types. When flattening or flatMapping a collection, the appropriate CanBuildFrom is used to get a builder that adds elements of the nested collection to the output collection being built.