[Haskell-cafe] rebinding >>= for restricted monads