I consider Rust's Result<T, E> and Option<T> to be monads. Is this incorrect?
What makes Haskell different is that it has a language-level concept of a monad that's supported by special syntax for manipulating them. (C# does, too, for what it's worth.) Without something like that, observing that a certain type can be used as a monad is maybe more of a fun fact than anything else.
(ETA: for example, many, many languages have list types that happen to be monads. But this knowledge probably won't change anything about how you use them.)