Fold is used to handle both Some and None cases.
@override B fold<B>(B Function(T value) onSome, B Function() onNone) => onSome(value);