* A bind operation (note the type):
+<pre>
let bind m f = match m with None -> None | Some n -> f n;;
val bind : 'a option -> ('a -> 'b option) -> 'b option = <fun>
+</pre>
`bind` takes two arguments (a monadic object and a function from
ordinary objects to monadic objects), and returns a monadic
All of the code in the discussion below can be found here: [[intensionality-monad.ml]].
To run it, download the file, start Ocaml, and say `# #use
-"intensionality-monad.ml"`.
+"intensionality-monad.ml";;`.
Here's the idea: since people can have different attitudes towards
different propositions that happen to have the same truth value, we