An example of an algebraic data type (ADT) is the Maybe type, also known as the Option type. It denotes the idea of an optional value. The Maybe/Option type is used in languages like Haskell/Scala and has gained popularity in languages not usually considered to be functional like Rust. See also Either in Haskell and Scala and the equivalent in Rust of Result.