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