+ The guts of the definition of the `bind` operation amount to
+ specifying how to unwrap the monadic object `m`. In the bind
+ opertor for the option monad, we unwraped the option monad by
+ matching the monadic object `m` with `Some n`--whenever `m`
+ happend to be a box containing an integer `n`, this allowed us to
+ get our hands on that `n` and feed it to `f`.
+
+So the "option monad" consists of the polymorphic option type, the
+unit function, and the bind function. With the option monad, we can
+think of the "safe division" operation
+
+<pre>
+# let divide num den = if den = 0 then None else Some (num/den);;
+val divide : int -> int -> int option = <fun>
+</pre>
+
+as basically a function from two integers to an integer, except with
+this little bit of option frill, or option plumbing, on the side.
+
+A note on notation: Haskell uses the infix operator `>>=` to stand