When do we use newtype in Haskell? : <p>I'm a bit confused with type and newtype. It is said that newtype can contain only one field. I also find a post <a href="https://stackoverflow.com/questions/31815310/the-difference-between-type-and-newtype-in-haskell">here</a>.</p>

<p>But still not quite clear. </p>

<blockquote>
  <p>So if you want to declare different type class instances for a
  particular type, or want to make a type abstract, you can wrap it in a
  newtype and it'll be considered distinct to the type-checker, but
  identical at runtime.</p>
</blockquote>

<p>Any example would be helpful. Thank you!</p>
