We discover, we've been using monads! We look a little further into the
chain method and see laws that ensure the monadic structure works correctly.
So I first thought a chain was just a way to get a value out a monad.
Then, I thought it was a way to flatten a nested monad (like you've described).
Now, I get that but the join fn and the notion that map can be derived from of and chain is kinda hurting my brain.
But then again, I always get "turned around" keeping the intricacies of the monadic laws straight in my mind. Are there any tricks to remembering them or more importantly how to take advantage of them?