You should almost never use it as a field of something or a method parameter . So the answer is specific to Optional: it isn’t “a general purpose Maybe type”; as such, it is limited, and it may be limited in ways that limit its usefulness as a field type or a parameter type.