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