From the Haskell wiki:
Monads can be viewed as a standard programming interface to various data or control structures, which is captured by the Monad cl
No, the monad laws are not enforced by the language. But if you don't adhere to them, your code may not necessarily behave as you'd expect in some situations. And it would certainly be confusing to users of your code.