Simplest examples demonstrating the need for nominal type role in Haskell : <p>I'm trying to understand what determines whether a type parameter must be nominal.</p>

<p>While GADTs and type familes seem different in the sense they are not "simple containers" as their instance definitions can "look at" their parameters, can simple types have obvious need for nominal parameters, like Set?</p>
