This makes me think that an instance of a monad is not like an instance of an OO class which you interact with by calling its methods. An instance of a monad is such simply because it was returned by a 'return()' or 'bind()' and because those 'return()' and 'bind()' functions are related by the monadic laws and thus are in the monadic relationship with each other. A monadic value could be an instance of any number of monads at the same time.