No, monad is more complicated than that. There is a specific method that it has to have, which does not make sense on all types, and can also have more than one sensible definition for a type. "You want to abstract over it" gets you to a "trait", not a "monad".