&gt; Why fmap has this law<p>The law is the only law of fmap, which is the &quot;structure preserving law&quot;. It means that if you apply a function to each element of the structure, you cannot change the shape of the structure.<p>This structure preserving property means you can safely apply any function (even ones you don&#x27;t know what they do) and you can be safe you&#x27;re not losing information beyond what the function takes away.<p>&gt; It should possibly be renamed to Container or Mappable to be more in line with what general developers expect.<p>Mappable would be a truthful name. Container is not a good name because far from all Functors are containers. You can map over a lot of things (I&#x2F;O actions, functions among others) which are not intuitively &quot;containers&quot;, unless you revise your intuition of &quot;container&quot; to mean &quot;mappable&quot;. :)<p>The good thing about calling it for what it is – Functor – is an argument commonly lifted by Edward Kmett: when you&#x27;re honest about what you&#x27;re dealing with, you instantly give people access to 80 years of collective knowledge about the thing.