code: function ifElse(pred, f, g) {
    if(!isPredOrFunc(pred)) {
      throw new TypeError(
        'ifElse: Pred or predicate function required for first argument'
      )
    }
  
    if(!(isFunction(f) && isFunction(g))) {
      throw new TypeError(
        'ifElse: Functions required for second and third arguments'
      )
    }
  
    return x => predOrFunc(pred, x) ? f(x) : g(x)
  }
docs: ifElse : (a -> Boolean) | Pred -> (a -> b) -> (a -> c) -> a -> (a | c)