fold

inline fun <D> fold(    ifA: (A) -> D,     ifB: (B) -> D,     ifC: (C) -> D): D