The topic of what is a Monad has been extensively covered in several stackoverflow questions, as well as other forms. Nevertheless, I find it scarce to find examples of what is a false Monad (I don't know if there is an existing term for that, I kind of made-up the word). By false Monad, I mean that it fulfills one or more of the Monad properties, but does NOT fulfill all the properties.
To my understanding, the properties of Monads can be summarized as:
// 1. Monad(foo).flatMap(f) == f(foo)
// 2. Monad(bar).flatMap(f => f(bar)) == Monad(bar)
// 3. Monad(baz).flatMap(f).flatMap(g) == Monad(baz).flatMap(x => f(x).flatMap(g))
I am looking for examples of structures that are Not monads. Ideally, examples of Monads that do apply some but not all the laws for Monads. Further readings are also welcome.
Update: My objective is not to have an open discussion of what a Monad is not. It's rather have code examples in Scala for structures that apply some but not all Monad laws.
If it helps, I found an example mentioned on this article on Monads, that states that a non-Monad can be a list whose flatMap implementation returns the concatenation of the small lists in reverse. I hope that provides a better direction of the examples needed to help clear my confusion.