| I disagree. There are many operators that you’ll never use but if you memorize
(^.), (.~), and (%~), you’re pretty much set for a lot of real-world software development. Per Kmett’s original talk/video on the subject, I can confirm my brain shifted pretty quickly to look at them like OOP field accessors. And for the three above, the mnemonics are effective: “^.” is like an upside down “v” for view. “.~” looks like a backwards “s” for setters. “~%” has an tilde so it’s a type of setter and “%” has a circle over a circle, so it’s over. I’ll also add that my experience in recent versions of PureScript things get even nicer: visible type application lets you define record accessors on the fly like: foo ^. ln@“bar” <<< ln@“baz” “.” Is unfortunately a restricted character and is not the composition operator like Haskell, but I alias “<<<“ with “..” The pretty obvious question with the above is: why don’t you just write “foo.bar.baz”. In my case I use a framework that uses passed lenses for IoC, but I think “%~” is always nicer and less repetitive than the built-in alternative. |