It&#x27;s something weaker. Consider the groupoid of Haskell types and isomorphisms. Without GADTs and type families, all type constructors of kind `* -&gt; *` are endofunctors on this groupoid.<p>Note 1: And there are higher-kinded analogues, but I hope you get the idea from this.<p>Note 2: There are also exceptions, like `IORef` and friends.