code: function and(f, g) {
    if(!(isPredOrFunc(f) && isPredOrFunc(g))) {
      throw new TypeError(
        'and: Preds or predicate functions required for first two arguments'
      )
    }
  
    return x => !!(predOrFunc(f, x) && predOrFunc(g, x))
  }
docs: and : (a -> Boolean) | Pred -> (a -> Boolean) | Pred -> a -> Boolean