スレ違いと思いながらも>>498ネタを続けてしまいますが、(´・ω・`)

 option
  { let x = 100
   let! y = None
   return (x * y) }

これはこう展開されるみたい。

 option.Let(100, fun x ->
  option.Bind(None, fun y ->
   option.Return(x * y)))

このアイディア、将来のC#に採り入れられないかな・・・。