fold

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