fold

inline fun <R> fold(ifEmpty: () -> R, ifSome: (A) -> R): R