What type system are you thinking about? Is there a specific language you have in mind? Haskell is structural—it emphasizes pattern matching on type variants and whatnot—but it wouldn’t confuse two different structs.

Haskell is nominal. In this context structural typing is the ability to confuse two different structs.