No contradiction: "not those that are imported" means a module which imports names does not automatically re-export those names to other modules that import it. So T does indeed export "main", which is imported unqualified by Main
No argument with anything said there.
and thereby causes an ambiguous occurrence.
This I don't get. I presume the ambiguous occurrence is due to the question what `main` is `Main.hs` exporting (or in this case is the "entry-point" for the program)? My reading of the above is that only the local `main` can be exported (or again, in this case, "considered" for the "entry-point") so where is the ambiguity?