Applies onNone if this is a None or onSome if this is a Some of A
onNone
onSome
Z fold<Z>(Z Function() onNone, Z Function(A a) onSome);