This is explored some in Haskell in a couple places.  One I remember off the top of my head:<p><a href="https:&#x2F;&#x2F;hackage.haskell.org&#x2F;package&#x2F;lens-4.13&#x2F;docs&#x2F;Control-Lens-Iso.html#g:2" rel="nofollow">https:&#x2F;&#x2F;hackage.haskell.org&#x2F;package&#x2F;lens-4.13&#x2F;docs&#x2F;Control-L...</a>