https://devhubby.com/thread/how-does-the-operator-in-haskell-behave