What is the logic behind allowing only same Monad types to be concatenated with `>>` operator?

Viewed 146

Though it is okay to bind IO [[Char]] and IO () but its not allowed to bind Maybe with IO. Can someone give an example how this relaxation would lead to a bad design? Why freedom in the polymorphic type of Monad is allowed though not the Monad itself?

2 Answers
Related