- Although we're leaving worlds out of the picture, each of these monadic objects still represents a different discourse possibility: which entities might be being talked about, using which variables.
-
-* We notice though that GS&V don't just work with discourse possibilities (or more broadly, epistemic possibilities), they work with what they call "information states," which are *sets* of possibilities. OK, a set is just another monadic layer. For simplicity, we'll represent sets using lists:
-
- type 'a set = 'a list;;
- let empty_set : 'a set = [];;
- let unit_set (x: 'a) : 'a set = [x];;
- let bind_set (u: 'a set) (f: 'a -> 'b set) =
- List.concat (List.map f u);;
-
- The following will be useful later: persuade yourself that `List.filter (test : 'a -> bool) (u : 'a set) : 'a set` is the same as:
+ Although we're leaving worlds out of the picture, each of these monadic values still represents a different *discourse* possibility: which entities might be being talked about, using which variables.