What are some types that discriminate between categories?
<p>I'm still getting familiar with all this category theory stuff, and just about every example I see is with a Maybe or an Array. But I haven't found any examples that discriminate between these categories. For example, here are some of the questions I've still been unable to answer:</p>

<ol>
<li>whats a Semigroup that isn't also a Monoid?</li>
<li>whats a Foldable that isn't also a Traversable? <a href="https://stackoverflow.com/questions/8359115/haskell-an-example-of-a-foldable-which-is-not-a-functor-or-not-traversable">[Duplicate]</a></li>
<li>whats an Functor that isn't also an Apply?</li>
<li>whats an Apply that isn't also an Applicative?</li>
<li>whats an Apply that isn't also a Chain?</li>
<li>whats a Chain that isn't also a Monad?</li>
<li>what an Applicative that isn't also a Monad? <a href="https://stackoverflow.com/questions/7220436/good-examples-of-not-a-functor-functor-applicative-monad">[Duplicate]</a></li>
</ol>

<p>I'm learning this stuff through the context of <a href="https://github.com/fantasyland/fantasy-land" rel="nofollow noreferrer">JavaScript FantasyLand</a> so that's where I'm getting the lingo from -- I understand there are different words for these things.</p>

<p><img src="https://raw.githubusercontent.com/fantasyland/fantasy-land/master/figures/dependencies.png" alt=""></p>