[Haskell-cafe] need help understanding how to specify constraints on monads